在Objective-C程序(Xcode)中使用汇编代码

3
有没有办法在Objective C程序中使用汇编代码。我正在为OSX开发应用程序,希望能够在Objective C代码旁边使用汇编代码。我在互联网上搜索并找到了这个,但我无法成功实现任何这些方法。非常感谢您的帮助。

请查看此处的SO帖子1,这可能会有所帮助。 - Tamil
请注意,汇编语言需要针对每个CPU单独编写。PowerPC已成为过去式,但我们在OSX上仍然有x86和x86_64。 - Seva Alekseyev
1个回答

6

当然可以。

您可以像在C语言中使用一样,在Objective-C中使用GCC风格的内嵌汇编。您还可以在汇编源文件中定义函数,并从Objective-C中调用它们。下面是一个简单的内嵌汇编示例:

int foo(int x, int y) {
    __asm("add %1, %0" : "+r" (x) : "r" (y));
    return x;
}

下面是如何使用单独的汇编文件的简单示例:

** myOperation.h **
int myOperation(int x, int y);

** myOperation.s **
.text
.globl _myOperation
_myOperation:
    add %esi, %edi  // add x and y
    mov %edi, %eax  // move result to correct register for return value
    ret

** foo.c **
#include "myOperation.h"   // include header for declaration of myOperation
...
int x = 1, y = 2;
int z = myOperation(x, y); // call function defined in myOperation.s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接