《汇编语言指令表》由会员分享,可在线阅读,更多相关《汇编语言指令表(21页珍藏版)》请在金锄头文库上搜索。
1、AAA未组合的十进制加法调整指令AAA(ASCII Adgust for Addition) 格式:AAA功能:对两个组合的十进制数相加运算 (存在AL 中)的结果进行调整,产生一个 未组合的十进制数放在AX中.说明:1. 组合的十进制数和未组合的十进制 数:在计算中,十进制数可用四位二进 制数编码,称为BCD码.当一个节(8位)中存放一位BCD码,且 放在字节的低4位,咼4位为时称为未 组合的BCD码.2. AAA的调整操作若(AL) and 0FH9或AF=1,则调整如 下:(AL)一(AL)+6,(AH)一(AH)+1,AF=1, CF一AF,(AL)一(AL) and 0FHAAD未组
2、合十进制数除法调整指令 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+O8H=26H,(AH)一ODIV BL ;商=07H(AL),余数= 03H(AH).AAM未组合十进制
3、数乘法调整指令 AAM(ASCII Adjust MULtiply) 格式:AAM功能:对两个未组合的十进制数相乘后 存于AX中的结果进行调整,产生一个未 组合的十进制数存在AL中.说明:1. 实际上是两个未组合的十进制数字 节相乘,一个09的数与另一个09 的数相乘其积最大为81.为了得到正确 的结果,应进行如下调整:乘积:(AH)一(AL)/10 (AL)一(AL)M0D102. 本指令应跟在MUL指令后使用,乘 积的两位十进制结果,咼位放在AH中, 低位放在AL 中.AH内容是MUL指令的 结果被10除的商,即(AL)/10,而最后 的AL内容是乘积被10整除的余数(即 个位数).AAS
4、未组合十进制减法调整指令AAS(ASCIIAdjust for Subtraction)格式:AAS功能:对两个未组合十进制数相减后存 于AL中的结果进行调整,调整后产生一 个未组合的十进制数数且仍存于AL中.说明:1. 本指令影响标志位CF及AF.2. 调整操作若(AL) and 0FH 9 或 AF=1则(AL)一(AL)-6,(AH)一(AH)-1,CF一AF,(AL)一(AL) and 0FH, 否则(AL)一(AL) and 0FHADC带进位加法指令ADC(Addi tion Carry)说明:格式:ADC OPRD1,OPRD2功能:OPRD1一OPRD1 + OPRD2 + C
5、F1. OPRD1为任一通用寄存器或存储器 操作数,可以是任意一个通用寄存器, 而且还可以是任意一个存储器操作数. OPRD2为立即数,也可以是任意一个通 用寄存器操作数立即数只能用于源操 作数.2. OPRD1和OPRD2均为寄存器是允许 的,一个为寄存器而另一个为存储器也 是允许的,但不允许两个都是存储器操 作数.3. 加法指令运算的结果对CF、SF、OF、 PF、ZF、AF都会有影响.以上标志也称 为结果标志.4. 该指令对标志位的影响同ADD指 令.ADD加法指令 ADD(Addi tion) 格式:ADD OPRD1,OPRD2 功能:两数相加说明:1. OPRD1为任一通用寄存器或
6、存储器 操作数,可以是任意一个通用寄存器, 而且还可以是任意一个存储器操作数. OPRD2为立即数,也可以是任意一个通 用寄存器操作数立即数只能用于源操 作数.2. OPRD1和OPRD2均为寄存器是允许 的,一个为寄存器而另一个为存储器也 是允许的,但不允许两个都是存储器 操作数.3. 加法指令运算的结果对CF、SF、OF、 PF、ZF、AF都会有影响.以上标志也称 为结果标志加法指令适用于无符号数 或有符号数的加法运算.AND逻辑与运算指令AND格式:AND OPRD1,OPRD2功能:对两个操作数实现按位逻辑与运 算,结果送至目的操作数本指令可以进 行字节或字的与运算,OPRD1一OPR
7、D1 and OPRD2.说明:1. 目的操作数OPRD1为任一通用寄存 器或存储器操作数源操作数OPRD2为 立即数,任一通用寄存器或存储器操作 数.2. 示例:AND AL,0FH ;(AL)一(AL)AND 0FHAND AX,BX ;(AX)一(AX) AND (BX)AND DX,BUFFERSI+BXAND BETABX,00FFH注意:两数相与,有一个数假则值为假CALL过程调用指令CALL 格式:CALL OPRD 功能:过程调用指令说明:1. 其中OPRD为过程的目的地址.2. 过程调用可分为段内调用和段间调用两种寻址方式也可以分为直接寻址 和间接寻址两种.3.本指令不影响标
8、志位.CBW字节扩展指令CBW(Convert By te toWord)格式:CBW功能:将字节扩展为字,即把AL寄存器 的符号位扩展到AH中.说明:1. 两个字节相除时,先使用本指令形 成个双字节长的被除数.2. 本指令不影响标志位.3. 示例:MOV AL,25CBWIDIV BYTE PTR DATA1CLC处理器控制指令一标志位操作指令 格式:CLC ;置 CF=0STC ;置 CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置 DF=0STD ;置 DF=1CLI ;置IF=0, CPU禁止响应外部中断STI ;置IF=1,使CPU允许向应外部中断 功能:完成对标志
9、位的置位、复位等操 作.说明:例如串操作中的程序,经常用 CLD指令清方向标志使DF-0,在串操 作指令执行时,按增量的方式修改吕指 针.CLD处理器控制指令一标志位操作指令 格式:CLC ;置 CF=0STC ;置 CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置 DF=0STD ;置 DF=1CLI ;置IF=0, CPU禁止响应外部中断STI ;置IF=1,使CPU允许向应外部中断 功能:完成对标志位的置位、复位等操 作.说明:例如串操作中的程序,经常用 CLD指令清方向标志使DF-0,在串操 作指令执行时,按增量的方式修改吕指 针.CLI处理器控制指令一标志位操作指令
10、 格式:CLC ;置 CF=0STC ;置 CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置 DF=0STD ;置 DF=1CLI ;置IF=0, CPU禁止响应外部中断STI ;置IF=1,使CPU允许向应外部中断 功能:完成对标志位的置位、复位等操 作.说明:例如串操作中的程序,经常用 CLD指令清方向标志使DF-0,在串操 作指令执行时,按增量的方式修改吕指 针.CMC处理器控制指令一标志位操作指令说明:例如串操作中的程序,经常用格式:CLC ;置 CF=0STC ;置 CF=1CMC ;置CF=(Not CF)进位标志求反CLD ;置 DF=0STD ;置 DF=1C
11、LI ;置IF=0, CPU禁止响应外部中断STI ;置IF=1,使CPU允许向应外部中断 功能:完成对标志位的置位、复位等操 作.CLD指令清方向标志使DF = 0,在串操 作指令执行时,按增量的方式修改吕指 针.CMP比效指令CMP(CoMPare) 格式:CMP 0PRDl,0PRD2 功能:对两数进行相减,进行比较.说明:1. OPRD1为任意通用寄存器或存储器 操作数.OPRD2为任意通用寄存器或存储器操作 数,立即数也可用作源操作数OPRD2.2. 对标志位的影响同SUB指令,完成 的操作与SUB指令类似,唯一的区别是 不将0PRD1-0PRD2的结果送回OPRD1, 而只是比较.
12、3. 在8088/8086指令系统中,专门提 供了一组根据带符号数比较大小后,实 现条件转移的指令.CMPS字符串比较指令格式:CMPS 0PRDl,0PRD2CMPSBCMPSW功能:由SI寻址的源串中数据与由DI 寻址的目的串中数据进行比较,比较结 果送标志位,而不改变操作数本身. 同时SI,DI将自动调整.说明:1. 其中0PRD2为源串符号地址,OPRD1 为目的串符号地址.2. 本指令影响标志位AF、CF、OF、SF、 PF、ZF.本指令可用来检查二个字符串 是否相同,可以使用循环控制方法对整 串进行比较.3. 与MOVS相似,CMPS指令也可以不使 用操作数,此时可用指令CMPSB
13、或 CMPSW分别表示字节串比较或字串比 较.CMPSB字符串比较指令格式:CMPS 0PRDl,0PRD2CMPSBCMPSW功能:由SI寻址的源串中数据与由DI 寻址的目的串中数据进行比较,比较结 果送标志位,而不改变操作数本身. 同时SI,DI将自动调整.说明:1. 其中OPRD2为源串符号地址,OPRD1 为目的串符号地址.2. 本指令影响标志位AF、CF、OF、SF、 PF、ZF.本指令可用来检查二个字符串 是否相同,可以使用循环控制方法对整 串进行比较.3. 与MOVS相似,CMPS指令也可以不使 用操作数,此时可用指令CMPSB或 CMPSW分别表示字节串比较或字串比 较.CMP
14、SW字符串比较指令格式:CMPS OPRD1,OPRD2CMPSBCMPSW功能:由SI寻址的源串中数据与由DI 寻址的目的串中数据进行比较,比较结 果送标志位,而不改变操作数本身. 同时SI,DI将自动调整.说明:1. 其中0PRD2为源串符号地址,OPRD1 为目的串符号地址.2. 本指令影响标志位AF、CF、OF、SF、 PF、ZF.本指令可用来检查二个字符串 是否相同,可以使用循环控制方法对整 串进行比较.3. 与MOVS相似,CMPS指令也可以不使 用操作数,此时可用指令CMPSB或 CMPSW分别表示字节串比较或字串比 较.CWD字扩展指令 CWD(Conver t Word to
15、Double Word)格式:CWD功能:将字扩展为双字长,即把AX寄存 器的符号位扩展到DX中.说明:1. 两个字或字节相除时,先用本指令 形成一个双字长的的被除数.2. 本指令不影响标志位.3. 示例:在Bl、B2、B3字节类型变量 中,分别存有8们带符号数a、b、c,实 现(a*b+c)/a 运算。DAA组合的十进制加法调整指令DAA(Decimal Adjust for Addition) 格式:DAA功能:对AL中的两个组合进制数相加的 结果进行调整,调整结果仍放在AL中,进 位标志放在CF中.说明:1. 调整操作如下(1) 若(AL) and 0FH9 或 AF=1,则 (AL)一(AL)+6,AF一1,对低四位的调 整.(2) 若(AL) and 0F0H90H 或 CF=1, 则(AL)一(AL)+60H,CF一l.2. 示例:(AL