2012-02-23 109 views
0

我正在尋找ARM的彙編器例子。我現在需要特別爲複製例程(32,16和8位)和memset例程(32,16和8位)的ARM彙編。我對Google,sf.net,Google代碼或github沒有太大的好運。任何人都有這樣的事情,或者知道我能在哪裏看到?ARM彙編器例程和信息

我知道我只需要買一本關於ARM彙編程序的書,但是我認爲我會從這些開始。關於我如何完成自己編寫這些例程的任何提示都很感謝。

編輯: 哦,是的,arm.com的文檔確實有幫助。這個頁面告訴我很多關於mem *的功能。 http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka3934.html

感謝您的所有建議。

+1

[資源學習ARM組裝]可能的重複(http://stackoverflow.com/questions/270078/resources-for-learning-arm-assembly) – 2012-02-23 01:33:59

+0

手臂,手臂建築參考手冊可從臂。 infocenter.arm.com建築參考然後找出你想要的家庭。我在手臂平臺上有很多混合的C和asm http://github.com/dwelch67,有些拇指是一些ARM。我這是一項家庭作業?你想看看ldm/stm指令。典型的手臂副本等例程一次使用ldm或stm或四個寄存器。取決於芯片在64位邊界上的對齊情況(如果它內部有64總線)更好(在內部有64總線) – 2012-02-23 01:42:49

+0

在C庫中會找到最快的例程,查看像gcc這樣的gnu源代碼,或者使用C編譯器在C中執行memset然後拆開。 – 2012-02-23 01:43:26

回答

1

幾點建議:

... AND ...

  • 安裝GNU CC ARM交叉編譯器,並運行 「GCC -S」 從C程序
+0

感謝您的建議。我會看看教程。 – Scott 2012-02-23 02:05:57

1

你可以拆卸一些在iPhone,Android或Windows Mobile的二進制文件得到彙編輸出。

在arm庫中,通常會找到memcpy的相當大的優化版本,其中根據源和目標的最低2位使用不同的複製方法。

我上傳的HTC先驅的bootloader這裏的拆解:http://nah6.com/~itsme/spl-5.04.0000.lst.gz

順便說一句,沒有必要買了一本書,ARM已經把一切都在線:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0100i/index.html

+0

感謝您的建議。 :)我以爲我必須有一個支付賬戶的arm.com。這真的很好知道。 – Scott 2012-02-23 02:05:19

0

如果你想學習高度優化的臂總成的memcpy和memset例程,我會推薦下載linux內核源碼或android源碼(仿生部分)。他們可能很難學習,但是你會學到很多關於編寫真正優化的arm彙編代碼的知識。