ARM汇编程序设计之:ARM汇编器所支持的伪操作

时间:2013-09-30来源:网络

2.局部变量定义伪操作LCLA、LCLL和LCLS

(1)语法格式

LCLA、LCLL和LCLS伪指令用于定义一个ARM程序中的局部变量并将其初始化。其中:

LCLA伪操作用于定义一个局部的数字变量并初始化为0。

LCLL伪操作用于定义一个局部的逻辑变量并初始化为F(假)。

LCLS伪操作用于定义一个局部的字符串变量并初始化为空。

以上三条伪操作用于声明局部变量,在其作用范围内变量名必须惟一。

语法格式如下。

lclx>variable>

①gblx>

取值为LCLA、LCLL、LCLS之一。

②variable>

所定义的局部变量名,在其作用范围内必须惟一。局部变量作用范围为包含该局部变量的宏。

(2)使用说明

如果用这些伪操作重新声明已经声明过的变量,则变量的值将被初始化成后一次声明语句中的值。

(3)示例

①使用伪操作声明局部变量。

LCLATest4 ;声明一个局部的数字变量,变量名为Test4

Test3SETA0xaa ;将该变量赋值为0xaa

LCLLTest5 ;声明一个局部的逻辑变量,变量名为Test5

Test4SETL{TRUE} ;将该变量赋值为真

LCLSTest6 ;定义一个局部的字符串变量,变量名为Test6

Test6SETSTesting ;将该变量赋值为“Testing”

②下面的例子定义一个宏,显示了局部变量的作用范围。

MACRO ;声明一个宏

$labelmessage$a ;宏原型

LCLSerr ;声明局部字符串变量

$label

INFO0,err:CC::STR:$a

MEND ;宏结束,局部变量不再起作用

3.变量赋值伪操作SETA、SETL和SETS

(1)语法格式

伪指令SETA、SETL和SETS用于给一个已经定义的全局变量或局部变量赋值。

SETA伪操作用于给一个数学变量赋值;

SETL伪操作用于给一个逻辑变量赋值;

SETS伪操作用于给一个字符串变量赋值;

语法格式如下。

Variablesetx>expr

①Variable

变量名为已经定义过的全局变量或局部变量,表达式为将要赋给变量的值。

②setx>

取值为SETA、SETL、SETS之一。

③expr

数学、逻辑或字符串表达式,也就是将要赋予变量的值。

(2)使用说明

在向变量赋值前必须先声明变量。

也可以在汇编指令中预定义变量,如:

Armasm--pdobjectsizeSETAoxff--oobjectfilesourcefile

(3)示例

①为预先定义的变量赋值。

LCLATest3 ;声明一个局部的数字变量,变量名为Test3

Test3SETA0xaa ;将该变量赋值为0xaa

LCLLTest4 ;声明一个局部的逻辑变量,变量名为Test4

Test4SETL{TRUE} ;将该变量赋值为真

LCLSTest6 ;定义一个局部的字符串变量,变量名为Test6

Test6SETSTesting ;将该变量赋值为“Testing”

②使用变量赋值伪操作,定义一些程序相关内容。

GBLAversionNumber

VersionNumber SETA21

GBLLDebug

Debug SETL{TRUE}

GBLS versionString

VersionString SETSversion1.0

4.通用寄存器列表定义伪操作RLIST

(1)语法格式

RLIST伪操作可用于对一个通用寄存器列表定义名称,使用该伪操作定义的名称可在ARM指令LDM/STM中使用。在LDM/STM指令中,列表中的寄存器访问次序根据寄存器的编号由低到高,与列表中的寄存器排列次序无关。

语法格式如下。

NameRLIST{list-of-registers}

①Name

寄存器列表的名称。

注意

该名称不能和已经定义寄存器或协处理器名称相同。

②list-of-registers

通用寄存器列表。列表中的寄存器用“,”隔开,如果是编号连续的通用寄存器可以用“-”指定寄存器范围。具体用法参见程序示例。

(2)使用说明

在使用ARM汇编编译器编译源文件时,可以使用“-checkreg”选项来指定汇编器进行寄存器检查。如果汇编器检测到寄存器列表中的寄存器编号非升序排列,将给出编译警告。

(3)示例

①将寄存器列表名称定义为RegList,可在ARM指令LDM/STM中通过该名称访问寄存器列表。

RegListRLIST{R0-R5,R8,R10};

②使用“-”在寄存器列表中,指定寄存器范围。

ContextRLIST{r0-r6,r8,r10-r12,r15} ;

1 2 3

关键词: ARM 汇编程序 汇编器 伪操作 符号定义伪操作

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版