【发布时间】:2014-01-28 15:56:14
【问题描述】:
仅出于教育目的,我想在现有的 iPhone 应用程序中添加一个功能,用 ARM 程序集编写。一般来说,我不需要关于 ARM 汇编的教程,因为我已经读过太多了。我只是不知道如何实际运行代码!
我想做的是这样的:
无用的.h:
void useless();
无用的.s:
useless:
bx lr
如果这也适用于模拟器,那就没问题了...在模拟器上,.s 文件将无法编译,所以我可能应该执行以下操作:
无用的.s:
#if I_AM_ARM
useless:
bx lr
#endif
无用的.c:
#if !I_AM_ARM
void useless()
{
}
#endif
我知道我使用的语法被破坏了,但是我该如何正确地编写它呢? (仅仅因为我想尝试一些内联汇编就破坏模拟器上的应用程序是没有选择的......)
第二好的选择是使用内联汇编,但我更喜欢非内联汇编。
谢谢!
编辑:我想学习ARM汇编,所以我想找到一种方法来编译ARM汇编代码,并执行ARM汇编代码。
【问题讨论】:
-
声明
void useless();是正确的。 AFAIK 模拟器编译为本机代码而不是模拟 ARM,所以是的 asm 不会在那里工作。 -
如果使用优化编译器,
void useless() {}很可能无论如何都会编译成bx lr。 -
@Notlikethat:你是对的。
-
@tangrs:你也是对的。
-
但是,大家好...我想执行 ARM 汇编代码,因为我想学习 ARM 汇编。应该不会那么难吧?如果我没有编译器来构建我的代码并且我没有一个平台来运行代码,我就无法学习 ARM 汇编。