树莓派ARM汇编语言编程与调试指南
1. 代码执行后返回操作系统
代码执行完毕后,最后两个操作(阴影部分)提供了返回操作系统级别的方法。ARM有一个 svc 指令,即服务调用指令,用于调用操作系统。大多数计算机都有类似 svc 的操作,它有很多名称,如软件中断。该指令调用操作系统并提供一个或多个参数,参数可以是指令本身的一部分,也可以加载到寄存器中。当操作系统检测到服务调用时,会读取参数并执行相应操作,此操作完全依赖于系统,是操作系统的一部分,而非计算机架构的一部分。在树莓派操作系统中,服务调用所需的特定功能会预先加载到 r7 中。
2. 汇编语言程序要点
- 注释以
@符号开头(或使用C语言的/* */)。 - 汇编指令以句点开头。
- 标签从第一列开始,以冒号结尾。
-
.end指令可用于终止汇编语言(可选)。 -
.global指令提供一个标签,指示程序的入口点。
3. 使用树莓派调试器
可以使用 gdb 运行ARM汇编语言程序并逐行观察其执行。将程序加载到 gdb 时,可能看似没有任何反应。若尝试查看汇编代码或寄存器,会收到错误消息,必须先显式运行程序。
以下是一个示例代码片段在Geany编辑器中的情况,它展示了创建和测试汇编语
超级会员免费看
订阅专栏 解锁全文
82

被折叠的 条评论
为什么被折叠?



