8086伪指令一览表

2018-12-26 23:09

8086伪指令一览表 分类 一、程序分段及存储器分配 指令名 1、SEGMENT和ENDS 形式 [段名] SEGMENT [定位方式][组合方式][类别名] 指令语句 [段名] ENDS 作用 把程序模块中的语句分成若干逻辑段 举例 STACK SEGMENT PARA STACK 'STACK' DB 50 DUP(0) STACK ENDS ; DATA SEGMENT STRING DB \ DB 0DH,0AH,'$' DATA ENDS ; CODE SEGMENT 定位方式 PARA BYTE WORD PAGE PUBLIC 参数说明 按16字节定位,每段起始物理地址形式为:XXXX0H。 按字节定位,最紧凑。 按字定位,即按偶地址定位。 按页定位,每段起始物理地址形式为:XXX00H。 组同名段互相组合成一个逻辑段,公用一个段址,运行时合装入同一个物理段中。 方STACK 同上,但指示的是堆栈段。 式 COMMON 同名段共享相同的存储区域,即这些段的起始地址都相同。长度是模块同名段中的最大长度。 MEMORY 定位段在所有其他段的上面。 AT 按绝对地址定位,其段地址即为数值表达式的值,位移量为0。 NONE/缺定义段与其他模块中的段(同名或不同名)没有任何关省方式 系,运行时它将是一个独立的段。 类在进行连接处理时,LINK程序把类别名相同的所有段(它们未必同名)别 放在连续的存储区域内,但仍然是不同的段;同类的各个段在连接时,先出现的在前,后出现的在后。 用来把模块中若干不同名的段集合成一个组,并赋予一个组名,使它们都装在同一个物理段中(64K)。 组名和段名一样,它表示该组的段地址,因此程序中可以把它作为直接量或跨段前缀使用。 ORG后面的一条指令性语句或数据区定义命令就从指定位置处进行汇编。数值表达式的值应该是非负的整数,且总是取65535的模数,以保证指针定位在0~65535之间。 $表示位置计数器的当前值,它可以在数值表达式中使用。 页码(主) 102 102 102 102 103 103 103 103 103 103 103 页码(参) 93 93 93 93 93 94 94 94 94 94 95 2、GROUP [组名] GROUP [段名] [,...] 3、ORG ORG [数据表达式] 把模块中若干不同名的段集合成一个组 把位置计数器设置成数值表达式的值 4、ASSUME 二、变量定义及存储器申请 1、DB/DW/DD/DQ/DT ASSUME [段寄存器]:[段名],[段寄存器]:[段名],… ①格式1:[变量名] {DB/DW/DD} 表达式 ②格式2:[变量名] {DB/DW/DD} ?,[?],[?],… ③格式3:[变量名] {DW/DD} 地址表达式 假定段寄存器 预置一个常数项 用问号(?)定义变量 预置地址 MOV AX,GROUP1 MOV DS,AX MOV BX,OFFSET GROUP1:FXP ;把变量FXP的偏移量送到BX中 CASEG SEGMENT ORG 2 ┇ ORG $十2 ┇ CASEG ENDS ASSUME DS:SEGA,ES:SEGB, SS:NOTHING,CS:SEGC AB DB 'AB' ;按41 42H存储 BA DW 'AB' ;按42 41H存储 SUM DW ?;分配一个字存储单元 SUN DB ?;分配一个字节存储单元 TABLE_OFF DW TABLE ;变量TABLE的偏移量 TABLE_S DW TABLE十3 ;TABLE中第4字节 ;偏移量 D_PTR_T DD TABLE ;TABLE变量的16位偏 ;移量和段址 ZIPS DB 100 DUP(0) ;100个字节预置为0 DB 2 DUP(0,3DUP(1)) ;申请8个没有名字的字 ;节,并把它们须置为:0,1,1,1,0,1,1,1 NUMS DW 100 DUP(5DUP(4),7) ;申请100×6 ;个字,预置为4,4,4,4,4,7 HI DB 1000 DUP('WELCOM',0DH,0AH) ;申请 ;1000个'WELCOM'回车换行字节空间 95 105 95 通知汇编程序,段寄存器CS,DS,ES和SS的内容将被设定为那些段或组的段址。段址的设定则必须通过给段寄存器赋予段起始地址的指令性语句来完成。 DB后面可以跟一个任意长度(一般规定是256个字符)的字符串,字符串中的数据可以是0~FFH之间的任意值。 不带引号的问号是一个保留字,用它告诉汇编程序随便把存储器单元项置为任何内容。 103 96 100~102 97 98 99 ④格式4: [变量名] {DB/DW/DD} 数值 DUP表达式 预置重复的数值 99 2、RECORD 3、STRUC/ENDS 记录名称 RECORD 字段名称:表达式,… 定义记录 结构名称 STRUC ┇ [字段名称] {DB/DW/DD} 表达式,… 表达式DUP(表达式,…) ┇ 结构名称 ENDS 定义结构 三、过程定义伪指令 PROCENDP /四、符号定义伪指令 1、EQU/= 过程名 PROC NEAR/FAR ┇ RET ┇ 过程名 ENDP 符号名 EQU 数值表达式 符号名 = 数值表达式 定义过程 MODEL3 RECORD X:3=7,Y:4=8,Z:9=257。 15 13 12 9 8 0 MODEL3 1 1 1 10 0 0 100000001 SB STRUC F1 DB 0 F2 DW 2 F3 DB 1,2,3 F4 DD TABLE F5 DW 100DUP(5) F6 DB '10/05/79' F7 DW 5,?,0EACH SB ENDS ;结构SB定义了一个224字节的变量。 MOV BX, OFFSET SB ; MOV AL, [BX] F3 ;结果为 AL=01H。 用记录名称作为汇编期间的操作符,去预置任何多个8位或16位的记录,并为它分配存储单元。 用于设计一个包含有多个字段的结构。结构可以作为位移量数值的存储体,STRUC和END指令语句用于确定这个存储体的范围,在这两个语句之间可以用DB,DW和DD伪指令来确定结构内部位移量的空间。 98 99 把具有一定功能的程序段设计成为一个过程(子程序),是良好的程序设计方法之一。 定义一个过程的NEAR和FAR属性是十分重要的 106 100 定义一个便于记忆的名字 2、LABEL 变量名/标号 LABEL [类型] 定义标签 五、程序模块通讯用伪指令 1、NAME和END 2、PUBLIC NAME 模块名 END 标号 PUBLIC [符号表] 定义一个模块 声明共享符号 声明外部定义的符号 定义汇编程序页属性 为程序指定一个标题 为程序指定一个小标题 3、EXTRN 4、PAGE 5、TITLE 6、SUBTITLE EXTRN [符号:类型,…] PAGE 参数1,参数2 TITLE 标题名 SUBTITLE 小标题名 THREE EQU 3; EQU伪指令可为变量、表达式或其他符号定义一个名字,但它并不申请分COUNTER EQU 9×4十56 配内存。通过EQU伪指令,可以便汇编语言程序简单明了和便于修改。 FIRSTW EQU WORD PTR BYTES ;把变量BYTES定 =可以对符号名进行再定义。 ;义为名字是FIRSTW的字 XYZ EQU ALPHA[SI]十3 P EQU ES:ALPHA NUM=3 NUM=NUM+3 ①BUFF LABEL BYTE 使用LABEL伪指令可以给数据区或程序区定义新的类型和新的名字,从而DB 21 使它们适合于不同的应用场合。 它等效于 BUFF DB 21 用PROC/ENDP伪指令定义的一个过程,可以用LABEL命令定义多个不②TRANS LABEL NEAR 同的入口,但其类型必须保持一致,否则将会出现错误。 MOV AX,CX 它等效于 TRANS: MOV AX,CX 模块命名语句(NAME)可以缺省。这时,该模块的命名规则为:如果模块中使用了TITLE语句(列表输出的页标题命令),则TITLE语句中的页标题的前6个字符就是模块名;如果模块中没有使用TITLE语句,则该模块的源文件名就是模块名。 END后面的标号只能在一个模块中出现,表示程序运行的起始地址。 PUBLIC ABC,BCD,CDE,DEF 程序模块中的PUBLIC语句,用来说明该模块中定义的那些常量、变量和标其中ABC,BCD,CDE和DEF可以是常量,可以是变量,可号(包括过程名)可以被其他模块所引用 以是标号,也可以是过程。 对于一个过程:EXTRN DISPLAY:FAR 伪指令EXTRN,用来指出本模块中需要引用但却是在其他模块中定义并说明对于变量:EXTRN ABC:BYTE,BCD:WORD 为PUBLIC属性的符号。这些符号可以是常量、变量、标号和过程。 PAGE 60, 132 每页行数可设置成10~255(隐含66),每行字符数可设置成60~132(隐含80)。 TITLE MYPROGRAM 标题名不超过60个字符,以后的列表文件会在每一页的第一行打印这个标题。 SUBTITLE MYPRO1 打印在每一页的标题之后。 100 101 101 102 105 102 105 105 106 107 102 注:表中加红部分为重点。


8086伪指令一览表.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全国生态建设先进集体事迹材料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: