在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符。这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。在ARM处理器的汇编程序中,大体有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令。伪操作符可以分为以下几类。1)数据定义伪操作符数据定义伪操作符主要包括LTORG、MAP、DCB、FIELD、SPACE、DCQ、DCW等,主要用于数据表定义、文字池定义、数据空间分配等。常用的有DCB/DCQ/DCW分配一段字节/双字/字内存单元,并且将它们初始化。2)符号定义伪操作符符号定义伪操作符包括GBLA、GBLL、GBLS、LCLA、CN、CP、DN、FN、RLIST、SETA等,用于定义ARM汇编程序的变量,对变量进行赋值,以及定义寄存器名称等。其中用于全局变量声明的GBLA、GBLL、GBLS和局部变量声明的LCAL、LCLL、LCLS伪指令较为常用。3)报告伪操作符报告伪操作符包括ASSERT、INFO、OPT等,主要用于汇编报告等。其中比较常用的有ASSERT,表示断言错误。4)条件汇编伪操作符条件汇编伪操作符包括IF、ELSE、ENDIF、WHIL、WEND、MACRO、MEND等,主要用于条件汇编、宏定义、重复汇编控制等操作。5)杂项伪操作符杂项伪操作符包括AREA、ALIGN、ENTRY、EQU、EXPORT、GLOBAL、IMPORT、CODE16、CODE32等。这些伪指令在汇编程序设计中较为常用,如段定义、入口点设置等伪指令。常用的伪指令主要有以下几条。AREA:用来定义段;ALIGN:用来设定边界对齐;CODE16/CODE32:用来指定指令集;ENTRY:指定程序入口;END:汇编结束。在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。www.cedn.cn1V*?:A2c1Lwww.cedn.cn%r'm'Ba"j%I9U在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪指令。www.cedn.cn2v3w5X$G4E.L:a1rBn-J"j-J'Zp符号定义(SymbolDefinition)伪指令符号定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。Y!|#q"F!/&x$x常见的符号定义伪指令有如下几种:—用于定义全局变量的GBLA、GBLL和GBLS。CEDN论坛&V){7M,d'S'_—用于定义局部变量的LCLA、LCLL和LCLS。—用于对变量赋值的SETA、SETL、SETS。—为通用寄存器列表定义名称的RLIST。www.cedn.cn?7x;t;I4h*`1、GBLA、GBLL和GBLS/q:X*X-W'v5[3v2{4Q语法格式:www.cedn.cn6K,E9M,s9i5UGBLA(GBLL或GBLS)全局变量名GBLA、GBLL和GBLS伪指令用于定义一个ARM程序中的全局变量,并将其初始化。其中:GBLA伪指令用于定义一个全局的数字变量,并初始化为0;www.cedn.cn%/6M+b/U%W+b"U3FGBLL伪指令用于定义一个全局的逻辑变量,并初始化为F(假);www.cedn.cn:E!r/~0/o)]GBLS伪指令用于定义一个全局的字符串变量,并初始化为空;由于以上三条伪指令用于定义全局变量,因此在整个程序范围内变量名必须唯一。使用示例:GBLATest1;定义一个全局的数字变量,变量名为Test10_:m2v&L4G3b;LCTest1SETA0xaa;将该变量赋值为0xaaGBLLTest2;定义一个全局的逻辑变量,变量名为Test2s%^3/8U&R%GTest2SETL{TRUE};将该变量赋值为真GBLSTest3;定义一个全局的字符串变量,变量名为Test3-{(Qa*c*S*P,z%BTest3SETS“Testing”;将该变量赋值为“Testing”2、LCLA、LCLL和LCLS语法格式::e6E2F7V!O*C0H3/LCLA(LCLL或LCLS)局部变量名www.cedn.cn$p%F+J!s(@,E$@LCLA、LCLL和LCLS伪指令用于定义一个ARM程序中的局部变量,并将其初始化。其中:LCLA伪指令用于定义一个局部的数字变量,并初始化为0;1K3~*I.C4F*I!?7L:f7X,NLCLL伪指令用于定义一个局部的逻辑变量,并初始化为F(假);LCLS伪指令用于定...