Tag: 程序集

如何在启动时debuggingiOS应用程序崩溃,仅在程序集文件中产生断点

我正在面对一个正在开发的应用程序的问题。 问题是,应用程序在启动时崩溃了一段时间,只有在这种情况下。 在杀死应用程序时启动应用程序不会导致崩溃,从debugging器或电话。 在后台启动应用程序约5-10分钟不会导致崩溃,而不是debugging。 在backgorund启动应用程序大约15-20分钟导致崩溃。 对exception使用debugging器和断点给了我这个文件: libdispatch.dylib`_dispatch_assert_queue_fail: 0x349c6ce4: push {r4, r5, r7, lr} 0x349c6ce6: add r7, sp, #0x8 0x349c6ce8: sub sp, #0xc 0x349c6cea: movw r5, #0x7810 0x349c6cee: mov r4, r0 0x349c6cf0: movt r5, #0x1 0x349c6cf4: movw r12, #0x7af0 0x349c6cf8: movt r12, #0x1 0x349c6cfc: movw r9, #0x7a83 0x349c6d00: movt r9, #0x1 0x349c6d04: ldr r0, [r4, #0x48] […]

如何让这个sqrt内联程序集在iOS上工作

我正在尝试遵循另一个SOpost,并在我的iOS应用程序中实现sqrt14 : double inline __declspec (naked) __fastcall sqrt14(double n) { _asm fld qword ptr [esp+4] _asm fsqrt _asm ret 8 } 我已经在我的代码中修改了以下内容: double inline __declspec (naked) sqrt14(double n) { __asm__("fld qword ptr [esp+4]"); __asm__("fsqrt"); __asm__("ret 8"); } 上面,我已经从方法定义中删除了“__fastcall”关键字,因为我的理解是它仅适用于x86。 以上分别为每条assembly线提供了以下错误: 参数列表中的意外标记 指令无效 指令无效 我试图通过一些内联的ASM指南和其他文章了解如何做到这一点,但我通常只是不熟悉的语言。 我非常了解MIPS,但是这些命令/寄存器似乎有很大不同。 例如,我不明白为什么原始作者从不在汇编代码中的任何位置使用传入的“n”值。 任何帮助得到这个工作将不胜感激! 我正在尝试这样做,因为我正在构build一个应用程序,在那里我需要计算sqrt(好吧,是的,我可以做一个查找表,但现在我关心精度很高)在每个像素的实时video提要。 我目前正在使用标准的sqrt,除了其余的计算,我运行在8fps左右。 希望能够在这一变化的情况下,把这一个或两个碰撞一下。 如果重要的话:我正在构build应用程序,以理想的方式与任何可以运行iOS 7.1的iOS设备兼容。再次,非常感谢您的帮助。

如何在xcode 6中看到汇编代码

如何在xcode 6中使用iOS设备运行应用程序时查看由编译器生成的汇编代码6.我应该在xcode中启用哪些设置以查看汇编代码?

从arm汇编函数返回float到objective-c

我写了一个汇编函数,可以在iPhone 4(32位代码)以及iPhone 6s(64位代码)上正常运行。 我从objective-c中的调用函数传入四个浮点数。 下面是我用于4个浮点数的结构,下面是该函数的原型 – 在我的objective-c代码的顶部。 struct myValues{ // This is a structure. It is used to conveniently group multiple data items logically. float A; // I am using it here because i want to return multiple float values from my ASM code float B; // They get passed in via S0, S1, S2 […]