4.1.2 ARM汇编语言的语句格式
虽然汇编指令比较多,但是其指令操作的格式一般是固定的,ARM和Thumb汇编语言的语句格式为:
- {标号} {指令或伪指令助记符} {;注释}
注意:
指令的助记符写法要么全部大写要么全部小写,不可以在一条指令中既有大写又有小写,不可以大小写混合使用。
如果一条语句太长,可以拆分成若干行来写,但需要在行末尾用续行符"\"来标识下一行与本行同属于一条语句。
汇编程序中除了会用到ARM或者Thumb指令之外,还会需要一些符号、常量、变量和变量代换等。这些类型一般也是有具体要求的。
符号主要用来代替地址、变量或者常量,但是其不应与指令或者伪指令同名,并且它们是区分大小写的,不能与系统的保留字相冲突。
常量包括逻辑常量、字符串常量和数字常量。逻辑常量只取两种值(真或者假);字符串常量保存一固定的字符串,用于保存程序运行时的信息;数字常量一般为32位的整数,无符号时可表示范围为0~232-2,有符号时可表示范围为-231~231-1;
变量包括逻辑变量、字符串变量和数字变量,其中逻辑变量用于在程序运行中保存逻辑值(真或者假);字符串变量保存字符串,但字符串的长度不能超出字符串变量所能表示的范围;数字变量保存数字值,但数字大小不能超出变量的表示范围。
变量可以通过代换取得一个常量,代换的操作符为"$"。如果"$"在逻辑变量前面,编译器会将该逻辑变量代换为它的取值(真或者假);如果"$"在字符串变量前面,编译器会将该字符串变量的值代换为"$"后的字符串变量;如果"$"在数字变量前面,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换为"$"后面的变量。
下面是一个具体的示例:
- LCLS STR1 ;定义局部
字符串变量STR1和STR2 - LCLS STR2
- STR1 SETS "Embedded Linux!" ;字符串变
量STR1的值为Embedded Linux! - STR2 SETS "HELLO,$STR2" ;字符串变
量STR2的值为"HELLO,Embedded Linux!"