首页 理论教育ARMCortex-M4嵌入式系统符号定义伪指令

ARMCortex-M4嵌入式系统符号定义伪指令

【摘要】:GBLS伪指令用于定义一个全局的字符串变量,并初始化为空。例如:4.寄存器列表定义伪指令RLIST格式:名称RLIST{寄存器列表}功能:RLIST伪指令可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在ARM指令LDM/STM中使用。

符号定义(Symbol Definition)伪指令用于定义ARM汇编程序中的变量、对变量赋值及定义寄存器的别名等操作常见的符号定义伪指令有如下几种:

1.全局变量定义伪指令GBLA、GBLL和GBLS

格式:GBLA(GBLL或GBLS) 全局变量名

功能:GBLA、GBLL和GBLS伪指令用于定义一个ARM程序中的全局变量,并将其初始化。其中各伪指令含义如下:

(1)GBLA伪指令用于定义一个全局的数字变量,并初始化为0。

(2)GBLL伪指令用于定义一个全局的逻辑变量,并初始化为F(假)。

(3)GBLS伪指令用于定义一个全局的字符串变量,并初始化为空。

注意:由于这3条伪指令用于定义全局变量,因此在整个程序范围内变量名必须唯一。

例如:

2.局部变量定义伪指令LCLA、LCLL和LCLS

格式:LCLA (LCLL或LCLS) 局部变量名

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

(1)LCLA伪指令用于定义一个局部的数字变量,并初始化为0。

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

(3)LCLS伪指令用于定义一个局部的字符串变量,并初始化为空。

注意:这3条伪指令用于声明局部变量,在其作用范围内变量名必须唯一。(www.chuimin.cn)

例如:

3.变量赋值伪指令SETA、SETL和SETS

格式:变量名 SETA(SETL或SETS) 表达式

功能:伪指令SETA、SETL、SETS用于给一个已经定义的全局变量或局部变量赋值。其中各伪指令含义如下:

(1)SETA伪指令用于给一个数学变量赋值。

(2)SETL伪指令用于给一个逻辑变量赋值。

(3)SETS伪指令用于给一个字符串变量赋值。

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

例如:

4.寄存器列表定义伪指令RLIST

格式:名称 RLIST{寄存器列表}

功能:RLIST伪指令可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在ARM指令LDM/STM中使用。

注意:在LDM/STM指令中,列表中的寄存器访问次序为根据寄存器的编号由低到高,而与列表中的寄存器排列次序无关。

例如: