现在的位置: 首页 > 综合 > 正文

80X86伪指令

2013年06月17日 ⁄ 综合 ⁄ 共 3338字 ⁄ 字号 评论关闭

 8086 伪指令表

一、数据定义伪操作

伪 指 令 名 称
语 句 格 式
功 能

定义字节类型的数据存储区
[变量名] DB 表达式[,…]
定义一个以变量名为首址的字节类型数据存储区,所含数据元素的个数由其后表达式的个数所决定,数据存储单元的初值由对应表达式的值给出

定义字节类型的数据存储区
[变量名] DW 表达式[,…]
同上,只是定义的为字类型的数据存储区

定义双字类型的数据存储区
[变量名] DD 表达式[,…]
同上,只是定义的为双字类型的数据存储区

定义四字类型的数据存储区
[变量名] DD 表达式[,…]
同上,只是定义的为四字类型的数据存储区

定义十字类型的数据存储区
[变量名]DT表达式[,。。。]
同上,只是定义的为十字节类型的数据存储区

定义记录类型数据存储区
定义记录
记录名RECORD字段名:宽度[=表达示]{,…}

说明:每天个记录可包含多个字段,字段的宽度指字段值所占的存储位数(1-16),各字段
定义一个给定名字的记录,但并不分配存储单元

定义记录存储区
[变量名] 记录名 <表达式[,表达式]>
定义一个以变量名为首地址的、类型为某记录的数据存储区,所含记录的个数由其后表达式的个数所决定,各字段的值由对应表达式的值给出

定义结构类型数据存储区
定义结构
结构名STRUC

<数据定义语句序列>

结构名 ENDS

说明:结构内数据定义语句中的变量名也称为结构字段名
定义一个给定名字的结构,通过结构的定义说明了结构字段名的存在,但并不分配存储单元

定义结构存储区
结构变量名 结构名 <字段值表>
定义一个以结构变量名为首地址的、类型为某结构的数据存储区,结构中各字段的值由字段值表按序给出

二、符号定义伪操作

伪指令名称
语句格式
功能

等 价
符号名 EQU 表达式
用来为常量,表达式及其它各种符号定义一个等价的符号名,但并不分配存储单元

等 号
符号名 = 表达式
同上,只是等号语句能对同一符号名再定义

定义符号名
变量名或符号LABEL类型
为当前存储单元定义一个指定类型的变量或符号

三、定义段、组、过程的伪操作

段定义
段名SEGMENT [定位方式] [组合方式] ’类别’


定义了一个以SEGMENT伪指令开始,以ENDS伪指令为结束,给定段名的段

段结束
段名 ENDS

假定
ASSUME段寄存器:段名[,段寄存器:段名]或ASSUME NOTHING说明:其中的”段名”是程序中某一已定义段(或组)的名字,也可以是表达式”SEG变量或标号”
用来设定段寄存器与段之间的对应关系,也可以用来采取消段寄存器与段之间的对应关系(使用NOTHING时)

组定义
组名GROUP段名[,段名]说明:其中的”段名”也可以是表达式”SEG变量或标号”
将模块中若干个段集合成一个组

(≤64KB),并赋予一个组名,这样,组内各段之间的跳转都可以看作是段内跳转,组名也可以作为直接量或跨段前缀使用

附录F 8086 伪指令表 ·304·

续表

伪 指 令 名 称
语 句 格 式
功 能

过程定义
过程名PROC[NEAR]或FAR
定义了一个以PROC开始,以ENDP伪指令为结束的,给定过程名的过程

过程结束
过程名ENDP

四、程序模块的定义与通信伪操作

伪 指 令 名 称
语 句 格 式
功 能

定义模块名
NAME模块名
将本语句所在的,以END伪指令为结束的源程序定义成给定名字的模块

源程序(模块)结束
END[表达式]
该语句只能为源程序的最后一个语句,用以标志整个源程序(模块)的结束,如果后面带表达式,则为该程序的启地址

说明公共符号
PUBLIC符号[,…]
用来说明其后的符号是公共符号,可以被其他模块调用

说明外部符号
EXTRN符号:类型[,…]
用来说明其后的符号是外部符号,这些外部符号必须在他说定义的模块中被说明成公共符号且类型必须与定义时的类型一致

五、宏定义伪操作

伪 指 令 名 称
语 句 格 式
功 能

宏定义
宏指令名MACRO形式参数[,形式参数]
宏定义的开始语句,用来定义一个给定名字的宏指令

宏定义结束
ENDM
用来标志宏定义的结束或重复操作的结束

产生特殊符号
LOCAL 形式参数[,形式参数]
让宏汇编程序自动为其后的形式参数顺序生成特殊符号(范围从??0000~??FFFFH)并用这些符号来取代宏体中的形参

