2012-02-23 54 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汇编代码的知识。