在ARM汇编语言程序里,有一些特别指令助记符,这些助记符与指令体系的助记符不同,没有相对应的操作码,一般称这些特别指令助记符为伪指令,他们所完结的操作称为伪操作。伪指令在源程序中的效果是为完结汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起效果,一旦汇编结束,伪指令的任务就完结。
在ARM的汇编程序中,有如下几种伪指令:符号界说伪指令、数据界说伪指令、汇编操控伪指令、宏指令以及其他伪指令。
符号界说(SymbolDefinition)伪指令
符号界说伪指令用于界说ARM汇编程序中的变量、对变量赋值以及界说寄存器的别号等操作。
常见的符号界说伪指令有如下几种:
—用于界说大局变量的GBLA、GBLL和GBLS。
—用于界说部分变量的LCLA、LCLL和LCLS。
—用于对变量赋值的SETA、SETL、SETS。
—为通用寄存器列表界说称号的RLIST。
1、GBLA、GBLL和GBLS
语法格局:
GBLA(GBLL或GBLS)大局变量名
GBLA、GBLL和GBLS伪指令用于界说一个ARM程序中的大局变量,并将其初始化。其间:
GBLA伪指令用于界说一个大局的数字变量,并初始化为0;
GBLL伪指令用于界说一个大局的逻辑变量,并初始化为F(假);
GBLS伪指令用于界说一个大局的字符串变量,并初始化为空;
因为以上三条伪指令用于界说大局变量,因而在整个程序范围内变量名有必要仅有。
运用示例:
GBLATest1;界说一个大局的数字变量,变量名为Test1
Test1SETA0xaa;将该变量赋值为0xaa
GBLLTest2;界说一个大局的逻辑变量,变量名为Test2
Test2SETL{TRUE};将该变量赋值为真
GBLSTest3;界说一个大局的字符串变量,变量名为Test3
Test3SETS“Testing”;将该变量赋值为