8086汇编指令简表.docx

上传人:太** 文档编号:96854829 上传时间:2024-03-27 格式:DOCX 页数:13 大小:52.20KB
返回 下载 相关 举报
8086汇编指令简表.docx_第1页
第1页 / 共13页
8086汇编指令简表.docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《8086汇编指令简表.docx》由会员分享,可在线阅读,更多相关《8086汇编指令简表.docx(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、8086/8088汇编指令简表(按字母顺序)AAA未组合的十进制加法调整指令AAA (ASCII Adgust for Addition)格式:AAA功能:对两个组合的十进制数相加运算(存 在AL中)的结果进行调整,产生一个未组 合的十进制数放在AX中说明:1 .组合的十进制数和未组合的十进制数:在计算中,十进制数 可用4位二进制数编码,称为BCD码当一个节(8位)中存放一位BCD码,且放在字节的低4位,高4 位时称为未组合的BCD码2 . AAA的调整操作若(AL) and 0FH9或AF= 1,则调整如下:(AL)-(AL)+6, (AH)-(AH)+1, AF=1, CF-AF, (AL

2、)-(AL) and OFHAAD未组合十进制数除法调整指令AAD (ASCII Adjust for Division)格式:AAD功能:在除法指令前对AX中的两个未组合十 进制数进行调整,以便能用DIV指令实现两 个未组合的十进制数的除法运算,其结果为未 组合的十进制数,商(在AL中)和余数(在 AH中)说明:1 . AAD指令是在执行除法DIV之前使用的,以便得到二进制 结果存于AL中,然后除以OPRD,得到的商在AL中,余数在 AH中2 .示例:MOV BL,5MOV AX,0308HAAD; (AL)-1EH+08H=26H,(AH)0DIV BL;商二07Hr(AL),余数=03H

3、r(AH).AAM未组合十进制数乘法调整指令AAM(ASCIIAdjust MULtiply)格式:AAM功能:对两个未组合的十进制数相乘后存于 AX中的结果进行调整,产生一个未组合的 十进制数存在AL中说明:1 .实际上是两个未组合的十进制数字节相乘,一个。9的数与另 一个09的数相乘其积最大为81。为了得到正确的结果,应进行 如下调整:乘积:(AH)*-(AL)/10(AL) 9 或 AF=1,贝|J(AL)(AL)-6, (AH)(AH)-1, CFAF, (AL)-(AL) and OFH, 否则(AL)(AL) and OFHADC带进位力口法指令ADC (Addition Carr

4、y)格式:ADC OPRD1,OPRD2功能:OPRD1-OPRD1+OPRD2 + CF说明:1 . OPRD1为任一通用寄存器或存储器操作数,可以是任意一个 通用寄存器,而且还可以是任意一个存储器操作数OPRD2为立即数,也可以是任意一个通用寄存器操作数。立即 数只能用于源操作数2 . OPRD1和OPRD2均为寄存器操作数是允许的,一个为寄存 器操作数而另一个为存储器操作数也是允许的,但不允许两个都 是存储器操作数3 .加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有 影响,以上标志也称为结果标志4 .该指令对标志位的影响同ADD指令ADD加法指令 ADD (Addition

5、) 格式:ADD OPRD1,OPRD2 功能:两数相加说明:1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个 通用寄存器,还可以是任意一个存储器操作数OPRD2为立即数,也可以是任意一个通用寄存器操作数。立即 数只能用于源操作数格式:ROL OPRD1,COUNT;不含进位标志位CF在循环中的左循环移位指令ROR OPRD1,COUNT;不含进位标志位 CF 在循环中的右循环移位指令RCL OPRD1,COUNT;带进位的左循环移位指 令RCR OPRD1,COUNT;带进位的右循环移位指 令1 .本指令组只影响标志CF、OF、OF由移入CF的内容决定, OF取决于移位一次后符

6、号位是否改变,如改变,则OF=12 .由于是循环移位,所以对字节移位8次;对字移位16次,就 可恢复为原操作数。由于带CF的循环移位,可以将CF的内容 移入,所以可以利用它实现多字节的循环RCR循环移位指令格式:ROL OPRD1,COUNT;不含进位标志位CF在循环中的左循环移位指令ROR OPRD1,COUNT;不含进位标志位CF 在循环中的右循环移位指令RCL OPRD1,COUNT;带进位的左循环移位指 令RCR OPRDI,COUNT;带进位的右循环移位指 令说明:1 .本指令组只影响标志CF、OF、OF由移入CF的内容决定, OF取决于移位一次后符号位是否改变,如改变,则OF=12

7、 .由于是循环移位,所以对字节移位8次;对字移位16次,就 可恢复为原操作数。由于带CF的循环移位,可以将CF的内容 移入,所以可以利用它实现多字节的循环注意:以上程序中的指令SHR AL,CL如改为SAR AL,CL,虽然 最高4位可移入低4位,但最高位不为0,故应加入一条指令 AND AL,0FHo否则,若最高位不为。时,将得到错误结果REP重复前缀的说明格式:REP;CX/)重复执行字符串指令REPZ/REPE; CXO且ZF=1重复执行字符串指 令REPNZ/REPNE; CX/)且 ZF=0 重复执行字 符串指令功能:在串操作指令前加上重复前缀,可以 对字符串进行重复处理。由于加上重

