《2022年2022年汇编语言基础--汇编指令 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言基础--汇编指令 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微处理器指令系统概述:一台计算机所能识别和执行的全部指令,称为该机器的指令系统,又称指令集。一般指令分为: “告诉计算机干什么”的指令操作助记符,“指令操作对象”即操作数。寻址方式概述:指定操作数或操作数存放位置的方法称为寻址方式。8086 的寻址方式有三类:立即寻址、寄存器寻址和存储器寻址;其中存储器寻址又分为 直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址五种。立即寻址: 操作数直接写在指令中的寻址方式,因为这种操作数称为立即数,所以这种寻址方式也称为立即数寻址方式。立即数可以使8 位; 16 位; 32 位;例如: MOV AX,6789H ADD AX,1
2、234H 寄存器寻址: 指令所要的操作数事先已存储在某寄存器中,或把目标操作数存入寄存器中,或者源操作数和目标操作数都是寄存器。例如: MOV AX,BX MOV AX,6789H( 源操作数是立即数寻址,目的操作数是寄存器寻址 ) 存储器寻址:在存储器中查找操作数。1直接寻址方式:指令所要的操作数存放在内存中,在指令中直接给出操作数的段地址和有效地址,从而使8086 的 BIU 部件能够利用地址加法器得到实际物理地址。例如: MOV AX,DS:2000H (mov 默认DS 为存放数据的段,所以这个指令等价于MOV AX,2000H )MOV AX,ES:2000H 2寄存器间接寻址方式:
3、操作数在存储器中,操作数的有效地址用SI,DI,BX,BP 4 个集训期之一来指定。若不使用段前缀,则规定若有效地址用SI,DI,BX 等之一来指定,则默认的段寄存器是DS,若有效地址用BP 来指定,则其默认的段寄存器位SS。例如: MOV BX,DI 3寄存器相对寻址方式:操作数的有效地址是一个基址寄存器(BX,BP )或变址寄存器( SI、DI)的内容和指令中的8/16 位偏移量之和。例如: MOV BX,SI+100H 4基址加变址寻址方式:操作数有效地址是一个基址寄存器(BX,BP )和一个变址寄存器( SI,DI)的内容之和。 (不要混淆基址寄存器和变址寄存器)例如: MOV BX,
4、BX,DI 5相对基址加变址寻址方式:操作数有效地址是一个基址寄存器(BX 、 BP)的值、一个变址寄存器(SI、DI )的值和指令中的8/16 位偏移量之和。例如:MOV AX, BX+DI+1234H 32 位地址的寻址方式在用 16 位寄存器来访问存储单元时, 只能使用基地址寄存器 (BX和 BP )和变址寄存器( SI 和 DI)来作为地址偏移量的一部分,但在32 位寄存器寻址时,不存在上述限制, 所有 32位寄存器(EAX 、EBX 、ECX 、EDX 、ESI、EDI、EBP 、ESP )都可以是地址偏移量的一个组成部分。名师资料总结 - - -精品资料欢迎下载 - - - - -
5、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 8086 指令概述:指令系统确定了CPU 所能完成的功能,是用汇编语言进行程序设计的最基本部分。分类:数据传送指令, 标志位操作指令,算术运算指令, 逻辑运算指令, 移位操作指令,比较运算指令,循环指令,转移指令,条件设置字节指令,字符串操作指令,ASCII-BCD码运算调整指令,处理器指令。基本格式:指令助记符操作数 1,操作数 2,操作数 3 (指令助记符体现该指令的功能,它对应一条二进制编码的机器指令)。数据传送指令:1MOV :传
6、送指令,这是使用最频繁的指令,它相对于高级语言的赋值语句。格式: MOV Reg/Mem,Reg/Mem/Imm (Reg-Register 寄存器, Mem-Memory 存储器, Imm-Immediate 立即数)使用规定: 1 两个操作数的数据类型要相同;2 两个操作数不能同时为段寄存器;3 代码段寄存器CS 不能为目的操作数,但可作为源操作数;4立即数不能直接传给段寄存器;5立即数不能作为目的操作数;6指令指针IP,不能作为MOV 指令的操作数;7两个操作数不能同时为存储单元。2XCHG :交换指令,是两个寄存器之间,寄存器和内存变量之间进行数据交换的指令,两个操作数的数据类型要相同
7、。格式: XCHG Reg/Mem,Reg/Mem 3LEA :取有效地址指令,是把一个内存变量的有效地址送给指定的寄存器。格式: LEA Reg,Mem 4LDS/LES/LFS/LGS/LSS :装载段寄存器指令,把内存中地址的“低字”传送给指令中指定的 16 位寄存器,把随后的“高字”传给相应的寄存器(DS、ES、FS、GS、SS) ;格式: LDS/LES/LFS/LGS/LSS Reg,Mem 5PUSH/POP:堆栈操作指令,堆栈是一个重要的数据结构,具有“先进后出”的特点,通常用来保存程序的返回地址。PUSH:进栈指令;格式: PUSH Reg/Mem POP:出栈指令格式: P
8、OP Reg/Mem 6标志寄存器传送指令ALAHF :标志送 AH 指令, FLAGS 的低 8 位送 AH 。格式: LAHF BSAHF:AH 送标志寄存器指令,AH 值送 FLAGS 的低 8 位格式: SAHF CPUSHF/PUSHFD :标志寄存器进栈指令,把16/32 位标志寄存器进栈格式: SAHF DPOPF/POPFD:标志寄存器出栈指令,把栈顶的16/32 位数据出栈给标志寄存器。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - -
9、 - - - - - - 7XLAT :转换指令, 把给出的指令中明确给出的内存地址或默认的BX 值作为内存字节数组首地址、下标为AL 的数组元素的值传送给AL 。这个指令可以给出一个内存地址作为操作数,也可以没有形式上的操作数,但有两个隐含操作数 BX 和 AL 。格式: XLAT Mem 或 XLAT 8IN、 OUT:I/.O 指令,访问io 端口的指令。A输入指令IN:从端口中读入一个字节或字,并保存在寄存器AL 或 AX 中。格式: IN AL/AX,Port/DX B输出指令OUT:把寄存器AL 或 AX 的内容输出到指定端口。格式: OUT Port/DX ,AL/AX 加法指令
10、1ADD :加法指令,把源操作数的值加到目的操作数中。格式: ADD Reg/Mem,Reg/Mem 受影响的标志位:AF、CF、OF、PF、SF、ZF 2ADC :带进位的加指令,把源操作数和进位标志位CF 的值一起加到目的操作数中。格式: ADC Reg/Mem,Reg/Mem/Imm 受影响的标志位:AF、CF、OF、PF、SF、ZF 3INC :加一指令,把源操作数的值加1 格式: INC Reg/Mem 受影响的标志位:AF、OF、PF、SF、ZF,不影响CF 减法指令1SUB:减法指令,从目的操作数中减去源操作数格式: SUB Reg/Mem,Reg/Mem/Imm 受影响标志位:
11、AF、 CF、OF、PF、SF、ZF 2SBB:带借位的减,把源操作数和标志位CF 的值从目的操作数中一起减去格式: SBB Reg/Mem,Reg/Mem/Imm 受影响的标志位:AF、CF、OF、PF、SF、ZF 3DEC:减 1 指令,把源操作数减去1 格式: DEC Reg/Mem 受影响的标志位:AF、OF、PF、SF、ZF,不影响CF 4NEG:求补指令,改变操作数的正负号格式: NEG Reg/Mem 受影响的标志位:AF、CF、OF、PF、SF、ZF 5CMP:比较指令,用第二个操作数减去第一个操作数,根据差设置有关标志位。影响 ZF 标记位,比较的两者相同则ZF 为 1。名师
12、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 乘法指令隐含的操作数是被乘数,乘数在指令中显示的写出来。CPU 会根据乘数是8位、16 位、还是 32 位操作数,来自动选用被乘数:AL 、AX 或 EAX 1MUL :无符号数乘法指令,把显示操作数和隐含操作数(都作为无符号数)想乘。格式: MUL Reg/Mem 受影响的标志位:CF 和 OF(AF、PF、SF和 ZF 无定义);2IMUL :有符号数乘法指令,具有符号运算,其余
13、和MUL 相同格式: IMUL Reg/Mem 除法指令隐含的操作数是被除数,除数在指令中显示的写出来.CPU 会根据除数是8 位、 16位还是 32 位,来自动选用被除数(AX 、DX:AX ,还是 EDX :EAX ) ;功能: 用显式的操作数去除隐含操作数,可得到商和余数。当商超过数据范围或除数为 0,系统自动产生0 中断。1 DIV :无符号数除法指令,用显式操作数去除隐含操作数(都作为无符号数)。指令对标志位的影响无定义。格式: DIV Reg/Mem 2 IDIV :有符号数除法指令,用显式操作数去除隐含操作数(都作为有符号数)。格式: IDIV Reg/Mem 数据类型转换指令在
14、有符号除法时, 把短位数的被除数转换为位数更长的数据类型,以适应除法运算的要求。1 CBW :字节转换为字指令,用AL 的符号位去填充AH ,即:当AL 为正数,则 AH=0 ,否则, AH=0FFH 。指令不影响任何标志位。格式: CBW 2CWD :字转换为双字指令,该指令的隐含操作数为AX 、DX ,用 AX 的符号位去填充 DX 。指令不影响任何标志位。格式: CWD 逻辑运算指令主要有:逻辑与(AND ) 、逻辑或( OR) 、逻辑非( NOT) 、和异或指令(XOR )等1 AND :逻辑与指令,将源操作数的每位二进制与目的操作数中的相应二进制按位进行逻辑“与操作” ,操作数存入目
15、的操作数中。格式: AND Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF( 0) ,PF,SF, ZF(AF 无定义)2OR:逻辑或指令, 把源操作数的每位二进制与目的操作数中的相应二进制按位进行逻辑“或操作” ,操作数存入目的操作数中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 格式: OR Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF( 0) ,PF,SF,
16、ZF(AF 无定义)3 NOT :逻辑非指令,把源操作数的每位取反格式: NOT Reg/Mem 指令不影响任何标志位。4 XOR:逻辑异或指令,把源操作数的每位二进制与目的操作数中的相应二进制按位进行逻辑“异或操作”,操作数存入目的操作数中。格式: XOR Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF(0) ,PF, SF 和 ZF 5 TEST:检测指令。其实是一个不保留结果,只影响标志位的逻辑“与”指令。格式: TEST Reg/Mem,Reg/Mem/Imm 受影响的标志位:CF(0) ,OF(0) ,PF, SF,ZF 移位指令包括:算术移位、逻辑移位、
17、循环移位、带进位移位和双精度移位。1 SAL:算术左移,向左逐位移动源操作数指定(CL/Imm )的次数,移位后,最低位用 0 补充,最高位移入CF。格式: SAL Reg/Mem,CL/Imm 2 SAR:算术右移,向右逐位移动源操作数指定(CL/Imm )的次数,移动后,最高位用符号位补充,最低位移入CF。格式: SAR Reg/Mem,CL/Imm 3 SHL:逻辑左移,在功能上和SAL 完全相同格式: SHL Reg/Mem,CL/Imm 4 SHR:逻辑右移,向右逐位移动源操作数指定(CL/Imm )的次数,移动后,最高位用 0 补充,最低位移入CF。5 ROL :循环左移,对指定的
18、寄存器或存储器操作数左移循环移动源操作数指定(CL/Imm )的次数,移动后,把最高位同时移入CF 和操作数最低位。格式: ROL Reg/Mem,CL/Imm 6 ROR:循环右移,对指定的寄存器或存储器操作数右移循环移动源操作数指定(CL/Imm )的次数,移动后,把最低位同时移入CF 和操作数最高位。格式: ROR Reg/Mem,Cl/Imm 7RCL:带进位的循环左移,对指定的寄存器或存储器操作数,连同进位标志CF左循环移动源操作数指定(CL/Imm )的次数,移动后,把操作数的最高位移入CF,而把 CF 原有内容移入源操作数的最高位。格式: RCL Reg/Mem,CL/Imm 8
19、RCR:带进位的循环右移,对指定的寄存器或存储器操作数,连同进位标志CF右循环移动源操作数(CL/Imm )的次数,移动后,把操作数的最高低位移入CF,而CF 中原有内容移入操作数的最高位。格式: RCR Reg/Mem,CL/Imm 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 循环指令循环指令的循环次数都保存在计数器CX 中,有的循环指令还可以由标志位ZF 来决定是否结束循环;1循环指令1LOOP:循环指令。格式: LO
20、OP 标号2LOOPZ/LOOPE :相等或为零循环指令。格式: LOOPZ/LOOPE 标号3LOOPNE/LOOPNZ :不等或不为零循环指令格式: LOOPNE/LOOPNZ 标号标号是在程序中的某个标记,表示符合条件时程序跳到标记处继续执行。2循环计数器为零转指令一般用于循环的开始,先判断 CX 是否为 0,在进入循环体执行,可以与循环指令配合,构成“当”型循环。格式: JCXZ 标号若 cx 为 0,则执行标记处程序转移指令1JMP:无条件转移指令,是从程序当前执行的地方无条件转移到另一个地方执行。这种转移可以是短转移【偏移量-128 127】 、近转移【偏移量-32K 32K】 、
21、远转移【在不同代码之间转移】格式: JMP 标号 /Reg/Mem 2JXX 条件转移指令,它根据标志寄存器中一个(或多个)标志位来决定是否需要转移。格式: JXX 标号 /Reg/Mem 注意:条件转移指令的操作数必须是一个短标号,也就是所有条件转移指令都必须是2字节指令。条件转移指令对状态标记位没有影响。条件转移指令有:(单标志位) JE/JZ(等于、零 ),JNE/JNZ (不等于 /不为零) ,JS(负 -符号位位1),JNS(正 -符号位位0),JP/JPE(偶) ,JNP/JPO(奇),JO(溢出), JNO(不溢出),JC(有进位/有进位),JNC(无进位 /无借位)(无符号数)
22、 JA/JNBE (高于、不低于也不等于) ,JAE/JNB(高于或等于不等于),JB/JNAE(低于、不高于也不等于),JBE/JNA (低于或等于、不高于)( 带 符 号 数 ) JG/JNLE( 大 于 、 不 小 于 也 不 等 于 ),JGE/JNL( 大 于 或 等 于 / 不 下雨),JL/JNGE( 小于、不大于也不等于),JLE/JNG( 小于或等于、不大于) 字符串操作指令指令的实质就是对一篇连续存储单元进行处理,存储单元的地址由隐含指针DS:SI 或ES:DI 来指定。指令可对内存单元按字节、字或双字记性处理。1LODS :取字符串数据指令,从由指针DS:SI 所指向的内
23、存单元开始,取一个字节、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - 字或双字进入AL 、AX 或 EAX 中,并根据标志位DF 对寄存器SI 作相应增减。格式: LODS 地址表达式该指令不影响任何标志位2STOS:置字符串数据指令,把寄存器AL 、AX 或 EAX 中的值存于以指针ES:DI所指向内存单元为起始的一篇内存单元里,并根据标志位DF 对寄存器DI 作相应增减。格式: STOS 地址表达式该指令不影响任何标志位
24、。3MOVS :字符串传送指针,把指针DS:SI 所指向的字节、字或双字传送给指针ES:DI 所指向内存单元,并根据标志位DF 对寄存器 DI 和 SI 作相应的增减。格式: MOVS 地址表达式1,地址表达式2 该指针不影响任何标志位。4CMPS:把指针 DS:SI 和 ES:EI 所指向的自己、字或双字的值相减,并用所得到的差来设置有关的标志位,同时变址寄存器SI 和 DI 也将根据标志位DF 的值作相应增减。格式: CMPS 地址表达式1,地址表达式2 受影响的标志位:与CMP 相同,会影响AF、CF、OF、PF、SF、ZF 5SCAS:字符串扫描指令,用指针ES:DI 所指向字节、字或
25、双字的值与相应的AL 、AX 的值相减,用所得到的差来设置有关标志位,同时变址寄存器DI 还将根据标志位DF的值进行增减。格式: SCAS 地址表达式1 受影响的标志位:AF、CF、OF、 PF、SF、ZF 6字符串操作重复前缀;之前的字符串操作指令都是针对单一的字符进行,为了对一个字符串重复使用操作指令,指令系统提供了一组重复前缀指令。A重复前缀 REP:重复其后的字符串操作指令,重复的次数由事先存放在CX 中的值的变化来决定。格式: REP LODS/LODSB/LODSW B条件重复前缀:和之前的REP 功能类似,区别在与其重复次数不仅由CX 决定,还会由标志位ZF 来决定。根据ZF 所
26、起的作用又分为:相等重复前缀指令REPE/REPZ 和不等重复前缀指令REPE/REPZ。相等前缀指令格式: REPE/REPZ SCAS/SCASB/SCASW/SCASD REPE/REPZ CMPS/CMPSB/SMPSW/CMPSD 不重复前缀指令格式: REPNE/REPNZ SCAS/SCASB/SCASW/SCASD REPNE/REPNZ CMPS/CMPSB/CMPSW/CMPSD ASCII 和 BCD 码调整指令为了方便十进制数进行算术运算,指令系统专门提供一组十进制数调整指令。1AAA :加法的ASCII 码调整指令2AAS :减法的 ASCII 码调整指令3AAM :
27、乘法的 ASCII 码调整指令4AAD :除法的 ASCII 码调整指令5DAA :加法的十进制数调整指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - 6DAS :减法的十进制数调整指令处理器指令1标志位操作指令是一组对标志位置位、复位、 保存和恢复等操作的指令,指令都没有形式上的操作数。A进位标志CF 操作数指令清进位指令: CLC ;CF-0 置进位指令: STC ;CF-1 进位取反指令:CMC ;CF-not CF
28、B方向控制位DF 操作指令清方向指令: CLD ;DF-0 置方向指令: STD ;DF-1 C中断允许控制位IF 操作指令清中断允许位指令:CLI ; IF-0 该指令的功能是不允许可屏蔽的的外部中断来中断其后程序的执行。置中断允许位指令:STI ; IF-1 该指令的功能是恢复可屏蔽的外部中断相应功能。2NOP:空操作指令,主要起到延迟下一条指令的运行。延迟指令运行也可以用其他指令产生延时,如: “XCHG AX,AX ”格式: NOP 不影响任何标志位3 WAIT : 等待指令, 使 CPU 处于等待状态, 等待协处理器的运算, CPU 不断检测TEST引脚状态,知道协处理器完成运算,T
29、EST 引脚变为低为止。格式: WAIT 指令不影响任何标志位4HLT:暂停指令,使CPU 处于暂停工作状态,等到外中断的到来,此时CS:IP 只想下一条要执行的指令。发生中断时,CPU 把 CS 和 IP 压栈,并转入中断处理程序,在中断处理程序执行完后,中断返回弹出IP 和 CS,CPU 自动退出暂停状态,执行HLT 后面的指令。5LOCK :封锁数据指令,这是一个前缀指令,其后跟一个具体的操作指令。LCOK指令可以保证在其后执行过程中,禁止协处理器修改数据总线上的数据,起到独占总线的作用。多任务时,可以用它来保证独占内存。只有一下指令可以使用LOCK 前缀: XCHG 、ADD 、INC
30、 、SUB 、SBB、DEC、NEC 、OR、AND 、 XOR、NOT 、BT、BTS、 BTR 、BTC 。指令不影响任何标志位。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 80286 及以上型号CPU 扩充的指令80286 及以上型号的CPU 所能够执行的指令,在 8086 指令系统的基础上有了很大的扩充。主要表现在三个方面:数据类型的扩充;原有功能的扩充;完全新的指令1传送并扩展指令把位数短的源操作数,传送给位数长
31、的目的操作数,并且扩展填充满目的操作数。A MOVSX :传送并扩展符号位指令,把源操作数的内容送到目的操作数,并且用符号位扩展填充满目的操作数。格式: MOVSX Reg/Mem,Reg/Mem/Imm B MOVZX :传送并扩展零指令,把源操作数的内容送到目的操作数,并用零填充目的操作数空出的高位。格式: MOVZX Reg/Mem,Reg/Mem/Imm 2堆栈指令在 80286 及以上的系统中可以对双字类型的数据进行操作,并增加了一些实用的指令。APUSH:进栈指令,可以单字进栈,也可以双字进栈,还可以是立即数进栈。根据进栈操作数的位数修改堆栈指针ESP。格式: PUSH Imm B
32、PUSHA :16 位通用寄存器进栈指令,依次把寄存器AX 、CX 、BX 、SP、BP、SI、DI 等压栈。格式: PUSHA CPUSHAD :32 位通用寄存器进栈指令,把寄存器EAX 、ECX 、EDX 、 EBX、ESP、EBP、ESI、EDI 等压栈。格式: PUSHAD DPOP:出栈指令,根据操作数,弹出一个字或双字,对双字出栈。格式: POP Reg/Mem EPOPA:16 位通用寄存器出栈指令,一次吧寄存器DI 、SI、BP、SP、DX 、CX 、AX等弹出栈。与PUSHA 对称。格式: POPA FPOPAD:32 位通用寄存器出栈指令,依次把寄存器EDI、ESI、EB
33、P、 ESP、EBX、EDX 、ECX、EAX 等弹出栈,与PUSHAD 对称。格式: POPAD 3数据类型转换指令(符号扩展指令)ACWDE :字转换为双字指令,指令隐含操作数AX,其功能是用AX 的符号位填充EAX 的高字位。格式: CWDE 该指令不影响标志位B CDQ: 双字转换为4 字指令,隐含操作数EAX 和 EDX , 用 EAX 的符号位填充EDX 。格式: CDQ 指令不影响标志位4移位指令此组指令有:双精度左移SHLD 和双精度右移SHRD,都具有三个操作数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
34、名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - SHLD/SHRD Reg/Mem,Reg,CL/Imm 执行 SHLD 指令时,第一个操作数向左移n 位,其“空出”的低位由第二个操作数的高 n 位来填补,但第二个操作数自己不移动、不改变。执行 SHRD 指令时,第一个操作数向右移n 位,其“空出”的高位由第二个操作数的低 n 位来填补,但第二个操作数自己不移动、不改变。受影响的标志位:CF、OF、PF、SF、ZF 5位操作指令A位扫描指令格式: BSF/BSR Reg,Reg/Mem 指令在第二个操作数中寻找第一个“1”的位置。如果找到
35、,则该“1”的位置保存在第一个操作数中,并置标志位ZF 为 1,否则,置标志位ZF 为 0。受影响的标志位:ZF B位检测指令格式: BT/BTC/BTR/BTS Reg/Mem,Reg/Mem 指令把第一个操作数中某一位的值传送给标志位CF,具体的哪一位由指令的第二个操作数来确定。受影响的标志位:CF 6CMPXCHG :比较交换指令,比较运算指令是先进行比较,再根据比较的结果决定是进行操作数的交换操作。当两个操作数相等时,置标志位ZF 为 1;否则,把第一个操作数的值赋给第二个操作数,并置标志位ZF 为 0。A8 位 /16 位 /32 位交换指令格式: CMPXCHG Reg/Mem,A
36、L/AX/EAX 受影响的标志位:AF、CF、OF、 PF、SF、ZF B64 位比较交换指令该指令只有一个操作数,第二个操作数是隐含的EDX 格式: CMPXCHG*B Reg/Mem, 只影响 ZF 标志位。7SET:条件字节设置指令,条件字节设置指令时80386 及其以后CPU 所具有的一组指令。 在测试条件方面条件转移是一致的,但在功能方面,他们不是转移,而是根据测试条件的值来设置其字节操作数的内容位1 或 0。格式: SETxx Reg/Mem 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -