ARM学习笔记11——GNU ARM汇编程序设计
GNU ARM汇编程序设计中,每行的语法格式如下:
[<label>:] [<instruction | directive | pseudo-instruction>] @comment
如果语句太长,可以将一条语句分几行来书写,在行末用“\”表示换行。“\”后不能有任何字符,包含空格和制表符(Tab)
参数说明: label:为标号,可选,可以使用字母,数字,下划线;除局部标号外,必须以字母或下划线开头。标号必须以“:”号结尾。标号大小写敏感
instruction | directive | pseudo-instruction:可选项,指令、伪指令、伪操作三者任选其一。注意:ARM指令,伪指令,伪操作,寄存器名称要么大写,要么小写,不可以大小写混合。
@comment:可选项,注释语句,@为注释标示符,comment为注释内容。
GNU ARM汇编程序举例
.section .text,"x" @用.section伪操作定义了代码段
.global add64 @.global伪操作声明了add64为全局标号 add64: @定义了标号add64
adds r0,r0,r2 @add指令将分别存放在r0和r2中的两个64位数的低32位相加
adc r1,r1,r3 @adc指令将分别存放在r1和r3中的两个64位数的高32位相加
mov pc,lr @使用mov指令将lr的值赋给pc,实现子程序返回