AAA未组合的十进制加法调整指令
AAA(ASCII Adgust for Addition)
格式:AAA
功能:对两个组合的十进制数相加运算
(存在AL中)的结果进行调整,产生一个
未组合的十进制数放在AX中.说明:
1.组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD码.
当一个节(8位)中存放一位BCD码,且放在字节的低4位,高4位为时称为未组合的BCD码.
2.AAA的调整操作
若(AL)and0FH>9或AF=1,则调整如下:
(AL)<--(AL)+6,(AH)<--(AH)+1,AF=1, CF<--AF,(AL)<--(AL)and0FH
AAD未组合十进制数除法调整指令
AAD(ASCII Adjust for Division)
格式:AAD
功能:在除法指令前对AX中的两个未组
合十进制数进行调整,以便能用DIV指令
实现两个未组合的十进制数的除法运
暗笑算,其结果为未组合的十进制数,商(在
AL中)和余数(在AH中).说明:
1.AAD指令是在执行除法DIV之前使用的,以便得到二进制结果存于AL中,然后除以OPRD,得到的商在AL中,余数在AH中.
2.示例:MOV BL,5
MOV AX,0308H
AAD;(AL)<--1EH+08H=26H,(AH)<--0 DIV BL;商=07H-->(AL),余数=
03H-->(AH).
AAM未组合十进制数乘法调整指令
AAM(ASCII Adjust MULtiply)
格式:AAM
功能:对两个未组合的十进制数相乘后医保卡挂失
存于AX中的结果进行调整,产生一个未
组合的十进制数存在AL中.说明:
1.实际上是两个未组合的十进制数字节相乘,一个0~9的数与另一个0~9的数相乘其积最大为81.为了得到正确的结果,应进行如下调整:
鲁色乘积:(AH)<--(AL)/10
(AL)<--(AL)MOD10
2.本指令应跟在MUL指令后使用,乘积的两位十进制结果,高位放在AH中,低位放在AL中.AH内容是MUL指令的结果被10除的商,即(AL)/10,而最后的AL内容是乘积被10整除的余数(即个位数).
AAS未组合十进制减法调整指令AAS(ASCII Adjust for Subtraction)说明:
1.本指令影响标志位CF及AF.
格式:AAS
功能:对两个未组合十进制数相减后存于AL中的结果进行调整,调整后产生一个未组合的十进制数数且仍存于AL中.2.调整操作
若(AL)and0FH>9或AF=1
则
(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL)and0FH,
否则(AL)<--(AL)and0FH
ADC带进位加法指令ADC(Addition Carry)格式: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)
格式:ADD OPRD1,OPRD2
功能:两数相加说明:
1.OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,
而且还可以是任意一个存储器操作数. OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.
2.OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器
操作数.
3.加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.加法指令适用于无符号数或有符号数的加法运算.
AND逻辑与运算指令AND
格式:AND OPRD1,OPRD2
功能:对两个操作数实现按位逻辑与运
算,结果送至目的操作数.本指令可以进
行字节或字的‘与’运算,
OPRD1<--OPRD1and OPRD2.说明:
曹操名言1.目的操作数OPRD1为任一通用寄存器或存储器操作数.源操作数OPRD2为立即数,任一通用寄存器或存储器操作数.
2.示例:AND AL,0FH;(AL)<--(AL) AND0FH
AND AX,BX;(AX)<--(AX)AND(BX) AND DX,BUFFER[SI+BX]
AND BETA[BX],00FFH
注意:两数相与,有一个数假则值为假
CALL过程调用指令CALL
格式:CALL OPRD
功能:过程调用指令说明:
1.其中OPRD为过程的目的地址.
2.过程调用可分为段内调用和段间调用两种.寻址方式也可以分为直接寻址和间接寻址两种.
3.本指令不影响标志位.
烧存性CBW字节扩展指令CBW(Convert Byte to
Word)
格式:CBW
功能:将字节扩展为字,即把AL寄存器
的符号位扩展到AH中.说明:
1.两个字节相除时,先使用本指令形成一个双字节长的被除数.
2.本指令不影响标志位.
3.示例:MOV AL,25
CBW
IDIV BYTE PTR DATA1
CLC处理器控制指令-标志位操作指令
格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(Not CF)进位标志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止响应外部中断
STI;置IF=1,使CPU允许向应外部中断
功能:完成对标志位的置位、复位等操
作.说明:例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.
CLD处理器控制指令-标志位操作指令
格式:
我的大学生活规划
CLC;置CF=0
STC;置CF=1
CMC;置CF=(Not CF)进位标志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止响应外部中断
STI;置IF=1,使CPU允许向应外部中断
功能:完成对标志位的置位、复位等操
作.说明:例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.
CLI处理器控制指令-标志位操作指令格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(Not CF)进位标志求反说明:例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止响应外部中断STI;置IF=1,使CPU允许向应外部中断功能:完成对标志位的置位、复位等操作.
CMC处理器控制指令-标志位操作指令
格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(Not CF)进位标志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止响应外部中断
STI;置IF=1,使CPU允许向应外部中断
功能:完成对标志位的置位、复位等操
作.说明:例如串操作中的程序,经常用CLD指令清方向标志使DF=0,在串操作指令执行时,按增量的方式修改吕指针.
CMP比效指令CMP(CoMPare)
格式:CMP OPRD1,OPRD2
功能:对两数进行相减,进行比较.说明:
1.OPRD1为任意通用寄存器或存储器操作数.
OPRD2为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD2.
2.对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRD1-OPRD2的结果送回OPRD1,而只是比较.
3.在8088/8086指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令.
CMPS字符串比较指令
格式:CMPS OPRD1,OPRD2
CMPSB
CMPSW
功能:由SI寻址的源串中数据与由DI
寻址的目的串中数据进行比较,比较结
果送标志位,而不改变操作数本身.
同时SI,DI将自动调整.说明:
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址.
2.本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.
3.与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.
CMPSB字符串比较指令
格式:CMPS OPRD1,OPRD2
CMPSB
CMPSW 说明:
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址.
2.本指令影响标志位AF、CF、OF、SF、
功能:由SI寻址的源串中数据与由DI 寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身.
同时SI,DI将自动调整.PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.
3.与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.
CMPSW字符串比较指令
格式:CMPS OPRD1,OPRD2
CMPSB
CMPSW
功能:由SI寻址的源串中数据与由DI
寻址的目的串中数据进行比较,比较结
果送标志位,而不改变操作数本身.
同时SI,DI将自动调整.说明:
1.其中OPRD2为源串符号地址,OPRD1为目的串符号地址.
2.本指令影响标志位AF、CF、OF、SF、PF、ZF.本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较.
3.与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较.
CWD字扩展指令CWD(Convert Word to北风呼呼
Double Word)
格式:CWD
功能:将字扩展为双字长,即把AX寄存
器的符号位扩展到DX中.说明:
1.两个字或字节相除时,先用本指令形成一个双字长的的被除数.
2.本指令不影响标志位.
3.示例:在B1、B2、B3字节类型变量中,分别存有8们带符号数a、b、c,实现(a*b+c)/a运算。
DAA组合的十进制加法调整指令
DAA(Decimal Adjust for Addition)
格式:DAA
功能:对AL中的两个组合进制数相加的
结果进行调整,调整结果仍放在AL中,进
位标志放在CF中.说明:
1.调整操作如下
(1)若(AL)and0FH>9或AF=1,则(AL)<--(AL)+6,AF<--1,对低四位的调整.
(2)若(AL)and0F0H>90H或CF=1,则(AL)<--(AL)+60H,CF<--1.
2.示例:(AL)=18H,(BL)=06H
ADD AL,BL;(AL)<--(AL)+(BL); (AL)=1EH
DAA;(AL)
DAS组合十进制减法调整指令DAS(Decimal Adjust for Subtraction)
格式:DAS
功能:对两个组合十进制数相减后存于
AL中的结果进行调整,调整后产生一个
组合的十进制数且仍存于AL中.说明:
调整操作
胸肌训练若(AL)and0FH>9或AF=1,则(AL)<--(AL)-6,AF=1
若(AL)and0F0H>90H或CF=1,则(AL)<--(AL)-60,CF=1
DEC减一指令DEC(Decrement by1)格式:DEC OPRD 说明:
1.OPRD为寄存器或存储器操作数.