2011-04-02 92 views
0

在通用程序中,我有汇编程序编程项目来创建高级编程应用程序,它将使用一些汇编程序代码作为外部库。在xcode中创建和使用汇编程序库

所以我在Objective-C/Cocoa中的程序会加载图像,读取所有像素颜色,然后将这些颜色传递给汇编程序/代码/库,它们会对它们进行一些操作,然后再次返回到主obj-c程序。

我知道,在Windows/Visual Studio中它很容易实现,但由于我只在Mac上工作,我想在Mac上完成。

请给我一些指示。 谢谢!

达米安

+0

你有什么困难?谜题的Xcode部分应该很容易 - 只需创建一个“静态库”项目并添加您的.S文件即可。 – 2011-04-02 11:27:55

+0

我的问题是如何加载.asm文件和汇编程序,并将其用于xcode中的普通高级别objective-c代码。 – DamianD 2011-04-02 19:20:42

回答

1

常用的文件扩展名(由* nix中继承)的Mac OS X是.S,不.ASM。只需将它添加到您的Xcode项目中,Xcode就知道如何将&链接到您的库。

Uli Kusterer's tutorial是用Xcode编写汇编程序的一个不错的开始 - 虽然这些注释很难被包装。

(更新)要处理从C或Objective-C代码传递并返回值的参数,汇编器函数必须遵循Mac OS X ABI,该函数详细说明C函数如何使用堆栈帧和寄存器。

+0

好的,创建并添加.s文件到我的xcode项目后,我使用#include包含.s文件?然后,假设在.s文件中我有一个名为'myHelloWorld:'的函数,我如何使用obj-c中的参数调用此函数? – DamianD 2011-04-03 19:13:12

+0

在你的.s文件中,将你的函数声明为.globl,然后编写它,以便它可以处理从C传递的参数,正如Apple的ABI参考文献中所记录的那样 - 我添加了上面的链接。 #include到你的C(或者ObjC)中的是一个带有原型声明的头文件,而不是.s文件。 – 2011-04-03 19:49:59