IamEasy_Man

Filled With Confidence , And Never Say Give Up !

【摘录】ARM汇编程序中的伪指令同义词总结

* MAP
MAP 用于定义一个结构化的内存表的首地址。此时,内存表的位置计数器{VAR}设置为该地址值{VAR}为汇编器的内置变量。^MAP 同义
伪指令格式:
MAP expr{base_register}
其中:
expr数字表达式或程序中的标号。当指令中没有base_register时,expr 即为结构化内存表的首地址。
base_register一个寄存器。当指令中包含这一项时,结构化内存表的首地址为expr base_register 寄存器值的和。
MAP 伪指令和FIELD 伪指令配合使用,用于定义结构化的内存表结构。MAP 伪指令中的base-register 寄存器的值对于其后所有的FIELD 伪指令定义的数据域是默认使用的,直到遇到新的包含base-register项的MAP 伪指令。
* FIELD
FIELD 用于定义一个结构化内存表中的数据域。#FIELD 同义
伪指令格式:
{label} FIELD expr
其中:
label 当指令中包含这一项时,label 的值为当前内存表的位置计数器{VAR}的值,汇编编译器处理了这条FIELD 伪指令后,内存表计数器的值将加上expr
expr表示本数据域在内存表中所占用的字节数。
MAPFIELD 伪指令仅仅是定义数据结构,它们并不实际分配内存单元。
* SPACE
SPACE 用于分配一块内存单元,并用0 初始化。%SPACE 同义
伪指令格式:
{label} SPACE expr
其中:
label 内存块起始地址标号。
expr所要分配的内存字节数。
* DCB
DCB 用于分配一段字节内存单元,并用伪指令中的expr初始化。一般可用来定义数据表格,或文字符串。=DCB 同义
伪指令格式:
{label} DCB expr{expr}{expr}…
其中:
label 内存块起始地址标号。
expr可以为-128~255 的数值或字符串。内存分配的字节数由expr 个数决定。
* DCD DCDU
DCD 用于分配一段字内存单元,并用伪指令中的expr 初始化。DCD 伪指令分配的内存需要字对齐,一般可用来定义数据表格或其它常数。&DCD 同义
DCDU 用于分配一段字内存单元,并用伪指令中的expr 初始化。DCD 伪指令分配的内存不需要字对齐,一般可用来定义数据表格或其它常数。
伪指令格式:
{label} DCD expr{expr}{expr}…
{label} DCDU expr{expr}{expr}…
其中:
label 内存块起始地址标号。
expr常数表达式或程序中的标号。内存分配字节数由expr个数决定。
* IFELSE ENDIF
IF ELSE ENDIF 伪指令能够根据条件把一段代码包括在汇编程序内或将其排除在程序之外。[IF 同义,|ELSE 同义,]ENDIF 同义
伪指令格式:
IF logical_expr
;指令或伪指令代码段1
ELSE
;指令或伪指令代码段2
}
ENDIF
其中:
logical_expr用于控制的逻辑表达式。若条件成立,则代码段落在汇编源程序中有效。若条件不成立,代码段1 无效,同时若使用ELSE 伪指令,代码段有效。

* EQU

EQU 伪指令为数字常量,基于寄存器的值和程序中的标号定义一个名称。*EQU同义

指令格式:

name EQU expr{type}

其中:

name 要定义的常量的名称。

expr 基于寄存器的地址值,程序中的标号,32 位地址常量或32 位常量。

type expr 32 位常量时,可用type 指示expr 表示的数据类型。如下

CODE16

CODE32

DATA

EQU 伪指令的作用类似于C 语言中的#define。用于为一个常量定义名称。

* GET INCLUDE

GET 伪指令将一个源文件包含到当前源文件中,并将被包含的文件在当前位置进行汇编处理。INCLUDE GFT 同义

指令格式

GET filename

INCLUDE filename

其中:

filename 要包含的源文件名,可以使用路径信息。

GET 伪指令通常用于包含一些宏定义或常量定义的源文件。如用EQU 定义的常量,用MAP FIELD 定义的结构化的数据类型,这样的源文件类似于C 语言中的头文件,GETINCLUDE 伪指令不能用来包含目标文件,而INCBIN 伪指令可以包含目标文件。

posted on 2011-03-04 13:44  IamEasy_Man  阅读(475)  评论(0)    收藏  举报

导航