还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
汇编指令简表按字母顺序8086/8088说明未组合的十进制加法调整指令AAA ASCII
1.组合的十进制数和未组合的十进制数在计算中,十进制数可用4位二进制数编码,称为BCD码Adgust forAddition格式AAA当一个节8位中存放一位BCD码,且放在字节的低4位,高4位时AAA功能对两个组合的十进制数相加运算存在AL称为未组合的BCD码中的结果进行调整,产生一个未组合的十进制
2.AAA的调整操作数放在AX中若AL and0FH9或AF=1,则调整如下AL-AL+6,AH-AH+1,AF=1,CF-AF,AL-AL andOFH说明未组合十进制数除法调整指令AAD ASCII
1.AAD指令是在执行除法DIV之前使用的,以便得到二进制结果存Adjust forDivision格式AAD于AL中,然后除以OPRD,得到的商在AL中,余数在AH中AAD功能在除法指令前对AX中的两个未组合十进
2.示例MOV BL,5制数进行调整,以便能用DIV指令实现两个未MOV AX,0308H组合的十进制数的除法运算,其结果为未组合的AAD;AL-1EH+08H=26H,AH—0十进制数,商在AL中和余数在AH中DIV BL;商二07HrAL,余数=03HrAH.说明
1.实际上是两个未组合的十进制数字节相乘,一个〜9的数与另一未组合十进制数乘法调整指令AAMASCII个0〜9的数相乘其积最大为81为了得到正确的结果,应进行如下Adjust MULtiply调整格式AAMAAM乘积AH*-AL/10功能对两个未组合的十进制数相乘后存于AXAL-ALMOD10中的结果进行调整,产生一个未组合的十进制数
2.本指令应跟在MUL指令后使用,乘积的两位十进制数结果的高位存在AL中放在AH中,低位放在AL中AH内容是MUL指令的结果被10除的商,BPAL/10,而最后的AL内容是乘积被10整除的余数个位数未组合十进制减法调整指令AASASCII说明Adjust for Subtraction
1.本指令影响标志位CF及AF
2.调整操作AAS格式AAS若AL and0FH9或AF=1,功能对两个未组合十进制数相减后存于AL中贝|JAL—AL-6,AH—AH-1,CF—AF,AL-AL andOFH,否则的结果进行调整,调整后产生一个未组合的十进AL—AL andOFH制数且仍存于AL中说明
1.OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数OPRD2为立即数,也可以是任意一个通用寄存器操作数立即数只带进位力口法指令ADC AdditionCarry能用于源操作数ADC格式ADC OPRD1,OPRD
22.OPRD1和OPRD2均为寄存器操作数是允许的,一个为寄存器操作功能OPRD1-OPRD1+OPRD2+CF数而另一个为存储器操作数也是允许的,但不允许两个都是存储器操作数
3.加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响,以上标志也称为结果标志
4.该指令对标志位的影响同ADD指令说明
1.OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用加法指令ADD Addition格式ADDADD寄存器,还可以是任意一个存储器操作数OPRD1,OPRD2功能两数相加OPRD2为立即数,也可以是任意一个通用寄存器操作数立即数只能用于源操作数
1.本指令组只影响标志CF、OF、OF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=1格式ROL OPRD1,COUNT;不含进位标志
2.由于是循环移位,所以对字节移位8次;对字移位16次,就可恢位CF在循环中的左循环移位指令复为原操作数由于带CF的循环移位,可以将CF的内容移入,所ROROPRD1,COUNT;不含进位标志位CF在循环以可以利用它实现多字节的循环中的右循环移位指令RCL OPRD1,COUNT;带进位的左循环移位指令RCR OPRD1,COUNT;带进位的右循环移位指令说明
1.本指令组只影响标志CF、OF、OF由移入CF的内容决定,OF取循环移位指令决于移位一次后符号位是否改变,如改变,则OF=1格式ROL OPRD1,COUNT;不含进位标志
2.由于是循环移位,所以对字节移位8次;对字移位16次,就可恢RCR位CF在循环中的左循环移位指令复为原操作数由于带CF的循环移位,可以将CF的内容移入,所ROROPRD1,COUNT;不含进位标志位CF在循环以可以利用它实现多字节的循环中的右循环移位指令注意以上程序中的指令SHR AL,CL如改为SAR AL,CL,虽然最高4RCL OPRD1,COUNT;带进位的左循环移位指令位可移入低4位,但最高位不为0,故应加入一条指令AND AL,0FHoRCR OPRDI,COUNT;带进位的右循环移位指令否则,若最高位不为时,将得到错误结果说明重复前缀的说明
1.REP与MOVS或STOS串操作指令相结合使用,完成一组字符的格式REP;CX/)重复执行字符串指令传送或建立一组相同数据的字符串REPZ/REPE;CX^O且ZF=1重复执行字符串指令
2.REPZ/REPE常用与CMPS串操作指令结合使用,可以完成两组字REP REPNZ/REPNE;CX/)且ZF=0重复执行字符串符串的比较指令
3.REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中功能在串操作指令前加上重复前缀,可以对字搜索一个关键字符串进行重复处理由于加上重复前缀后,对应
4.REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)的指令代码是不同的,所以指令的功能便具有重且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令复处理的功能,重复的次数存放在CX寄存器中重复前缀的说明说明格式REP;CX/0重复执行字符串指令
1.REPZ/REPE常与CMPS串操作指令结合使用,可以完成两组字符REPZ/REPE;CX^O且ZF=1重复执行字符串指串的比较令
2.REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中REPE REPNZ/REPNE;CX#0且ZF=0重复执行字符串搜索一个关键字指令
3.REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1)功能在串操作指令前加上重复前缀,可以对字且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令符串进行重复处理由于加上重复前缀后,对应
4.REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且的指令代码是不同的,所以指令便具有重复处理当关键字与串元素不相同(ZF=())时,继续重复执行串搜索指令的功能,重复的次数存放在CX寄存器中说明重复前缀的说明
1.REPZ/REPE常与CMPS串操作指令结合使用,可以完成两组字符格式REP;CX^O重复执行字符串指令串的比较REPZ/REPE;CX#)且ZF=1重复执行字符串指
2.REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中REPNE令搜索一个关键字REPNZ/REPNE;CX/0且ZF=0重复执行字符串
3.REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX-1)指令且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令
4.REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1)且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索指令续表重复前缀的说明说明REPNZ格式REP;CXR0重复执行字符串指令
1.REPZ/REPE常与CMPS串操作指令结合使用,可以完成两REPZ/REPE;CX翔且ZF=1重复执行字符串指令组字符串的比较REPNZ/REPNE;CX#0且ZF=0重复执行字符串
2.REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中搜索一个关键字指令
3.REPNZ/REPNE与CMPS指令结合使用,表示当串未结束CX=1且当对应串元素不相同ZF=0时,继续重复执行串比较指令
4.REPNZ/REPNE与SC AS指令结合使用,表示串未结束CX=1且当关键字与串元素不相同ZF=0时,继续重复执行串搜索指令重复前缀的说明说明格式REP;CXoO重复执行字符串指令REPZ/REPE;CX且ZF=1重复执行字符串指
1.REPZ/REPE常与CMPS串操作指令结合使用,可以完成两组字符串的比较令
2.REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符串中REPNZ/REPNE;CX0且ZF=0重复执行字符REPZ搜索一个关键字串指令
3.REPN27REPNE与CMPS指令结合使用,表不当串未结束CX-1且功能在串操作指令前加上重复前缀,可以对字当对应串元素不相同ZF=0时,继续重复执行串比较指令符串进行重复处理由于加上重复前缀后,对应的指令代码是不同的,所以指令便具有重复处理
4.REPNZ/REPNE与SCAS指令结合使用,表示串未结束CX=1且当的功能,重复的次数存放在CX寄存器关键字与串元素不相同ZF=0时,继续重复执行串搜索指令说明返回指令RET由于在过程定义时,已指明其近NEAR或远FAR的属性,所以RET格式RET指令根据段内调用与段间调用,执行不同的操作对段内调用返回时,RET功能当调用的过程结束后实现从过程返回至原由堆栈弹出一个字的返回地址的段内偏移量至IP调用程序的下一条指令,本指令不影响标志位对段外调用返回时,由堆栈弹出的第一个字为返回地址的段内偏移量,将其送入IP中,由堆栈弹出第二个字为返回地址的段基址,将其送入CS中说明循环移位指令
1.本指令组只影响标志CF、OF、OF由移入CF的内容决定,OF取格式ROL OPRD1,COUNT;不含进位标志决于移位一次后符号位是否改变,如改变,则OF二1ROL位CF在循环中的左循环移位指令
2.由于是循环移位,所以对字节移位8次;对字移位16次,就可恢ROROPRD1,COUNT;不含进位标志位CF在循环复为原操作数由于带CF的循环移位,可以将CF的内容移入,所中的右循环移位指令以可以利用它实现多字节的循环RCL OPRD1,COUNT;带进位的左循环移位指令RCR OPRD1,COUNT;带进位的右循环移位指令循环移位指令说明格式
1.本指令组只影响标志CF、OF、OF由移入CF的内容决定,OF取ROL OPRD1,COUNT;不含进位标志位CF在循ROR决于移位一次后符号位是否改变,如改变,则OF=1环中的左循环移位指令
2.由于循环移位,所以对字节移位8次;对字移位16次,可恢复为ROR OPRD1,COUNT;不含进位标志位CF在循原操作数环中的右循环移位指令RCL OPRD1,COUNT;带进位的左循环移位指令RCR OPRDI,COUNT;带进位的右循环移位指令标志传送指令SAHF说明本指令将用AH的内容改写FLAG标志寄存器中的SF、ZF、SAHF格式SAHFAF、PF和CF标志,从而改变原来的标志位功能将AH存至FLAG低8位算术左移指令SAL ShiftArithmetic Left格式SAL OPRD1,COUNT说明功能其中OPRD1,COUNT与指令SHL相同本
1.其中OPRD1为目的操作数,可以是通用寄存器或存储器操作数SAL指令与SHL的功能也完全相同,这是因为逻辑
2.COUNT代表移位的次数或位数移位一次,COUNT=1;移位多左移指令与算术左移指令所要完成的操作是一于1次时,COUNT=CL,CL中为移位的次数样的续表算术右移指令SAR说明SAR格式SAR OPRD1,COUNT
1.其中OPRD1为目的操作数,可以是通用寄存器或存储器操功能本指令通常用于对带符号数减半的运算作数中,因而在每次右移时,保持最高位(符号位)
2.COUNT代表移位的次数(或位数)移位一次,COUNT=1;移位不变,最低位右移至CF中多于1次时,COUNT=(CL),(CL)中为移位的次数说明示例SBB DX,CX带借位减去指令SBB(SuBtractionwithBonow)SBB AX,DATA1SBB格式SBBOPRDLOPRD2SBB BX,2000H功能是进行两个操作数的相减再减去CF进位SBB ALFA[BX+SI],SI标志位,即从OPRD1-OPRD1OPRD2CF,SBB BETAP[DL030AH其结果放在OPDR1中字符串搜索指令SCAS格式SCAS OPRD说明SCASB
1.其中OPRD为目的串符号地址SCASW
2.本指令影响标志AF、CF、OF、PF、SF、ZF该指令可查找字SCAS符串中的一个关键字,只需在本指令执行前,把关键字放在AL(字功能把AL(字节串)或AX(字串)的内容节)或AX(字串)中,用重复前缀可在整串中查找指令中不使用操与由DI寄存器寻址的目的串中的数据相减,结作数时,可用指令格式SCASB,SCASW,分别表示字节串或字串搜索果置标志位,但不改变任一操作数本指令身地址指针DI自动调整字符串搜索指令SCAS说明格式SCAS OPRD
1.其中OPRD为目的串符号地址SCASB
2.本指令影响标志AF、CF、OF、PF、SF、ZF该指令可查找字SCASWSCASB符串中的一个关键字,只需在本指令执行前,把关键字放在AL(字功能把AL(字节串)或AX(字串)的内容节)或AX(字串)中,用重复前缀可在整串中查找指令中不使用操与由DI寄存器寻址的目的串中的数据相减,结作数时,可用指令格式SCASB、SCASW,分别表示字节串或字串搜索果置标志位,但不改变任一操作数本身指令地址指针DI自动调整字符串搜索指令SCAS说明格式SCAS OPRD
1.其中OPRD为目的串符号地址SCASB
2.本指令影响标志AF、CF、OF、PF、SF、ZF该指令可查找字SCASWSCASW符串中的一个关键字,只需在本指令执行前,把关键字放在AL(字功能把AL(字节串)或AX(字串)的内容节)或AX(字串)中,用重复前缀可在整串中查找指令中不使用操与由DI寄存器寻址的目的串中的数据相减,结作数时,可用指令格式SCASB、SCASW,分别表示字节串或字串搜索果置标志位,但不改变任一操作数本身指令地址指针DI自动调整说明
1.其中OPRD1为目的操作数,可以是通用寄存器或存储器操作数
2.COUNT代表移位的次数(或位数)移位一次,COUNT”移位多逻辑左移指令SHL(Shift logicalleft)于1次时,COUNT=(CL),(CL)中为移位的次数格式SHL OPRD1,COUNT
3.例如SHL AL,1SHL功能对给定的目的操作数左移COUNT次,每SHL CX,1次移位时最高位移入标志位CF中,最低位补零SHL ALFA[DI]或者MOV CL,3SHL DX,CLSHL ALFA[DI],CL逻辑右移指令SHR说明格式SHR OPRD1,COUNT
1.其中OPRD1为目的操作数,可以是通用寄存器或存储器操作数SHR功能本指令实现由COUNT决定次数的逻辑右
2.COUNT代表移位的次数(或位数)移位一次,COUNTS1;移位移操作,每次移位时,最高位补(),最低位移多于1次时,COUNT=(CL),(CL)中为移位的次数至标志位CF中3,影响标志位OF,PF,SF,ZF,CFSTC处理器控制指令格式STC;说明处理器位标志置位指令功能CF=1续表处理器控制指令STD格式STD说明处理器位标志置位指令功能DF=1STI处理器控制指令格式STI;说明处理器位标志置位指令功能IF=1字符串存储指令STOS说明格式STOS OPRD
1.其中OPRD为目的串符号地址STOS功能把AL字节或AX字中的数据存储到
2.本指令不影响标志位当不使用操作数时,可用STOSB或STOSWD1为目的串地址指针所寻址的存储器单元中去分别表示字节串或字串的操作指针DI将根据DF的值进行自动调整减法指令SUB SUBtract说明格式SUB OPRD1,OPRD2示例SUB DX,CXSUB功能两个操作数的相减,即从OPRD1中SUB[BX+25],AX减去OPRD2,其结果放在OPDR1中SUB DI,ALFA[SI]测试指令TEST格式TEST OPRD1,OPRD2功能其中OPRD
1、OPRD2的含义同AND指令说明TEST与AND指令的关系,有点类似于CMP与SUB指令之TEST一样,也是对两个操作数进行按位的“与”运间的关系算,唯一不同之处是不将“与”的结果送目的操作数,即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位处理器等待指令WAIT格式WAITWAIT说明本指令不影响标志位功能本指令将使处理器检测TEST端,当TEST有效时,则退出等待状态执行下条指令,否则处理器处于等待状态,直到TEST有效说明数据交换指令XCHG
1.OPRD1及OPRD2可为通用寄存器或存储器,但是两个存储器之间格式:XCHGOPRDLOPRD2,其中的OPRD1为是不能用XCHG指令实现的XCHG目的操作数,OPRD2为源操作数
2.段寄存器内容不能用XCHG指令来交换功能将两个操作数相互交换位置,该指令把源
3.若要实现两个存储器操作数DATA1及DATA2的交换,可用指令操作数OPRD2与目的操作数OPRD1交换实现
4.本指令不影响状态标志位查表指令XLAT格式XLATTABLE,其中TABLE为一待查表格说明XLAT的首地址
1.在执行该指令前,应将TABLE先送至BX寄存器中,然后将待查功能把待查表格的一字节内容送到AL累加器字节与在表格中距表首地址位移量送AL,即AL一BX+AL中
2.本指令不影响状态标位,表格长度不超过256字节逻辑异或运算指令XOR说明格式XOR OPRD1,OPRD
21.其中OPRD
1、OPRD2的含义与AND指令相同,对标志位的影响功能实现两个操作数按位“异或”运算,结果XOR与AND指令相同送至目的操作数中
2.相异为真,相同为假OPRD1-OPRD1XOR OPRD
22.OPRD1和OPRD2均为寄存器操作数是允许的,一个为寄存器操作数而另一个为存储器操作数也是允许的,但不允许两个都是存储器操作数
3.加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响,以上标志也称为结果标志加法指令适用于无符号数或有符号数的加法运算说明逻辑与运算指令AND
1.目的操作数OPRD1为任一通用寄存器或存储器操作数,源操作数格式AND OPRD1,OPRD2AND OPRD2为立即数、任一通用寄存器或存储器操作数功能对两个操作数实现按位逻辑与运算,结果
2.示例AND ALQFH;AL—AL AND0FH送至目的操作数本指令可以进行字节或字的,注意两数相与,有一个数假,则值为假与,运算,OPRD1-OPRD1and0PRD2说明
1.其中OPRD为过程的目的地址.过程调用指令CALL格式CALL OPRD功能CALL
2.过程调用可分为段内调用和段间调用两种,寻址方式也可以分过程调用指令为直接寻址和间接寻址两种
3.本指令不影响标志位说明字节扩展指令CBW ConvertByte toWord
1.两字节和除时,先使用本指令形成一个双字节长的被除数格式CBW
2.本指令不影响标志位CBW功能将字节扩展为字,即把AL寄存器的符号
3.示例MOV AL,25位扩展到AH中CBWIDIV BYTEPTR DATA1处理器控制指令说明CLC格式CLC处理器标志位操作指令功能CF=0处理器控制指令说明CLD格式CLD处理器标志位操作指令功能DF=0处理器控制指令说明CLI格式CLI处理器标志位操作指令功能IF=0处理器控制指令——标志位操作指令格式说明CMC CMC;处理器标志位操作指令功能CF=Not CF进位标志求反说明
1.OPRD1为任意通用寄存器或存储器操作数OPRD2为任意通用寄比效指令CMF CoMPare存器或存储器操作数,立即数也可用做源操作数OPRD
22.对标志位的格式CMP0PRD1QPRD2CMP影响同SUB指令类似,唯一区别是不将OPRD1OPRD2的结果送回功能对两数进行相减,进行比较.OPRD1,而只是比较
3.在8088/8086指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令字符串比较指令格式CMPS OPRD1,OPRD2说明CMPSB
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址CMPSW
2.本指令影响标志位AF、CF、OF、SF、PF、ZF本指令可用来CMPS检查两个字符串是否相同,可以使用循环控制方法对整串进行比较功能由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不
3.CMPS指令不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较改变操作数本身同时SI,DI将自动调整字扩展指令CWD ConvertWord toDouble说明Word
1.两个字或字节相除时,先用本指令形成一个双字长的被除数CWD
2.本指令不影响标志位格式CWD
3.示例在Bl、B
2、B3字节类型变量中,分别存有8位带符号数功能将字扩展为双字长,即把AX寄存器的符a、b、c,实现a*b+c/a运算号位扩展到DX中说明组合的十进制加法调整指令DAA Decimal
1.调整操作如下Adjust forAddition1若AL and0FH9或AF=L则AL—AL+6,AF-1,对低4位的调整格式DAA22gAL and0F0H90H或CF=1,贝1JAL-AL+60H,CF—1DAA功能对AL中的两个组合进制数相加的结果进
2.示例AL=18H,BL=06H行调整,调整结果仍放在AL中,进位标志放在ADD AL,BL;AL—AL+BL;AL=1EHCF中DAA;AL组合十进制减法调整指令DASDecimal Adjust说明forSubtraction调整操作格式DASDASAL andOFH9AF=1,则AL—AL-6,AF=1功能对两个组合十进制数相减后存于AL中的结果进行调整,调整后产生一个组合的十进制数若AL andOFOH90H或CF=i,则AL—AL-60,CF=1且仍存于AL中说明
1.OPRD为寄存器或存储器操作数减一指令DEC Decrementby
12.这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不影DEC格式DEC OPRD响CF标志位功能OPRD—OPRD
13.示例DEC WORDPTR[DI]DEC ALFA[DI+BX]说明无符号数除法指令DIV DiVision
1.其中OPRD为任一个通用寄存器或存储器操作数
2.字节相除,被除数在AX中;字相除,被除数在DX,AX中,除格式DIV OPRDDIV数在OPRD中功能实现两个无符号二进制数除法运算字节除法AL—AX/OPRD,AH—AXMOD OPRD字除法AXTDXAX/OPRD,DX—DXAX MODOPRD处理器交权指令ESC说明格式ESC EXTOPRD,OPRDESC功能该常数指明协处理器要完成的功能当源操
1.其中EXTOPRD为外部操作码,OPRD为源操作数作数为存储器变量时,则取出该存储器操作数传
2.本指令不影响标志位送给协处理器说明处理器暂停指令HLT
1.本指令不影响标志位格式HLTHLT
2.由执行HLT引起的暂停,只有RESET复位、NMI非屏蔽中功能使处理器处于暂时停机状态断请求、INTR可屏蔽的外部中断请求信号可以使其退出暂停状态它可用于等待中断的到来或多机系统的同步操作说明
1.其中OPRD为任一通用寄存器或存储器操作数带符号数除法指定IDIV IntegerDiVision
2.理由与IMUL相同,只有IDIV指令才能得到符号数相除的正确IDIV格式IDIV OPRD结果功能这实现两个带符号数的二进制除法运算
3.当被除数为8位时,在进行字节除法前,应把AL的符号位扩充至AH中在16位除法时,若被除数为16位,则应将AX中的符号位扩到DX中说明
1.其中OPRD为任一通用寄存器或存储器操作数带符号数乘法指令IMULInteger
2.MUL指令对带符号相乘时,不能得到正确的结果例如AL=255MULtiplyIMUL格式IMUL OPRDCL=255MUL CL功能完成两个带符号数的相乘AX=65025注意这对无符号数讲,结果是正确的,但对带符号数讲,相当于1x1结果应为+1,而65025对应的带符号数为511,显然是不正确的输入指令IN说明格式IN AL,n;AL*-n
1.其中n为8位的端口地址,当字节输入时,将端口地址n+1的内IN AX,n;AXWn+l,n容送至AH中,端口地址n的内容送AL中ININ AL,DX;ALTDX]
2.端口地址也可以是16位的,但必须将16位的端口地址送入DXIN AX,DX;AX-[DX+1],[DX]中当字节寻址时,由DX内容作端口地址的内容送至AL中;功能输入指令当输入数据字时,[DX+1]送AH,[DX]送AL中,用符号:AX—[DX+1],[DX]表示说明
1.OPRD为寄存器或存储器操作数
2.这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不影响CF标志位加1指令INC INCrementby
13.示例INC格式INC OPRDINCSI;SI-SI+1功能OPRD-OPRD+1INC WORDPTR[BX]INC BYTEPTR[BX+DI]INC CL;CL—CL+1注意上述第
二、三条指令,是对存储字及存储字节的内容加1,以替代原来的内容软中断指令INT格式INTn,其中n为软中断的类型号功能本指令将产生一个软中断,把控制转向1个类型号说明操作过程与INTO指令雷同,只需将10H改为nx4即可所以,INT为n的软中断,该中断处理程序入口地址在中断本指令也将影响标志位IF及TF向量表的〃x4地址处的两个存储器字4个单元中溢出中断指令INTO INTerruptif Overflow格说明式INTO
1.本指令影响标志位IF及TFINTO功能本指令检测OF标志位,当OF=1时,说明
2.本指令可用于溢出处理,当OF=1时,产生一个类型4的软中断已发生溢出,立即产生一个中断类型4的中断,在中断处理程序中完成溢出的处理操作当OF=0时,本指令不起作用中断返回指令IRET说明格式:IRET
1.本指令将影响所有标志位1RET功能用于中断处理程序中,从中断程序的断点
2.无论是软中断,还是硬中断,本指令均可使其返回到中断程序的断处返回,继续执行原程序点处继续执行原程序说明条件转移指令JA/JNBE
1.例如,两个符号数a、b比较时,ab即CF=0,ZF=0时转移因为JA格式JA/JNBE标号单一标志位CF=0,只表示a=b功能为高于/不低于等于的转移指令
2.JA/JNBE是同一条指令的两种不同的助记符
3.该指令用于无符号数进行条件转移条件转移指令JAE/JNB说明JAE格式JAE/JNB标号
1.JAE/JNB是同一条指令的两种不同的助记符功能为高于等于/不低于的转移指令
2.该指令用于无符号数进行条件转移条件转移指令JB/JNAEJB格式JB/JNAE标号说明该指令用于无符号数的条件转移功能低于/不高于等于时转移条件转移指令JBE/JNAJBE格式JBE/JNA标号说明该指令用于无符号数的条件转移功能低于等于/不高于时转移条件转移指令JCJC格式JC标号说明JC为根据标志位CF进行转移的指令功能CF=1,转至标号处执行条件转移指令JE/JZ说明JE格式JE/JZ标号
1.指令JE与JZ等价,它们是根据标志位ZF进行转移的指令功能ZF=1,转至标号处执行
2.JE、JZ均为一条指令的两种助记符表示方法条件转移指令JG/JNLEJG格式JG/JNLE标号说明用于带符号数的条件转移指令功能大于/不小于等于时转移条件转移指令JGE/JNLJGE格式JGE/JNL标号说明用于带符号数的条件转移指令功能大于等于/不小于时转移条件转移指令JL/JNGEJL格式:JL/JNGE标号说明用于带符号数的条件转移指令功能小于/不大于等于时转移条件转移指令JLE/JNGJLE格式JLE/JNG标号说明用于带符号数的条件转移指令功能小于等于/不大于时转移无条件转移指令JMP说明格式JMPOPRD
1.其中OPRD为转移的目的地址程序转移到目的地址所指向的功能JMP指令将无条件地控制程序转移到目的指令继续往下执行地址去执行若目的地址仍在同一个代码段内,
2.本组指令对标志位无影响称为段内转移;若目标地址不在同一个代码段JMP
3.1段内直接转移指令JMP NEAR标号内,则称为段间转移这两种情况都将产生不同2段内间接转移指令JMPOPRD的指令代码,以便能正确地生成目的地址,在段3段间直接转移指令JMP FAR标号内转移时,指令只要能提供目的地址的段内偏移4段间间接转移指令JMPOPRD,其中的OPRD为存储器双字操量即可;而在段间转移时,指令应能提供目的地作数段间间接转移只能通过存储器操作数来实现址的段地址及段内偏移地址值条件转移指令JBE/JNAJNA格式JBE/JNA标号说明该指令用于无符号数的条件转移功能低于等于/不高于时转移条件转移指令JB/JNAEJNAE格式JB/JNAE标号说明该指令用于无符号数的条件转移功能低于/不高于等于时转移条件转移指令JAE/JNB说明JNB格式JAE/JNB标号
1.JAE/JNB是同一条指令的两种不同的助记符功能为高于等于/不低于的转移指令
2.该指令用于无符号数进行条件转移说明条件转移指令JA/JNBE
1.例如,两个符号数a、b比较时,ab即CF=0,ZF=0时转移因为JNBE格式JA/JNBE标号单一标志位CF=0,只表示a=b功能为高于/不低于等于的转移指令
2.JA/JNBE是同一条指令的两种不同的助记符
3.该指令用于无符号数进行条件转移条件转移指令JNCJNC格式JNC标号说明JNC为根据标志位CF进行转移的指令功能CF=O,转至标号处执行条件转移指令JNE/JNZ说明JNE格式JNE/JNZ标号
1.指令JNE与JNZ等价,它们是根据标志位ZF进行转移的指令功能ZF=0,转至标号处执行
2.JNE、JNZ均为一条指令的两种助记符表示方法条件转移指令JLE/JNGJNG格式JLE/JNG标号说明用于带符号数的条件转移指令功能小于等于/不大于时转移条件转移指令JL/JNGEJNGE格式JL/JNGE标号说明用于带符号数的条件转移指令功能小于/不大于等于时转移条件转移指令JGE/JNLJNL格式JGE/JNL标号说明用于带符号数的条件转移指令功能大于等于/不小于时转移条件转移指令JG/JNLEJNLE格式JG/JNLE标号说明用于带符号数的条件转移指令功能大于/不小于等于时转移条件转移指令JNOJNO格式JNO标号说明JNO是根据溢出标志位OF进行转移的指令功能OF=0,转至标号处执行条件转移指令JNP/JPO说明JNP格式JNP/JPO标号
1.指令JNP与JPO是根据奇偶标志位PF进行转移的指令功能PF=0,转至标号处执行
2.JNP、JPO均为一条指令的两种助记符表示方法条件转移指令JNSJNS格式JNS标号说明JNS是根据符号标志位SF进行转移的指令功能SF=0,转至标号处执行条件转移指令JNE/JNZ说明JNZ格式JNE/JNZ标号
1.指令JNE与JNZ等价,它们是根据标志位ZF进行转移的指令功能ZF=0,转至标号处执行
2.JNE、JNZ均为一条指令的两种助记符表示方法条件转移指令J0JO格式J0标号说明J0是根据溢出标志位OF进行转移的指令功能OF=1,转至标号处执行条件转移指令JP/JPE说明JP格式JP/JPE标号
1.指令JP与JPE是根据奇偶标志位PF进行转移的指令功能PF=1,转至标号处执行
2.JP、JPE均为一条指令的两种助记符表示方法条件转移指令JP/JPE说明JPE格式JP/JPE标号
1.指令JP与JPE是根据奇偶标志位PF进行转移的指令功能PF=1,转至标号处执行
2.JP、JPE均为一条指令的两种助记符表示方法条件转移指令JNP/JPO说明JPO格式JNP/JPO标号
1.指令JNP与JPO是根据奇偶标志位PF进行转移的指令功能PF=0,转至标号处执行
2.JNP、JPO均为一条指令的两种助记符表示方法条件转移指令JSJS格式JS标号说明JS是根据符号标志位SF进行转移的指令功能SF=1,转至标号处执行条件转移指令JE/JZ说明JZ格式:JE/JZ标号
1.指令JE与JZ等价,它们是根据标志位ZF进行转移的指令功能ZF=1,转至标号处执行
2.JE、JZ均为一条指令的两种助记符表示方法标志传送指令LAHF格式LAHF说明该指令不影响FLAG的原来内容,AH只是复制了原FLAG的低LAHF功能取FLAG标志寄存器低8位至AH寄8位内容存器AH一FLAG7〜0说明OPRD1为任意一个16位的寄存器从存储器取出32位地址的指令LDSOPRD2为32位的存储器地址LDS格式LDS OPRD1,OPRD2示例LDS DI,[BX]功能从存储器取出32位地址的指令注意上面LDSDI,[BX]指令的功能是把BX所指的32位地址指针的段地址送入DS,偏移地址送入DI说明
3.OPRD1为目的操作数,可为任意一个16位的通用寄存器有效地址传送指令LEAOPRD2为源操作数,可为变量名、标号或地址表达式格式LEA OPRD1,OPRD2LEA示例LEA BX,DATA1功能将源操作数给出的有效地址传送到指定的LEA DX,BETA[BX+SI]寄存器中LEA BXBX,[BP],[DI]
2.本指令对标志位无影响说明从存储器取出32位地址的指令LESOPRD1为任意一个16位的寄存器LES格式LES OPRDLOPRD2OPRD2为32位的存储器地址示例LES DIJBX]功能从存储器取出32位地址的指令注意上面LESDI,[BX]指令的功能是把BX所指的32位地址指针的段地址送入ES,偏移地址送入DI封锁总线指令LOCK格式LOCKLOCK功能指令是一个前缀,可放在指令的前面,告说明总线封锁前缀诉CPU在执行该指令时不允许其他设备对总线进行访问取字符串元素指令LODS格式LODSOPRD,其中OPRD为源字符串符号说明地址
1.本指令不影响标志位LODS功能把SI寻址的源串的数据字节送AL或数
2.当不使用操作数时,可用LODS字节串或LODSW字串指据字送AX中去,并根据DF的值修改地址指针令SI进行自动调整循环控制指令LOOP说明格式LOOP标号
1.本指令是用CX寄存器作为计数器,来控制程序的循环LOOP功能CX一CX1,CX和,则转移至标号处循
2.它属于段内SHORT短类型转移,目的地址必须距本指令在128环执行,直至CX=0,继续执行后继指令〜+127字节的范围内说明循环控制指令LOOPZ/LOOPE
1.本指令是用CX寄存器作为计数器,来控制程序的循环格式LOOPZ/LOOPE标号
2.它属于段内SHORT短类型转移,目的地址必须距本指令在LOOPE功能CX一CX1,CX并且ZF=1时,转128〜+127字节的范围内至标号处循环
3.以上两种助记符等价说明循环控制指令LOOPNZ/LOOPNE
1.本指令是用CX寄存器作为计数器,来控制程序的循环格式LOOPN27LOOPNE标号
2.它属于段内SHORT短类型转移,目的地址必须距本指令在LOOPNE功能CX-CX1,CX知且ZF=时,转至标128〜+127字节的范围内号处循环
3.以上两种助记符等价说明循环控制指令LOOPNZ/LOOPNE
1.本指令是用CX寄存器作为计数器,来控制程序的循环格式LOOPNZ/LOOPNE标号
2.它属于段内SHORT短类型转移,目的地址必须距本指令在LOOPNZ功能CX-CX1,CX并且ZF=0时,转至标128〜+127字节的范围内号处循环
3.以上两种助记符等价续表LOOPZ循环控制指令LOOPZ/LOOPE说明
1.本指令是用CX寄存器作为计数器,来控制程序的循环格式LOOPZ/LOOPE标号
2.它属于段内SHORT短类型转移,目的地址必须距本指令在功能CX-CX1,CX并且ZF=1时,转至标号处循环128〜+127字节的范围内
3.以上两种助记符等价说明
1.OPRD1为目的操作数,可以是寄存器、存储器、累加器;OPRD2为源操作数,可以是寄存器、存储器、累加器和立即数数据传送指令MOV格式MOV OPRD1,OPRD
22.MOV指令以分为以下4种情况MOVE
①寄存器与寄存器之间的数据传送指令;功能本指令将一个源操作数送到目的操作
②立即数到通用寄存器数据传送指令;数中,即OPRD1-OPRD2
③寄存器与存储器之间的数据传送指令;
④立即数到存储器的数据传送
3.本指令不影响状态标志位说明字符串传送指令MOVS
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址格式MOVS OPRD1,OPRD
22.字节串操作若DF=0,则作加,若DF=1,则作减MOVS MOVSB
3.字串操作若DF=0,则作加,若DF=1,则作减MOVSW
4.在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送功能OPRD1-OPRD2格式为MOVSW
5.本指令不影响标志位说明字符串传送指令MOVS
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址格式MOVS OPRDLOPRD
22.字节串操作若DF=0,则作加,若DF=1,则作减MOVSB MOVSB
3.字串操作若DF=0,则作加,若DF=1,则作减MOVSW
4.在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送功能OPRD1-OPRD2格式为MOVSW
5.本指令不影响标志位说明字符串传送指令MOVS
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址格式MOVS OPRDI,OPRD
22.字节串操作若DF=0,则作加,若DF=1,则作减MOVSW MOVSB
3.字串操作若DF=0,则作加,若DF=1,则作减MOVSW
4.在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送功能OPRD1-OPRD2格式为MOVSW
5.本指令不影响标志位说明
1.OPRD为通用寄存器或存储器操作数
2.OPRD为源操作数,即作乘数目的操作数是隐含的,即被乘数无符号数乘法指令MUL MULtiply总是指定为累加器AX或AL的内容格式MUL OPRDMUL
3.16位乘法时,AX中为被乘数8位乘法时,AL为被乘数当16功能乘法操作位乘法时,32位的乘积存于DX及AX中;8位乘法的16位乘积存于AX中
4.操作过程字节相乘AX—ALxOPRD,当结果的高位字节AH不等于0时,则CF=
1、OF=1取补指令NEG NEGate说明格式NEG OPRD
1.OPRD为任意通用寄存器或存储器操作数NEG功能对操作数OPRD进行取补操作,然后将
2.示例AL=44H,取补后,AL尸0BCH44H结果送回OPRD取补操作也称为求补操作,就
3.本指令影响标志位CF、OF、SF、PF、ZF及AF是求一个数的相反数的补码续表NOP空操作指令NOP说明本指令不影响标志位格式NOP功能本指令不产生任何结果,仅消耗几个时钟周期的时间,接着执行后续指令,常用于程序的延时等逻辑非运算指令NOT说明格式NOT OPRD
1.其中OPRD可为任一通用寄存器或存储器操作数NOT功能完成对操作数按位求反运算即变
2.本指令可以进行字或字节“非”运算1,1变0,结果返回原操作数
3.本指令不影响标志位逻辑或指令OR格式OR OPRD1,OPRD2说明功能OR指令完成对两个操作数按位的“或”
1.其中OPRD
1、OPRD2含义与AND指令相同,对标志位的影响也OR运算,结果送至目的操作数中,本指令可以进行与AND指令相同字节或字的或运算
2.两数相或,有一个数为真,则值为真OPRD1-OPRD1OR OPRD2说明输出指令OUT
1.OUT n,AX;n+l,n-AX格式OUT n,AL;n—AL OUT DX,AL;[DX]-ALOUT功能输出指令OUTDX,AX;[DX+1],[DX]^AX
2.输入指令及输出指令对标志位都不影响说明
1.OPRD为16位字操作数,可以是寄存器或存储器操作数堆栈操作指令PUSH和POP
2.POP指令的操作过程是POPOPRD OPRDTSP,SP-SP4-2它格式PUSH OPRD与压入操作相反,是先弹出栈顶的数,然后修改指针SP的内容POP POPOPRD
3.示例POP AX功能实现压入操作的指令是PUSH指令;实现POP DS弹出操作的指令是POP指令POP DATA1POP ALFA[BX][DI]
4.PUSH和POP指令对状态标志位没有影响标志传送指令POPF格式POPF说明如果对堆栈中的原FLAG内容进行修改,如对TF等标志位进功能本指令的功能与PUSHF相反,在子程序POPF行修改,然后再弹回标志位寄存器FLAG这是通过指令修改TF标调用和中断服务程序中,往往用PUSHF指令保护志的唯一方法FLAG的内容,用POPF指令将保护的FLAG内容恢复说明堆栈操作指令PUSH和POP
1.OPRD为16位字操作数,可以是寄存器或存储器操作数格式PUSH OPRD
2.PUSH的操作过程是SP一SP2,SP-OPRD,即先修改堆栈指针PUSH POPOPRDSP压入时为自动减2,然后将指定的操作数送入新的栈顶位置,功能实现压入操作的指令是PUSH指令;实现此处的SP—OPRD,也可以理解为[SS*16+SP]—OPRD或弹出操作的指令是POP指令[SS:SP]-OPRD标志传送指令PUSHF格式PUSHFPUSHF无功能本指令可以把标志寄存器的内容保存到堆栈中去续表循环移位指令说明RCL。
个人认证
优秀文档
获得点赞 0