1.GBLA、GBLL和GBLS·例子:GBLAobjectsize;声明一个全局的算术变量。objectsizeSETAOxff;向该变量赋值SPACEobjectsize;引用该变量GBLLstatusB;声明一个全局逻辑变量statusBstatusBSETLTRUEl:向该变量赋值
• 例子: GBLA objectsize ;声明一个全局的算术变量。 objectsize SETA 0xff;向该变量赋值 SPACE objectsize ;引用该变量 GBLL statusB ;声明一个全局逻辑变量statusB statusB SETL {TRUE};向该变量赋值 1. GBLA、GBLL和GBLS
2. LCLA、 LCLL和LCLS用于声明一个ARM程序中的局部变量,并将其初始化。LCLA声明一个局部的算术变量,并将其初始化成O。LCLL声明一个局部的逻辑变量,并将其初始化成[FALSE)LCLS声明一个局部的串变量,并将其初始化成空串“”句法:<lclx> variable其中:<lcbx>是3种伪操作之一:LCLA、LCLL和LCLSvariable是所说明的局部变量的名称。在其作用范围内唯用法:如果用这些伪操作重新声明已经声明过的变量,则变量的值将被初始化成后一次声明语句中的值。局部变量的作用范围为包含该局部变量的宏代码的一个实例
2. LCLA、LCLL和LCLS • 用于声明一个ARM程序中的局部变量,并将其 初始化。 • LCLA声明一个局部的算术变量,并将其初始化成0。 • LCLL声明一个局部的逻辑变量,并将其初始化成{FALSE} • LCLS声明一个局部的串变量,并将其初始化成空串“ ”。 • 句法: <lclx> variable 其中:<lcbx>是3种伪操作之一:LCLA、LCLL和LCLS variable是所说明的局部变量的名称。在其作用范围内唯 一。 • 用法: 如果用这些伪操作重新声明已经声明过的变量,则变量 的值将被初始化成后一次声明语句中的值。 局部变量的作用范围为包含该局部变量的宏代码的一个实例
2.LCLA、LCLL和LCLS·例子:;声明一个宏MACRO$label message $a;宏的原型LCLS err;声明一个局部串变量errerrSETS“errorno:";向该变量赋值$label;代码INFOO,“err":CC:STR:Sa:使用该串变量MEND;宏定义结束
• 例子: MACRO ;声明一个宏 $label message $a;宏的原型 LCLS err ;声明一个局部串变量err。 err SETS “error no:”;向该变量赋值 $label ;代码 INFO 0,“err”:CC::STR:$a ;使用该串变量 MEND ;宏定义结束 2. LCLA、LCLL和LCLS
3.SETA、SETL和SETS用于给一个ARM程序中的变量赋值。SETA给一个算术变量赋值。SETL给一个逻辑变量赋值。SETS给一个串变量赋值。句法:<setx> variable expr其中:<Setx>是3种伪操作之一:SETA、SETL和SETSvariable是已定义变量的名称。在其作用范围内唯一。在向变量赋值前必须先声明该变量。例子:GBLA objectsizeobjectsizeSETA OxffSPACEobjectsize
3. SETA、SETL和SETS • 用于给一个ARM程序中的变量赋值。 • SETA给一个算术变量赋值。 • SETL给一个逻辑变量赋值。 • SETS给一个串变量赋值。 • 句法: <setx> variable expr 其中:<setx>是3种伪操作之一:SETA、SETL和SETS variable是已定义变量的名称。在其作用范围内唯一。在 向变量赋值前必须先声明该变量。 • 例子: GBLA objectsize objectsize SETA 0xff SPACE objectsize
4. RLIST为一个通用寄存器列表定义名称。句法:name RLIST [list-of-register)其中:name为寄存器列表的名称。[list-of-register)为通用寄存器列表。用法:定义的名称可以在LDM/STM指令中使用。在LDM/STM指令中,寄存器列表中的寄存器访问次序总是先访问编号较低的寄存器,再访问编号较高的寄存器,而不管寄存器列表中各寄存器的排列顺序。例子:Context RLIST {R0-R6, R8, R10-R12, R15):将寄存器列表名称定义为Context
4. RLIST • 为一个通用寄存器列表定义名称。 • 句法: name RLIST {list-of-register} 其中:name为寄存器列表的名称。 {list-of-register}为通用寄存器列表。 • 用法: 定义的名称可以在LDM/STM指令中使用。在LDM/STM 指令中,寄存器列表中的寄存器访问次序总是先访问 编号较低的寄存器,再访问编号较高的寄存器,而不 管寄存器列表中各寄存器的排列顺序。 • 例子: Context RLIST {R0-R6,R8,R10-R12,R15} ;将寄存器列表名称定义为Context