原创 ARM指令里几个特殊符号

2013-6-19 10:45 2340 13 14 分类: 模拟
总结一下arm指令里几个特殊符号的意义

    特殊符号 对应指令 含义

    = DCB 分配一片连续的字节存储单元并用指定的数据初始化

    & DCD 分配一片连续的字存储单元并用指定的数据初始化

    % SPACE 分配一片连续的存储单元

    ^ MAP 定义一个结构化内存表的首地址

    # FILED 定义一个结构化内存表的数据域(经常和MAP一起使用,一个定义起始地址,一个定义长度)

    * EQU 为程序中的常量、标号等定义一个等效的字符名称,类似于C语言中的#define

    ! 地址更新

    [ 相当于IF

    | 相当于ELSE

    ] 相当于ENDIF

    常见的数据定义伪指令有如下几种:

    — DCB 用于分配一片连续的字节存储单元并用指定的数据初始化。

    — DCW ( DCWU ) 用于分配一片连续的半字存储单元并用指定的数据初始化。

    — DCD ( DCDU ) 用于分配一片连续的字存储单元并用指定的数据初始化。

    — DCFD ( DCFDU )用于为双精度的浮点数分配一片连续的字存储单元并用指定的数据初始 化。

    — DCFS ( DCFSU ) 用于为单精度的浮点数分配一片连续的字存储单元并用指定的数据初 始化。

    — DCQ ( DCQU ) 用于分配一片以 8 字节为单位的连续的存储单元并用指定的数据初始 化。

    — SPACE 用于分配一片连续的存储单元

    — MAP 用于定义一个结构化的内存表首地址

    — FIELD 用于定义一个结构化的内存表的数据域

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

    使用示例: STr DCB “ This is a test ! ” ;分配一片连续的字节存储单元并初始化。

    2、 DCW(或DCWU) 语法格式: 标号 DCW (或 DCWU ) 表达式 DCW (或 DCWU )伪指令用于分配一片连续的半字存储单元并用伪指令中指定的表达式初始化。 其中,表达式可以为程序标号或数字表达式…… 用 DCW 分配的字存储单元是半字对齐的,而用 DCWU 分配的字存储单元并不严格半字对齐。

    使用示例: Datatest DCW 1 , 2 , 3 ;分配一片连续的半字存储单元并初始化。

    3、 DCD(或DCDU) 语法格式: 标号 DCD (或 DCDU ) 表达式 DCD (或 DCDU )伪指令用于分配一片连续的字存储单元并用伪指令中指定的表达式初始化。其中,表达式可以为程序标号或数字表达式。 DCD 也可用 “ & ” 代替。 用 DCD 分配的字存储单元是字对齐的,而用 DCDU 分配的字存储单元并不严格字对齐。

    使用示例: DataTest DCD 4 , 5 , 6 ;分配一片连续的字存储单元并初始化。

    4、 DCFD(或DCFDU) 语法格式: 标号 DCFD (或 DCFDU ) 表达式 DCFD (或 DCFDU )伪指令用于为双精度的浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化。每个双精度的浮点数占据两个字单元。用 DCFD 分配的字存储单元是字对齐的,而用 DCFDU 分配的字存储单元并不严格字对齐。

    使用示例: FDataTest DCFD 2E115 , -5E7 ;分配一片连续的字存储单元并初始化为指定的双精度数。

    5、 DCFS(或DCFSU) 语法格式: 标号 DCFS (或 DCFSU ) 表达式 DCFS (或 DCFSU )伪指令用于为单精度的浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化。每个单精度的浮点数占据一个字单元。 用 DCFS 分配的字存储单元是字对齐的,而用 DCFSU 分配的字存储单元并不严格字对齐。

    使用示例: FDataTest DCFS 2E5 , -5E - 7 ;分配一片连续的字存储单元并初始化为指定的单精度数。

    6、 DCQ(或DCQU) 语法格式: 标号 DCQ (或 DCQU ) 表达式 DCQ (或 DCQU )伪指令用于分配一片以 8 个字节为单位的连续存储区域并用伪指令中指定的表达式初始化。 用 DCQ 分配的存储单元是字对齐的,而用 DCQU 分配的存储单元并不严格字对齐。

    使用示例: DataTest DCQ 100 ;分配一片连续的存储单元并初始化为指定的值。

    7、 SPACE 语法格式: 标号 SPACE 表达式 SPACE 伪指令用于分配一片连续的存储区域并初始化为 0 .其中,表达式为要分配的字节数。 SPACE 也可用 “ % ” 代替。

    使用示例: DataSpace SPACE 100 ;分配连续 100 字节的存储单元并初始化为 0 .

    8、 MAP 语法格式: MAP 表达式 { ,基址寄存器 } MAP 伪指令用于定义一个结构化的内存表的首地址。 MAP 也可用 “ ^ ” 代替。 表达式可以为程序中的标号或数学表达式,基址寄存器为可选项,当基址寄存器选项不存在时,表达式的值即为内存表的首地址,当该选项存在时,内存表的首地址 为表达式的值与基址寄存器的和。 MAP 伪指令通常与 FIELD 伪指令配合使用来定义结构化的内存表。

    使用示例: MAP 0x100 , R0 ;定义结构化内存表首地址的值为 0x100 + R0 .

    9、 FILED 语法格式: 标号 FIELD 表达式 FIELD 伪指令用于定义一个结构化内存表中的数据域。 FILED 也可用 “ # ” 代替。 表达式的值为当前数据域在内存表中所占的字节数。 FIELD 伪指令常与 MAP 伪指令配合使用来定义结构化的内存表。 MAP 伪指令定义内存表的首地址, FIELD 伪指令定义内存表中的各个数据域,并可以为每个数据域指定一个标号供其他的指令引用。 注意 MAP 和 FIELD 伪指令仅用于定义数据结构,并不实际分配存储单元。

    使用示例: MAP 0x100 ;定义结构化内存表首地址的值为 0x100 . A FIELD 16 ;定义 A 的长度为 16 字节,位置为 0x100 B FIELD 32 ;定义 B 的长度为 32 字节,位置为 0x110 S FIELD 256 ;定义 S 的长度为 256 字节,位置为 0x13

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户440599 2013-6-19 15:11