8、复前缀 后,对应的指令代码是不同的,所以指令的 功能便具有重复处理的功能,重复的次数存 放在CX寄存器中说明:1. REP与MOVS或STOS串操作指令相结合使用,完成一组字 符的传送或建立一组相同数据的字符串2. REPZ/REPE常用与CMPS串操作指令结合使用,可以完成 两组字符串的比较3. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符 串中搜索一个关键字4. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束 (CX=1)且当对应串元素不相同(ZF=0)时,继续重复执行串 比较指令REPE重复前缀的说明格式:REP; CX/0重复执行字符串指令REPZ/RE

9、PE; CXO且ZF=1重复执行字符串 指令REPNZ/REPNE; CX#0 且 ZF=0 重复执行字 符串指令功能:在串操作指令前加上重复前缀,可以对 字符串进行重复处理。由于加上重复前缀后, 对应的指令代码是不同的,所以指令便具有重 复处理的功能,重复的次数存放在CX寄存器 中说明:1. REPZ/REPE常与CMPS串操作指令结合使用,可以完成两组 字符串的比较2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符 串中搜索一个关键字3. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX=1) 且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令4

10、. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1) 且当关键字与串元素不相同(ZF=()时,继续重复执行串搜索 指令REPNE重复前缀的说明格式:REP; CXO重复执行字符串指令REPZ/REPE; CX#)且ZF=1重复执行字符串 指令REPNZ/REPNE; CX/0 且 ZF=0 重复执行字 符串指令说明:1. REPZ/REPE常与CMPS串操作指令结合使用,可以完成两组 字符串的比较2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符 串中搜索一个关键字3. REPNZ/REPNE与CMPS指令结合使用,表示当串未结束(CX-1) 且当对应串

11、元素不相同(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与CMP

12、S指令结合使用,表示当串未结束(CX= 1) 且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令4. REPNZ/REPNE与SC AS指令结合使用,表示串未结束(CX=1) 且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索 指令REPZ重复前缀的说明格式:REP; CXoO重复执行字符串指令REPZ/REPE; CX()且ZF=1重复执行字符 串指令REPNZ/REPNE; CX0 且 ZF=0 重复执行字 符串指令功能:在串操作指令前加上重复前缀,可以对 字符串进行重复处理。由于加上重复前缀后, 对应的指令代码是不同的,所以指令便具有重 复处理的功能,重复的次数存放在CX

13、寄存器说明:1. REPZ/REPE常与CMPS串操作指令结合使用,可以完成两组 字符串的比较2. REPZ/REPE常与SCAS指令结合使用,可以完成在一个字符 串中搜索一个关键字3. REPN27REPNE与CMPS指令结合使用,表不当串未结束(CX-1) 且当对应串元素不相同(ZF=0)时,继续重复执行串比较指令4. REPNZ/REPNE与SCAS指令结合使用,表示串未结束(CX=1) 且当关键字与串元素不相同(ZF=0)时,继续重复执行串搜索 指令RET返回指令RET格式:RET功能:当调用的过程结束后实现从过程返回至 原调用程序的下一条指令,本指令不影响标志 位说明:由于在过程定义

14、时,已指明其近(NEAR)或远(FAR)的属性, 所以RET指令根据段内调用与段间调用,执行不同的操作 对段内调用:返回时,由堆栈弹出一个字的返回地址的段内偏移量至 IP对段外调用:返回时,由堆栈弹出的第一个字为返回地址的段内 偏移量,将其送入IP中,由堆栈弹出第二个字为返回地址的段 基址,将其送入CS中ROL循环移位指令格式:ROL OPRD1,COUNT;不含进位标志位CF在循环中的左循环移位指令ROR OPRD1,COUNT;不含进位标志位CF 在循环中的右循环移位指令RCL OPRD1,COUNT;带进位的左循环移位指 令RCR OPRD1,COUNT;带进位的右循环移位指 令说明:1

15、 .本指令组只影响标志CF、OF、OF由移入CF的内容决定, OF取决于移位一次后符号位是否改变,如改变,则OF二12 .由于是循环移位,所以对字节移位8次;对字移位16次,就 可恢复为原操作数。由于带CF的循环移位,可以将CF的内容 移入,所以可以利用它实现多字节的循环ROR循环移位指令格式:ROL OPRD1,COUNT;不含进位标志位CF 在循环中的左循环移位指令ROR OPRD1,COUNT;不含进位标志位CF 在循环中的右循环移位指令RCL OPRD1,COUNT;带进位的左循环移位指 令RCR OPRDI,COUNT;带进位的右循环移位指 令说明:1 .本指令组只影响标志CF、OF

16、、OF由移入CF的内容决定, OF取决于移位一次后符号位是否改变,如改变,则OF=12 .由于循环移位,所以对字节移位8次;对字移位16次,可恢 复为原操作数SAHF标志传送指令SAHF格式:SAHF功能:将AH存至FLAG低8位说明:本指令将用AH的内容改写FLAG标志寄存器中的SF、 ZF、AF、PF和CF标志,从而改变原来的标志位SAL算术左移指令 SAL (Shift Arithmetic Left) 格式:SAL OPRD1,COUNT功能:其中OPRD1,COUNT与指令SHL相同。 本指令与SHL的功能也完全相同,这是因为逻 辑左移指令与算术左移指令所要完成的操作是 一样的说明:

17、1 .其中OPRD1为目的操作数,可以是通用寄存器或存储器操 作数2 . COUNT代表移位的次数(或位数)。移位一次,COUNT=1; 移位多于1次时,COUNT=(CL),(CL)中为移位的次数续表SAR算术右移指令SAR格式:SAR OPRD1,COUNT说明:1.其中OPRD1为目的操作数,可以是通用寄存器或存储器操功能:本指令通常用于对带符号数减半的运 算中,因而在每次右移时,保持最高位(符 号位)不变,最低位右移至CF中作数2. COUNT代表移位的次数(或位数)。移位一次,COUNT=1; 移位多于1次时,COUNT=(CL),(CL)中为移位的次数SBB带借位减去指令 SBB

18、( SuBtraction with Bonow)格式:SBBOPRDLOPRD2功能:是进行两个操作数的相减再减去CF 进位标 志位, 即 从 OPRD1 9 或 AF=L 则(AL)(AL)+6,AF-1,对低 4 位的调整2 2) g(AL) and 0F0H90H 或 CF=1,贝1J(AL) 9 AF= 1,则(AL)(AL)-6, AF=1若(AL) and OFOH 90H 或 CF=i,则(AL)(AL)-60, CF=1DEC减一指令 DEC (Decrement by 1)格式:DEC OPRD功能:OPRDOPRD 1说明:1 . OPRD为寄存器或存储器操作数2 .这条

19、指令执行结果影响AF、OF、PF、SF、ZF标志位,但不 影响CF标志位3 .示例:DEC WORD PTRDIDEC ALFADI+BXDIV无符号数除法指令DIV (DiVision)格式:DIV OPRD功能:实现两个无符号二进制数除法运算说明:1 .其中OPRD为任一个通用寄存器或存储器操作数2 .字节相除,被除数在AX中;字相除,被除数在DX, AX中, 除数在OPRD中字节除法:(AL)(AX)/OPRD,(AH)(AX)MOD OPRD字除法:(AX)TDX)(AX)/OPRD,(DX)(DX)(AX) MOD OPRDESC处理器交权指令ESC格式:ESC EXTOPRD,OP

20、RD功能:该常数指明协处理器要完成的功能 当源操作数为存储器变量时,则取出该存储 器操作数传送给协处理器说明:1 .其中EXTOPRD为外部操作码,OPRD为源操作数2 .本指令不影响标志位HLT处理器暂停指令HLT格式:HLT功能:使处理器处于暂时停机状态说明:1 .本指令不影响标志位2 .由执行HLT引起的暂停,只有RESET (复位)、NMI (非 屏蔽中断请求)、INTR (可屏蔽的外部中断请求)信号可以使 其退出暂停状态。它可用于等待中断的到来或多机系统的同步操 作IDIV带符号数除法指定IDIV (IntegerDiVision)格式:IDIV OPRD功能:这实现两个带符号数的二

21、进制除法运 算说明:1 .其中OPRD为任一通用寄存器或存储器操作数2 .理由与IMUL相同,只有IDIV指令才能得到符号数相除的 正确结果3 .当被除数为8位时,在进行字节除法前,应把AL的符号位扩充至 AH中。在16位除法时,若被除数为16位,则应将AX中的符号位扩 到DX中IMUL带符号数乘法指令IMUL ( IntegerMULtiply)格式:IMUL OPRD功能:完成两个带符号数的相乘说明:1 .其中OPRD为任一通用寄存器或存储器操作数2 . MUL指令对带符号相乘时,不能得到正确的结果例如:(AL)=255(CL)=255MUL CL(AX)=65025注意:这对无符号数讲,

