2022年指令大全 .pdf
《2022年指令大全 .pdf》由会员分享,可在线阅读,更多相关《2022年指令大全 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、80X86 汇编指令符号大全+、- 、*、/ 算术运算符。&宏处理操作符。宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个 & 记号,宏汇编程序就能够用实在参数代替这个形式参数了。$地址计数器的值记录正在被汇编程序翻译的语句地址。每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。?操作数。在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。等号伪指令符号定义。对符号进行定义和赋值,功能与 EQU相似,但允许(重复)再定义。:修改属性运算符(操作符)段操作符。用来临时给变量、标号或地址表达式指定一个段属性 (不用缺省
2、的段寄存器) , 自动生成一个“跨段前缀字节”。注意,段寄存器 CS和 ES不能被跨越,堆栈操作时也不能跨越SS 。;注释符号。% 特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII 码嵌入到宏扩展中。( ) 1. 运算符用来改变运算符的优先级别。2. 教材符号,表示括号内存储单元(或寄存器)的内容。宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。 1. 运算符。方括号括起来的数是数组变量的下标或地址表达式。带方括号的地址表达式必须遵循下列原则,只有BX 、BP 、SI、DI 这四个寄存器可在方括号内出现;
3、 BX或 BP可单独出现在各方括号中,也可以与常数、SI 或 DI 一起出现在方括号内,但不允许BX和 BP出现在同一个方括号内;SI 和 DI 可以单独出现在各方括号内,也可以与常数、BP或 BX一起出现在方括号内,但不允许 SI 和 DI 出现在同一个方括号内; 一个方括号内包含多个寄存器时,它们只能作加法运算;若方括号内包含基址指针BP ,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。 2. 教材符号,表示其中的内容可省略。.LIST 伪指令。用于打开列表文件输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
4、- - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - .RADIX伪指令。把缺省的基数改为2-16 范围内的任意基数。.RADIX不影响 DD 、DQ 、DT伪指令,在这些伪指令中,输入的数值只要没有加上数据类型就认为是十进制数。.XLIST伪指令。用于关闭列表文件输出。%OUT伪指令。在汇编时显示其后的信息。AAA 指令助记符加法运算后的ASCII 调整 (非压缩的 BCD 码)。 无操作数,调整的加法结果在AL中。AF和 CF的状态改变说明结果大于9。检查 AL的低四位是否为合法的 BCD 码 (0-9) , 如果合
5、法就清除AL的高四位以及 AF和 CF标志。当 AL的低四位表示的数大于 9 或 AF 1 时, 将 AL加 6 ,AH加 1 ,并使 AF和CF置位,清除 AL中的高四位。任何一个AF之间的数加上 6 以后,都会使 AL低 4 位产生 0-9 之间的数,从而达到调整的目的。AAD 指令助记符除法的ASCII 调整(非压缩的 BCD 码)。在执行除法操作前,必须利用 AAD指令将非压缩型 BCD码表示的数转换成二进制数送AL。步骤是,先将被除数的高位数( AH中的内容)乘以 10,然后加到 AL的低位数中,接着将 AH清零。AAM 指令助记符乘法的ASCII 调整(非压缩的 BCD 码)。用于
6、将字节乘法的积转换成两个合法的十进制非压缩码。AAM 不带操作数,假定成绩在AH和 AL中,并将调整后的非压缩码送回AH和 AL。为了保证 AAM得到正确的结果, 原乘数和被乘数必须是合法的非压缩码。指令执行时,AAM 用 10(0AH ) 除 AL寄存器,并将除得的商和余数分别送AH和 AL寄存器,实现转换。AAS 指令助记符减法运算后的ASCII 调整(非压缩的 BCD 码)。检查 AL的低四位是否为合法的BCD 码(0-9),如果合法就清除AL的高四位以及 AF和CF标志。当 AL的低四位表示的数大于 9 或 AF 1 时, 将 AL减 6 ,AH减 1 ,并使 AF和 CF置 1,清除
7、 AL中的高四位。ADC 指令助记符带进位加法 (把 CF的值加上) 。用于多字节数的高字节加法运算。ADD 指令助记符加法。参与运算的二操作数应该同时带符号或不带符号,并且长度一致。操作数可以是寄存器、存储器或立即数,但不能同时为存储单元或段寄存器,立即数也不能作为目的操作数。AF Auxiliary Carry Flag,辅助进位标志, 在标志寄存器的第4 字节。记录运算时第 3 位(半个字节)产生的进位值(置1)。该标志用于对BCD 码的加减运算中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
8、- - - - 第 2 页,共 20 页 - - - - - - - - - AND 逻辑运算符 (在语句的操作数部分, 汇编时完成) 或逻辑操作指令助记符(在语句的操作码部分,其运算在执行指令时完成)按位与。只有相“与”的两位全为 1 ,结果才为 1。某数自己与自己相“与”,操作数不变,进位标志 CF清 0 。ASSUME段定义伪指令设定分段寄存器,格式为 ASSUME 段寄存器 : 段名,段寄存器名 : 段名 。在代码段的开始用来指出所有段与段寄存器的关系,确定某个段分配给哪个段寄存器。ASSUME 只指出各段寄存器的分配,并没有把段地址装入相应的段寄存器。为此,在代码段中,还必须把数据段
9、和附加数据段的段地址装入相应的寄存器中。AT 伪指令段定义(组合类型)。该段按绝对地址定位,段基址为数值表达式的值,位移量为0 。不能指定代码段。AX Accumulator ,通用寄存器,算术运算的主要寄存器。另外,所有的I/O指令都使用这一寄存器与外部设备传送信息。其中AH是高 8 位,AL 是低 8 位。B 数据类型后缀,表示二进制常量。BP Base Pointer , 基址指针寄存器。可以与SS寄存器联用来确定堆栈中任一存储单元的地址。它指示堆栈中任一单元的偏移量。非堆栈进出指令要访问堆栈,只能通过 BP进行。BX Base,通用寄存器。在计算存储器地址时,经常用作基址寄存器。其中B
10、H是高 8 位,BL是低 8 位。BYTE 伪指令段定义(定位类型)。本段起始单元可以从任一地址开始,段间不留空隙,存储器利用率最高。CALL 指令助记符程序调用。一、段内直接调用:格式为 CALL 过程名 。先把 IP 内容(子程序的返回地址,即 CALL下一条指令的地址)压入堆栈,然后IP 转移到子程序的入口地址。二、段内间接调用:格式为 CALL WORD PTR OPD。先把 IP 的内容压入堆栈,然后 IP 指向(转到)由寻址方式决定的EA 。三、段间直接调用。格式为CALL FAR PTR 过程名 。先把 CS和 IP 的内容压入堆栈,然后在CS中装入新的段地址, IP 指向段内偏
11、移地址。四、段间间接调用:格式为CALL DWORD PTR OPD。 先把 CS和 IP 的内容压入堆栈,然后把寻址方式确定的有效地址所指定的一个字储存单元的内容送入 IP,下一个字存储单元的内容(段首址)送入CS 。CBW 指令助记符字节转换为字。把AL中字节的符号扩展到AH中,若( AL)的最高有效位为 0 ,则( AH )00;若( AH )的最高有效位为1, 则(AH)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - -
12、0FFH 。CF Carry Flag , 进位标志 , 在标志寄存器的第0 字节 , 记录运算时从最高有效位产生的进位值(置1)。 作加法时, CF位可以用来表示无符号数的溢出(有符号数溢出用 OF表示)。CLC 指令助记符标志(进位)设置。设置CF 0。CLD 指令助记符清方向标志。使DF 0 。这样,当执行字节串操作指令时,地址自动增 1 ;当执行字串操作指令时,地址自动增2 。CLI 指令助记符中断允许标志设置。设置IF0 。CMC 指令助记符标志(进位)设置。CF取反。CMP 指令助记符比较。对于“ CMP AX ,BX ” ,如果是两个无符号数比较(减),若结果没有产生借位,即CF
13、 0, 则(AX )( BX );若 CF 1 ,则(AX )( BX )。 如果是两个带符号数比较,则当没有溢出( OF 0)时,若 SF 0,则( AX )( BX ) 若 SF 1,则( AX )(BX ) 当产生溢出( OF1)时,若 SF0,则( AX )( BX ) 多 SF 1,则( AX )( BX ) 简炼的结论,若 OF 异或 SF0,则(AX ) (BX ) 若 OF 异或 SF1,则(AX ) (BX)CMPS 指令助记符串比较。通常用CMPSB 或 CMPSW。CMPSB 指令助记符串比较。将DS段 SI 指出的字节数据减去ES段 DI指出的字节数据(不保存结果),然
14、后根据相减结果设置标志位(两个数据相等,则 ZF1)。 并由方向标志 DF修改 SI 和 DI 中的地址,即当DF 0时,地址都加 1; 当 DF 1 时, 地址都减 1 。CMPSW 指令助记符串比较。将DS段 SI 指出的字数据减去ES段 DI 指出的字数据(不保存结果),然后根据相减结果设置标志位(两个数据相等,则 ZF1)。 并由方向标志 DF修改 SI 和 DI 中的地址,即当DF 0 时,地址都加 2; 当 DF 1 时, 地址都减 2 。COMMON伪指令段定义 (组合类型) 。该段与其它模块中所有也说明为COMMON的同名, 同 类别 段共享相同的存储区域, 即这些段的起始地址
15、都相同,共享的公共存储区域的长度是各模块同名段中最大的长度。使用 COMMON方式可以使不同模块中的不同变量或标号作用于相同的存储单元。CS Code Segment ,代码段寄存器,存放当前运行的代码段起始地址(高16名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 位)。代码段存放当前正在运行的程序。CWD 指令助记符字转换为双字。把AX中字节的符号扩展到DX中,若(AX )的最高有效位为 0 ,则( DX )0000;若(
16、 AX )的最高有效位为1,则(DX)0FFFFH 。CX Count, 通用寄存器。在循环和串处理指令中用作隐含的计数器。其中CH是高 8 位,CL是低 8 位。DAA 指令助记符加法的十进制调整(压缩的BCD 码)。 无操作数,调整 的加法结果在 AL中。调整方法是,如果AL的低 4 位大于 9 或 AF1 ,则加 6 到 AL并置 AF 1 ;如果 AL的高 4 位大于 9 或 CF 1 ,则加 60H 到 AL,并 置 CF 1 。DAS 指令助记符减法的十进制调整(压缩的BCD 码)。 调整方法是,若 AF 1 或 AL的低 4 位为 AF,则(AL)减 06H ,且 AF置 1 ;
17、若 CF 1 或AL的高 4 位为 AF,则( AL)减 60H ,且 CF置 1。DB 伪指令定义字节。其后的每个操作数占用一个字节。若是字符串,必须用引号 括起来,字符串不能超过 255 个字符,字符串自左至右以字符的 ASCII 码按地址递增的顺序依次存放。DD 伪指令定义双字。其后的每个操作数占用二个字(低字在前)。 DD还可以把其后的变量或标号的偏移地址和所在段首址存入存储器内指定的双字单元 ( 即 DD前面的变量 )中, 第一个字中存放DD后的变量的偏移地址,第二个字中存放该变量所在段的段首址。DEC 指令助记符减1 。操作数可以是寄存器或存储器单元,但不能是段 寄存器或立即数。D
18、FDirection Flag,方向标志 , 在标志寄存器的第 10 字节,在串处理指令中控制处理信息的方向。 DF为 1 时是反向, 每次操作后使 SI 和 DI 减量( 这样就使串处理从高地址向低地址方向处理) ;当 DF为 0 时是正向,使 SI 和 DI增量。DIDestination Index,目的变址寄存器。与ES联用,用来确定数据段中某一存储单元的偏移地址。在串处理指令中,DI 指出目的操作数的地址,隐含段为当前的附加段。DIV 指令助记符无符号数除法。对于字节操作, 16 位被除数(若被除数为 8 位,需用符号扩展的方法,即用 CBW 指令扩展到 16 位)放在 AX中, 8
19、 位除数为源操作数,相除结果,8 位商在 AL中,而 8 位余数在 AH中。对于字操作, 32 位被除数(若被除数为16 位,用 CWD 指令扩展到 32名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 位)放在 DX和 AX中,16 位除数为源操作数,相除结果,字(16位)商在 AX中 ,字余数在 DX中。源操作数不能是立即操作数,指令执行后,源操作数的值不变。如果商超过目标寄存器能存放的最大数值时,系统产生0 类中断。被除数
20、若需要转换为双精度值时,一定不能用符号扩展,而只能将高16 位送 0(MOV DX,0)DQ 伪指令定义四字。其后的每个操作数占用四个字。DS Data Segment, 数据段寄存器。存放数据段的起始地址(高16 位)。数据段存放当前运行程序所用的数据,如果程序中使用了串处理指令,则其源操作数也存放在数据段中。DT 伪指令定义十字节。其后的每个操作数占用十个字节。DUP 复制操作符。 DUP 前面的常量或表达式的值(正整数)指明DUP 后面的括号中的操作数之重复次数。DW 伪指令定义字。其后的每个操作数占用一个字(低字节在前,高字节在后)。 DW 可以给两个字符组成的字符串(用 括起来)分配
21、两个字节的存储单元(前一个字符在高字节)。DW 还可以把其后的变量或标号的偏移地址存入存储器的指定单元(即DW 前的变量)。DX Data, 通用寄存器。在作双字长运算时,把DX和 AX组合在一起存放一个双字数, DX用来存放高位字。此外,对某些I/O 操作, DX可用来存放 I/O的端口地址。其中DH是高 8 位,DL是低 8 位。EA 教材符号 -某一存储单元的偏移地址, 即该单元到它所在段首址的字节距离。ELSE 伪指令条件。条件不满足时汇编ELSE至 ENDIF之间的程序块。END 伪指令程序模块结束。主程序模块结束,END 后要接标号 ( 存储器地址),指出程序开始执行的地址。子程序
22、不用。ENDIF 伪指令条件(结尾)。ENDM宏指令宏定义(结尾)。重复块(结尾)。ENDP 伪指令过程(子程序)定义(结尾)。ENDS 伪指令段定义或结构定义(结尾)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - ES Extra Segment , 附加段寄存器。 用于存放附加段的起始地址 (高 16 位) 。附加段是一个辅助的数据区,也是串处理指令的目的操作数据存放区。ESC 指令助记符交权给外部协处理器。是在大模式下
23、使用的一条指令,它可以使外部协处理器从 8086/8088 指令流中获得一个操作码和一个操作数,并使用 8086/8088 的寻址方式。指令后的操作码是一个 6 位的立即数,其中 3 位用来指明哪一个协处理器工作,另外 3 位指明这个处理器执行什么指令。随后的源操作数若是寄存器,则8086/8088 直接将其内容放置在数据总线上;如果这个源操作数是存储变量,则8086/8088 从存储器中取出操作数并放到数据总线上,从而使外部协处理器可以获取这个操作数,对它进行运算。EQ 关系运算符相等。若满足条件,输出结果为全1 (所有的位),否则为全 0 。EQU 等价伪指令。 格式为 符号名 EQU 表
24、达式 . EQU 可以把它前面的符号定义为一个常量或一个能求出常数值的表达式,或定义为别的符号名,甚至定义为一条可执行的命令。不得重复定义。例一, 新变量名 EQU THIS DWORD,该语句将紧跟其后的变量重新定义为双字类,以新变量名命名。数据存储区首址不变。例二, 新变量名 EQU WORD PTR 旧变量名 ,该语句将旧变量重新定义为字类型,以新变量名命名。数据存储区首址不变。EVEN 伪指令。它使此语句后面的程序或数据块的起始地址为偶数。EXTRN 伪指令定义外部符号。格式是 EXTRN 符号名:类型。表示本模块中需要引用但却是在其他模块中定义说明为PUBLIC的那些符号 (符号常量
25、、变量、标号以及过程名)。符号类型必须与他们在其他模块定义时的符号类型保持一致。FLAGS 标志寄存器(即PSW )。GE 关系运算符大于等于。 若满足条件,输出结果为全 1 (所有的位),否则为全 0 。GROUP 伪指令分组。把模块中若干不同名的段集合成一个组,并赋予一个组名,使它们都装在一个物理段中(64KB )。可以得到较紧凑的代码,组内各段间的跳转都可以看作是段内跳转。格式是 组名 GROUP 段名 1,段名 2,,GT 关系运算符大于。若满足条件,输出结果为全1 (所有的位),否则为全 0 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年指令大全 2022 指令 大全
限制150内