取消宏定义
PURGE宏指令名[,宏指令名]
取消指定的宏定义

终止宏扩展
EXITM
终止MACRO调用或重复操作(REPT,IRP,IRPC

),立即退出扩展体,扩展体得剩余部分或重复就不执行了

六、重复汇编及条件汇编伪操作

伪 指 令 名 称
语 句 格 式
功 能

给定次数的重复汇编
REPT表达式
重复块的开始语句,表示要将重复块重复汇编表达式所指定的次数

不定次数的
IRP形式参数,<实在参数1,…,实在参数N>
重复块的开始语句,表示要将重复块重复汇编由实参个数所给定的次数

重复汇编
IRPC形式参数,字符串
重复块的开始语句,表示要将重复块重复汇编由字符串长度所给定的次数

测试表达式的值
正条件:IF数值表达式,反条件:IFE数值表达式,说明:反条件指测试为真的条件与正条件正好相反,在功能说明栏中,圆括号中的内容为反条件
条件汇编块的开始语句,表示如果表达式的值不为0为真,汇编其后的语句,否则为假,汇编[ELSE]后面的语句,如果[ELSE]不存在,则直接汇编ENDIF后面的语句

测试符号是否定义
正条件:IFDEF符号

反条件:IFNDEF符号
功能同上,只是测试条件为:如果其后符号以被定义(未定义)为真,否则为假

测试扫描次数
正条件:IF1

反条件:IF2
功能同上,只是测试条件为:如果是第一(或第二)遍扫描为真,否则为假

测试参数是否为空
正条件:IFB(参数)

反条件:IFNB(参数)
功能同上,只是测试条件为:如果该参数对应的实参存在(不存在)为真

测试字符串是否相等
正条件:IFIDN(参数1),(参数2)

反条件:IFIDN)(参数1),(参数2)
功能同上,只是测试条件为:如果字符串参数1与字符串参数2相等(不等)为真,否则为假

条件汇编结束
ENDIF
用来标志条件汇编块的结束

七、换页控制、列表控制伪操作

伪指令名称
语句格式
功 能

输出标题
TITLE正文
为源程序指定标题(≤60个字符)供列表文件输出

输出子标题
SUBTTL正文
用在标题之后指定一个小标题,其字符个数不限,但每行均要以SUBTTL开头,如果SUBTTL不带正文,则表示要取消前面的字标题

附录 F 8086 伪指令表 ·305·

续表

伪指令名称
语句格式
功 能

注释
COMMENT定界符 文本定界符
为程序作注释且不用加分号,其中文本字符个数不限,还可以是多行,只要在定界符之间即可,定界符是除空格以外的符号,必须在首尾同时出现

换页
PAGE
使汇编列表文件输出时换页(每页66行,每行80列)

PAGE页长,页宽
使汇编列表文件按指定的页长(只每页所含行数,可以是10~255),页宽(指每行所含列数,可以是60~132)输出

PAGE+
使汇编列表文件输出时的章号加1

汇编列表文件输出控制
.LIST
充许从该行开始的源文件及目标代码全部在汇编列表文件中输出(该伪质指令的功能为系统隐含状态),直到遇到。XLIST伪指令为止用来指定从该行开始的源程序及目标代码不在汇编列表文件中输出,直到遇到,LIST伪指令为止。

.XLIST

宏展开列表输出控制
.LALL
充许在汇编列表文件中列出所有宏扩展内容,包括不产生目标代码的语句。

.XALL
用来指定在汇编列表文件中仅列出产生目标代码的宏扩展内容(系统的隐含状态)

.SALL
用来指定在汇编列表文件中不列出任何宏扩展的内容。

符号交叉引用文件输出控制
.CREF
充许从该行起的内容在符号交叉引用文件中输出,直到遇到。XCREF伪指令为止(系统隐含壮态)

.XCREF
用来指定从该行开始的内容不在符号叉引用文件中输出,直到遇到。XCREF伪指令为止。

输出正文
%OUT正文
在汇编期间,其后正文送显示器显示。

八、其它伪操作

伪 指 令 名 称
语 句 格 式
功 能

置汇编地址计数器
ORG数值表达式
将汇编地址计数器置成数值表达式所给定的值

置偶地址边界
EVEN
将汇编地址计数器的值调整成偶数

基数控制
RADIX数值表达式说明:该数值表达式的值要以十进制表示。
用来指定其后语句中所出现不带数据类型后缀的数具有数值表达式所指定的基数(2~16),该伪指令对DD,DQ,DT数据定义伪指令不起作用。

将指定文本加入源文件
INCLUDE文本文件名
将指定的文本文件加入当前源文件中一起汇编

抱歉!评论已关闭.