GNU ARM 汇编器快速指南
需积分: 50 94 浏览量
更新于2024-09-30
收藏 109KB PDF 举报
"GNU ARM Assembler Quick Reference 是一本关于在GNU环境下使用ARM汇编语言的快速参考手册,它包含了精华的指令和表达式。手册强调了GNU汇编器与传统ARM汇编器的不同,例如无需对指令进行缩进,并且标签以冒号而非行首表示。手册提供了一个简单的示例程序,展示如何定义一个名为'add'的函数,该函数接受两个输入参数并返回它们的和。此外,还列举了GNU汇编器的一些主要指令和描述,如.ascii和.asciz用于插入字符串数据,以及.balign用于对齐地址。"
在GNU ARM汇编器中,每个汇编行的结构可以分为以下几个部分:
1. 可选的标签(Label):用冒号":"表示,比如`add:`,它不需位于行首。
2. 指令或指令(Instruction or Directive):例如`ADD r0, r0, r1`是执行加法操作的指令。
3. 可选的注释(Comment):以 "@" 开头,用于解释代码功能。
在提供的部分内容中,我们看到一个简单的`add`函数示例:
1. `.section .text, "x"`:将代码段设置为.text,标记为可执行("x")。
2. `.global add`:声明函数`add`具有全局链接性,可以在其他模块中调用。
3. `add:`:定义函数入口标签。
4. `ADD r0, r0, r1`:将寄存器r1的内容加到r0上。
5. `MOV pc, lr`:返回调用者,lr寄存器通常保存了调用函数前的程序计数器值。
6. `@endofprogram`:注释表示程序结束。
接下来,手册列举了一些GNU汇编器的常用指令和描述:
- `.ascii "string"`:将字符串作为数据插入到程序中,类似于ARM汇编器的`.db`指令。
- `.asciz "string"`:与`.ascii`类似,但会在字符串后添加一个零字节,表示字符串的结束。
此外,`.balign`指令用于对齐内存位置:
- `.balign <power_of_2>`:根据给定的2的幂值对齐地址。
- 可选的`<fill_value>`和`<max_padding>`参数可以自定义填充的值和最大填充量。
这个快速参考手册对于理解和编写ARM架构下的GNU汇编程序非常有用,它提供了必要的工具和指令来创建高效、精简的代码。
2014-10-14 上传
2018-01-19 上传
2022-09-20 上传
点击了解资源详情
2008-10-29 上传
2013-08-05 上传
2014-03-18 上传
lep007
- 粉丝: 0
- 资源: 8