汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作 ARM的协处理器等。
这些初始化工作完成后就可以跳转到C代码main函数中执行。
1、GNU汇编语言语句格式
任何Linux汇编行都是如下结构:
[<label>:][<instruction or directive or pseudo-instruction>} @comment
instruction为指令
directive为伪操作
pseudo-instruction为伪指令
<label>: 为标号, GNU汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。
comment为语句的注释
下面定义一个"add"的函数,最终返回两个参数的和:
.section .text, "x"
.global add @ give the symbol “add” external linkage
add:
ADD r0, r0, r1 @ add input arguments
MOV pc, lr @ return from subroutine
@ end of program
注意:
1>ARM指令,伪指令,伪操作,寄存器名可以全部为大写字母,也可全部为小写字母,但不可大小写混用。
2>如果语句太长,可以将一条语句分几行来书写,在行末用“”表示换行(即下一行与本行为同一语句)。“”后不能有任何字符,包含空格和制表符(Tab)。
http://zqwt.012.blog.163.com/blog/static/120446842010111481551809/