取得Raspberry Pi之后,我决定想学习如何编写ARM汇编代码。我的问题是,我需要什么入门?我假设已经安装了编译器,但我不知道它是什么(也许是gcc?)。感谢您的帮助!

评论

这是另一本(免费的)关于ARM汇编的书:yurichev.com/writings/RE_for_beginners-en.pdf

#1 楼

取决于要编写多少汇编程序。如果您只想编写嵌入在C代码中的小片段,那么gcc确实是您想要的。有关如何在C中使用asm指令的示例,请参见以下网址的内联asm参考:ARM GCC内联汇编程序手册

另一方面,如果您想编写的内容不只是小片段,那就更好了。使用完整的汇编器。这将以asgas或两者(别名)形式提供。

最后,您需要学习一些有关ARM指令集的知识。在以下位置有方便的参考:ARM1176JZF-S技术参考手册。

N.B。请记住什么RPi只支持armv6指令-所以不要尝试使用armv7的任何东西。

祝你好运! :)

评论


我只想针对当前(2020年2月)的读者对此进行更新:Raspberry Pi 4 Model B使用ARMv8指令集。

–饼干的上帝
20-2-20在17:55

#2 楼

我本人不久前就开始使用ARM汇编代码进行冒险,这是我的资源:


剑桥大学在这里发布了一套非常不错的教程:
Piking Pi。它包括适用于您自己的操作系统的模板,适用于每个教程的完整代码示例以及有关如何构建和运行代码的所有说明。
此外,这本繁琐的书还应涵盖所有基础:
《 ARM系统开发人员指南》 。


#3 楼

尽管我对命令行界面非常满意,但我无法抗拒GUI的便利性。前一段时间,我发现我可以使用CodeBlocks IDE在Raspberry Pi中开发ARM汇编语言程序。因此,我编写了一个教程,并将其附加到我为Mazidi ARM Assembly书网站编写的Raspberry Pi汇编编程教程中:

http://www.microdigitaled.com/ARM/ARM_ASM_books.htm

在网站上,单击链接“使用Raspberry Pi GUI进行ARM装配编程”。

希望有帮助。

#4 楼

默认情况下已安装GCC。如果您是Raspberry Pi的新手,我建议您使用比ARM汇编更简单的编程语言。没有任何可用于组装的IDE,因此您必须使用文本编辑器并通过终端进行组装。我建议使用Gedit以便于使用。尽管要突出显示程序集的语法,但我必须转到github,特别是Shinyquagsire23的页面。非常漂亮
作为帮助,我发现的最好的资源是Bruce Smith的“ Raspberry Pi汇编语言:Raspbian初学者”。您可以在亚马逊上找到它。他以我发现的最清晰,最简单的方法之一来解释组装。

#5 楼

学习可运行的示例

我正在研究:https://github.com/cirosantilli/arm-assembly-cheat

功能:


完全相同的程序集可以在具有QEMU用户模式的Linux主机上运行,​​因此您可以在主机上尝试更快的东西,然后再在Pi上进行本机移植。
可以同时覆盖ARMv7和ARMv8
主机和本机上的GDB开箱即用设置
断言失败的情况下显示组装线编号
使用C标准库进行IO,这使其在理论上可移植到OS,并允许轻松重复使用printfmemcpy之类的东西