10、GET(或INCLUDE)
语法格式:
GET 文件名
GET伪指令用于将一个源文件包含到当前的源文件中,并将被包含的源文件在当前位置进行汇编处理。可以使用INCLUDE代替GET。
汇编程序中常用的方法是在某源文件中定义一些宏指令,用EQU定义常量的符号名称,用MAP和FIELD定义结构化的数据类型,然后用GET伪指令将这个 源文件包含到其他的源文件中。使用方法与C 语言中的"include”相似。
GET伪指令只能用于包含源文件,包含目标文件需要使用INCBIN伪指令
使用示例:
AREA Init ,CODE ,READONLY
GET a1.s ;
通知编译器当前源文件包含源文件a1.s
GET C:\a2.s ; 通知编译器当前源文件包含源文件C:\a2.s
END 11、INCBIN
语法格式:
INCBIN 文件名
INCBIN伪指令用于将一个目标文件或数据文件包含到当前的源文件中,被包含的文件不作任何变动的存放在当前文件中,编译器从其后开始继续处理。
使用示例:
AREA Init ,CODE ,READONLY
INCBIN a1.dat ;
通知编译器当前源文件包含文件a1.dat
INCBIN C:\a2.txt ;通知编译器当前源文件包含文件C:\a2.txt
END
12、RN
语法格式:
名称 RN 表达式
RN伪指令用于给一个寄存器定义一个别名。采用这种方式可以方便程序员记忆该寄存器的功能。其中,名称为给寄存器定义的别名,表达式为寄存器的编码。
使用示例:
Temp RN R0 ;将R0定义一个别名Temp
13、ROUT
语法格式:
{名称} ROUT
ROUT伪指令用于给一个局部变量定义作用范围。在程序中未使用该伪指令时,局部变量的作用范围为所在的AREA,而使用ROUT后,局部变量的作为范围为当前ROUT和下一个ROUT之间。
3. BNE 与 BEQ
TST R0, #0X8
BNE SuspendUp ;BNE指令是“不相等(或不为0)跳转指令”:
LDR R1,#0x00000000
先进行and运算,如果R0的第四位不为1,则结果为零,则设置zero=1(继续下面的LDR指令);
否则,如果R0的第四位为1,zero=0(跳到SuspendUp处执行)。
tst 和bne连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果不为0,则跳到bne紧跟着的标记(如bne sleep,则跳到sleep处)。
tst 和beq连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果为0,则跳到beq紧跟着的标记(如bne AAAA,则跳到AAAA处)。 |