22、结果是正确的,但对带符号数讲,相当于 (1)x(1)结果应为+1,而65025对应的带符号数为511,显然是不正确的IN输入指令IN格式:IN AL,n; (AL)*-(n)IN AX,n; (AXWn+l),(n)IN AL,DX; (AL)T(DX)IN AX,DX; (AX)-(DX)+1,(DX)功能:输入指令说明:1 .其中n为8位的端口地址,当字节输入时,将端口地址n+1 的内容送至AH中,端口地址n的内容送AL中2 .端口地址也可以是16位的,但必须将16位的端口地址送入 DX中。当字节寻址时,由DX内容作端口地址的内容送至AL 中;当输入数据字时,(DX)+1送AH, (DX)

23、送AL中,用符 号:(AX) (DX)+1, (DX)表示INC加 1 指令 INC (INCrement by 1)格式:INC OPRD功能:OPRD-OPRD+1说明:1 . OPRD为寄存器或存储器操作数2 .这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不 影响CF标志位3 .示例:INC SI;(SI)b (即CF=0, ZF=0)时 转移。因为单一标志位CF=0,只表示a=b2 . JA/JNBE是同一条指令的两种不同的助记符3 .该指令用于无符号数进行条件转移JAE条件转移指令JAE/JNB格式:JAE/JNB标号功能:为高于等于/不低于的转移指令说明:1 . JA

