在通用程序中,我有彙編程序編程項目來創建高級編程應用程序,它將使用一些彙編程序代碼作爲外部庫。在xcode中創建和使用匯編程序庫
所以我在Objective-C/Cocoa中的程序會加載圖像,讀取所有像素顏色,然後將這些顏色傳遞給彙編程序/代碼/庫,它們會對它們進行一些操作,然後再次返回到主obj-c程序。
我知道,在Windows/Visual Studio中它很容易實現,但由於我只在Mac上工作,我想在Mac上完成。
請給我一些指示。 謝謝!
達米安
在通用程序中,我有彙編程序編程項目來創建高級編程應用程序,它將使用一些彙編程序代碼作爲外部庫。在xcode中創建和使用匯編程序庫
所以我在Objective-C/Cocoa中的程序會加載圖像,讀取所有像素顏色,然後將這些顏色傳遞給彙編程序/代碼/庫,它們會對它們進行一些操作,然後再次返回到主obj-c程序。
我知道,在Windows/Visual Studio中它很容易實現,但由於我只在Mac上工作,我想在Mac上完成。
請給我一些指示。 謝謝!
達米安
常用的文件擴展名(由* nix中繼承)的Mac OS X是.S,不.ASM。只需將它添加到您的Xcode項目中,Xcode就知道如何將&鏈接到您的庫。
Uli Kusterer's tutorial是用Xcode編寫彙編程序的一個不錯的開始 - 雖然這些註釋很難被包裝。
(更新)要處理從C或Objective-C代碼傳遞並返回值的參數,彙編器函數必須遵循Mac OS X ABI,該函數詳細說明C函數如何使用堆棧幀和寄存器。
好的,創建並添加.s文件到我的xcode項目後,我使用#include包含.s文件?然後,假設在.s文件中我有一個名爲'myHelloWorld:'的函數,我如何使用obj-c中的參數調用此函數? – DamianD 2011-04-03 19:13:12
在你的.s文件中,將你的函數聲明爲.globl,然後編寫它,以便它可以處理從C傳遞的參數,正如Apple的ABI參考文獻中所記錄的那樣 - 我添加了上面的鏈接。 #include到你的C(或者ObjC)中的是一個帶有原型聲明的頭文件,而不是.s文件。 – 2011-04-03 19:49:59
你有什麼困難?謎題的Xcode部分應該很容易 - 只需創建一個「靜態庫」項目並添加您的.S文件即可。 – 2011-04-02 11:27:55
我的問題是如何加載.asm文件和彙編程序,並將其用於xcode中的普通高級別objective-c代碼。 – DamianD 2011-04-02 19:20:42