位置:51电子网 » 技术资料 » 嵌入式系统

ARM汇编器所支持的伪指令

发布时间:2008/12/22 0:00:00 访问次数:790

  在arm汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,它们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。

  在arm的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令。

  1.符号定义(symbol definition)伪指令

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

  ·用于定义全局变量的gbla、gbll和gbls。

  ·用于定义局部变量的lcla、loll和lcls。

  ·用于对变量赋值的seta、setl、sets。

  ·为通用寄存器列表定义名称的rlist。

  (1)gbla、 gbll不口gbls

  gblia(gbll或ddr o) 全局变量名

  gbla、gbll和gbls伪指令用于定义一个arm程序中的全局变量,并将其初始化。其中:

  ·gbla伪指令用于定义一个全局的数字变量,并初始化为0;

  ·gbll伪指令用于定义一个全局的逻辑变量,并初始化为f(假);

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

  由于以上三条伪指令用于定义全局变量,因此在整个程序范围内变量名必须唯一。

  (2)lcla、 lcll不口lcls

  lcla(lcll或lcls) 局部变量名

  lola、lcll和lcls伪指令用于定义一个arm程序中的局部变量,并将其初始化。其中:

  ·lcla伪指令用于定义一个局部的数字变量,并初始化为0;

  ·lcll伪指令用于定义一个局部的逻辑变量,并初始化为f(假);

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

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

  (3) seta、 setl 2-fl] sets

  变量名 seta(idlil或sets) 表达式

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

  伪指令seta、setl、sets用于给一个已经定义的全局变量或局部变量赋值。

  ·seta伪指令用于给一个数学变量赋值;

  ·setl伪指令用于给一个逻辑变量赋值;

  ·sets伪指令用于给一个字符串变量赋值。

  (4)rlist

  名称 rltst (寄存器列表)

  rlist伪指令可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在arm指令ldm/stm中使用。在ldm/stm指令中,列表中的寄存器访问次序根据寄存器的编号由低到高,而与列表中的寄存器排列次序无关。

  2. 数据定义 (data definition) 伪指令

  数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。常见的数据定义伪指令有如下几种。

  (1)dcb

  标号 dcb 表达式

  dcb伪指令用于分配一片连续的字节存储单元,并用伪指令中指定的表达式初始化。其中,表达式可以为0~255的数字或字符串。dcb也可用“=”代替。

  (2)dcw(或dcwu)

  标号 dcw(或dcwu) 表达式

  dcw(或dcwu)伪指令用于分配一片连续的半字存储单元,并用伪指令中指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。

  用dow分配的字存储单元是半字对齐的,而用dcwu分配的字存储单元并不严格要求半字对齐。

  (3)dcd(ii dcdu)

  标号 dcd (或dcdu) 表达式

  dcd(或dcdu)伪指令用于分配一片连续的字存储单元,并用伪指令中指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。dod也可用“&”代替。

  用dod分配的字存储单元是字对齐的,而用dcdu分配的字存储单元并不严格要求字对齐。

  (4)dcfd(或dcfdu)

  标号 dcfd (或dcfdu) 表达式

  dcfd(或dcfdu)伪指令用于为双精度的浮点数分配一片连续的字存储单元,并用伪指令中指定的表达式初始化。每个双精度的浮点数占据两个字单元。

  用dcfd分配的字存储单元是字对齐的,而用dcfdu分配的字存储单元并不严格要求字对齐。

  (5)dcfs(再戈dcfsu)

  标号 dcfs (或dcfsu) 表达式

  dcfs(或dcfsu)伪指令用于为单精度的浮点数分配一片连续的字存储单元,并用伪指令中指定的表达式初始化。每个单精度的浮点数占据一个字单元。

  用dcfs分配的字存储单元是字对齐的,而用dcfsu分配的字存储单元并不严格要求字对齐。

  

  在arm汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,它们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。

  在arm的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令。

  1.符号定义(symbol definition)伪指令

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

  ·用于定义全局变量的gbla、gbll和gbls。

  ·用于定义局部变量的lcla、loll和lcls。

  ·用于对变量赋值的seta、setl、sets。

  ·为通用寄存器列表定义名称的rlist。

  (1)gbla、 gbll不口gbls

  gblia(gbll或ddr o) 全局变量名

  gbla、gbll和gbls伪指令用于定义一个arm程序中的全局变量,并将其初始化。其中:

  ·gbla伪指令用于定义一个全局的数字变量,并初始化为0;

  ·gbll伪指令用于定义一个全局的逻辑变量,并初始化为f(假);

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

  由于以上三条伪指令用于定义全局变量,因此在整个程序范围内变量名必须唯一。

  (2)lcla、 lcll不口lcls

  lcla(lcll或lcls) 局部变量名

  lola、lcll和lcls伪指令用于定义一个arm程序中的局部变量,并将其初始化。其中:

  ·lcla伪指令用于定义一个局部的数字变量,并初始化为0;

  ·lcll伪指令用于定义一个局部的逻辑变量,并初始化为f(假);

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

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

  (3) seta、 setl 2-fl] sets

  变量名 seta(idlil或sets) 表达式

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

  伪指令seta、setl、sets用于给一个已经定义的全局变量或局部变量赋值。

  ·seta伪指令用于给一个数学变量赋值;

  ·setl伪指令用于给一个逻辑变量赋值;

  ·sets伪指令用于给一个字符串变量赋值。

  (4)rlist

  名称 rltst (寄存器列表)

  rlist伪指令可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在arm指令ldm/stm中使用。在ldm/stm指令中,列表中的寄存器访问次序根据寄存器的编号由低到高,而与列表中的寄存器排列次序无关。

  2. 数据定义 (data definition) 伪指令

  数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。常见的数据定义伪指令有如下几种。

  (1)dcb

  标号 dcb 表达式

  dcb伪指令用于分配一片连续的字节存储单元,并用伪指令中指定的表达式初始化。其中,表达式可以为0~255的数字或字符串。dcb也可用“=”代替。

  (2)dcw(或dcwu)

  标号 dcw(或dcwu) 表达式

  dcw(或dcwu)伪指令用于分配一片连续的半字存储单元,并用伪指令中指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。

  用dow分配的字存储单元是半字对齐的,而用dcwu分配的字存储单元并不严格要求半字对齐。

  (3)dcd(ii dcdu)

  标号 dcd (或dcdu) 表达式

  dcd(或dcdu)伪指令用于分配一片连续的字存储单元,并用伪指令中指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。dod也可用“&”代替。

  用dod分配的字存储单元是字对齐的,而用dcdu分配的字存储单元并不严格要求字对齐。

  (4)dcfd(或dcfdu)

  标号 dcfd (或dcfdu) 表达式

  dcfd(或dcfdu)伪指令用于为双精度的浮点数分配一片连续的字存储单元,并用伪指令中指定的表达式初始化。每个双精度的浮点数占据两个字单元。

  用dcfd分配的字存储单元是字对齐的,而用dcfdu分配的字存储单元并不严格要求字对齐。

  (5)dcfs(再戈dcfsu)

  标号 dcfs (或dcfsu) 表达式

  dcfs(或dcfsu)伪指令用于为单精度的浮点数分配一片连续的字存储单元,并用伪指令中指定的表达式初始化。每个单精度的浮点数占据一个字单元。

  用dcfs分配的字存储单元是字对齐的,而用dcfsu分配的字存储单元并不严格要求字对齐。

  

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!