24、E/JNB是同一条指令的两种不同的助记符2 .该指令用于无符号数进行条件转移JB条件转移指令JB/JNAE格式:JB/JNAE标号功能:低于/不高于等于时转移说明:该指令用于无符号数的条件转移JBE条件转移指令JBE/JNA格式:JBE/JNA标号功能:低于等于/不高于时转移说明:该指令用于无符号数的条件转移JC条件转移指令JC格式:JC标号功能:CF=1,转至标号处执行说明:JC为根据标志位CF进行转移的指令JE条件转移指令JE/JZ格式:JE/JZ标号功能:ZF=1,转至标号处执行说明:1 .指令JE与JZ等价,它们是根据标志位ZF进行转移的指令2 . JE、JZ均为一条指令的两种助记符表

25、示方法JG条件转移指令JG/JNLE格式:JG/JNLE标号功能:大于/不小于等于时转移说明:用于带符号数的条件转移指令JGE条件转移指令JGE/JNL格式:JGE/JNL标号功能:大于等于/不小于时转移说明:用于带符号数的条件转移指令JL条件转移指令JL/JNGE格式:JL/JNGE标号功能:小于/不大于等于时转移说明:用于带符号数的条件转移指令JLE条件转移指令JLE/JNG格式:JLE/JNG标号功能:小于等于/不大于时转移说明:用于带符号数的条件转移指令JMP无条件转移指令JMP格式:JMPOPRD功能:JMP指令将无条件地控制程序转移到 目的地址去执行。若目的地址仍在同一个代 码段内

26、,称为段内转移;若目标地址不在同 一个代码段内,则称为段间转移。这两种情 况都将产生不同的指令代码,以便能正确地 生成目的地址,在段内转移时,指令只要能 提供目的地址的段内偏移量即可;而在段间 转移时,指令应能提供目的地址的段地址及 段内偏移地址值说明:1 .其中OPRD为转移的目的地址。程序转移到目的地址所指向 的指令继续往下执行2 .本组指令对标志位无影响3 . 段内直接转移指令:JMP NEAR标号段内间接转移指令:JMPOPRD段间直接转移指令:JMP FAR标号段间间接转移指令:JMPOPRD,其中的OPRD为存储 器双字操作数。段间间接转移只能通过存储器操作数来实现JNA条件转移指

27、令JBE/JNA格式:JBE/JNA标号功能:低于等于/不高于时转移说明:该指令用于无符号数的条件转移JNAE条件转移指令JB/JNAE格式:JB/JNAE标号功能:低于/不高于等于时转移说明:该指令用于无符号数的条件转移JNB条件转移指令JAE/JNB格式:JAE/JNB标号功能:为高于等于/不低于的转移指令说明:1 . JAE/JNB是同一条指令的两种不同的助记符2 .该指令用于无符号数进行条件转移JNBE条件转移指令JA/JNBE格式:JA/JNBE标号功能:为高于/不低于等于的转移指令说明:1 .例如,两个符号数a、b比较时,ab (即CF=0, ZF=0)时 转移。因为单一标志位CF

28、=0,只表示a=b2 . JA/JNBE是同一条指令的两种不同的助记符3 .该指令用于无符号数进行条件转移JNC条件转移指令JNC格式:JNC标号功能:CF=O,转至标号处执行说明:JNC为根据标志位CF进行转移的指令JNE条件转移指令JNE/JNZ格式:JNE/JNZ标号功能:ZF=0,转至标号处执行说明:1 .指令JNE与JNZ等价,它们是根据标志位ZF进行转移的指 令2 . JNE、JNZ均为一条指令的两种助记符表示方法JNG条件转移指令JLE/JNG格式:JLE/JNG标号功能:小于等于/不大于时转移说明:用于带符号数的条件转移指令JNGE条件转移指令JL/JNGE格式:JL/JNGE标号功能:小于/不大于等于时转移说明:用于带符号数的条件转移指令JNL条件转移指令JGE/JNL格式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com