.。。。。。。
相关推荐阅读
用户447344 2013-08-01 16:37
MEMS麦克风
 MEMS(微型机电系统) 麦克风是基于MEMS技术制造的麦克风,简单的说就是一个电容器集成在微硅晶片上,可以采用表贴工艺进行制造,能够承受很高的回流焊温度,容易与 CMOS 工艺及其它音频电路相...
用户447344 2013-07-26 13:57
基于CAN总线的电气火灾报警系统的设计
我们处在一个电气化的时代,随处可见一座座高楼和各式各样的用电器,各种电缆纵横交错,老化、漏电和违规使用电器都是引发电气火灾的隐患。由于电气 火灾具有发生频率高、发生时间和地点随机、危害特别大等特点,国...
用户447344 2013-07-26 13:55
开发人员对DSP控制器的四大误解
    马达控制设计人员近来在家用电器产品与伺服驱动器等各种应用中的发展都遇到了障碍,必须在控制器性能或昂贵的价格之间进行选择。大多数马达控制应用 本身成本较低。获得市场接受的必需条件之一就是产品...
用户447344 2013-07-26 13:53
为嵌入式列车控制系统选择操作系统
    为确保安全和效率,铁路和运输系统正在实施各种保护系统,如列车自动保护(ATP)、积极列车控制(PTC)和基于通信的列车控制(CBTC)等。地铁和其他轨道交通系统正在采用自动列车操作(ATO)系...
用户447344 2013-07-23 09:12
基于单片机的无线收发电路设计方案
数据采集及传输系统是现代测量仪器的基础。在工业测控、医疗监护和实验研究中得到广泛应用。当数据采集点处于非固定位置或运动状态时,数据采集系统必须与 主机分离。同时还需利用电池供电。因此,由无线收发电路或...
用户447344 2013-07-23 09:10
舜间压降触发被测件关机
许多电池供电的设备都配有低电压检测电路,例如手机、对讲机和GPS 等。 低电压检测电路旨在防止设备在低于安全值的电池电压下工作,从而确保内部电路的可靠运行。在正常工作情况下,电池的电压相对稳...
我要评论
1
13
关闭 站长推荐上一条 /3 下一条