版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二、算术运算指令二、算术运算指令 8086有加减乘除四种基本算术运算指令。有加减乘除四种基本算术运算指令。可处理无符号数或带符号数的可处理无符号数或带符号数的8位或位或16位二位二进制数,也可以进行十进制数的运算。具体进制数,也可以进行十进制数的运算。具体有六种:有六种:u 1 1、加法指令、加法指令u 2 2、减法指令、减法指令u 3 3、乘法指令、乘法指令u 4 4、除法指令、除法指令u 5 5、符号扩展指令、符号扩展指令u 6 6、十进制调整指令、十进制调整指令4.2 8086/80884.2 8086/8088的指令集的指令集1 1 、加法指令、加法指令u涉及带符号数、无符号数,带符号
2、数均为补码涉及带符号数、无符号数,带符号数均为补码表示;表示; 8位带符号数:位带符号数:-128 +127; 8位无符号数:位无符号数:0 255; 16位带符号数:位带符号数:-32768 +32767; 16位无符号数:位无符号数:0 65535;u操作结果影响标志寄存器中的相应标志位。操作结果影响标志寄存器中的相应标志位。u加法指令共包含三类加法指令共包含三类:(1 1)加)加1 1指令指令 INCINC(2 2)不带进位加指令)不带进位加指令 ADDADD(3 3)带进位加指令)带进位加指令 ADCADC(1 1)不带进位的加法指令)不带进位的加法指令ADDADD 指令格式:指令格式
3、: ADD destADD dest,srcsrc;destdest dest + srcdest + src 指令功能:指令功能: 将目的操作数与源操作数相加,结果存将目的操作数与源操作数相加,结果存入目的操作数中,源操作数的内容不改变。入目的操作数中,源操作数的内容不改变。 指令规范指令规范:u ADD ADD 指令可以实现字节或字的不带进位的加指令可以实现字节或字的不带进位的加; 但是相加的数必须是等字长的但是相加的数必须是等字长的。 例:例:ADD AX,2000H ; AX+2000HAX ADD AL,BL ;AL+BL ALu 目的操作数可以是通用寄存器或存储器目的操作数可以是通
4、用寄存器或存储器; 源操作数可以是通用寄存器源操作数可以是通用寄存器、存储器或立即数存储器或立即数; 但是目的操作数与源操作数不能同时为存储器但是目的操作数与源操作数不能同时为存储器。 ADD BX,SI ;u ADD ADD 指令会影响标志寄存器的内容指令会影响标志寄存器的内容。 例例1 1:ADD WORD PTR BX,9F76H设设DS=2000HDS=2000H,BX=1000HBX=1000H,则目的物理地址,则目的物理地址=21000H =21000H ; 设设执行前执行前(21000H)=88H(21000H)=88H, (21001H)=A9H(21001H)=A9H;执行过
5、程执行过程: 1010100110001000B =A988H 1001111101110110B =9F76H 1 0100100011111110B =48FEH 执行后执行后(21000H)=FEH,(21001H)=48H(21000H)=FEH,(21001H)=48H; 标志位标志位: CF=1,最高位产生进位最高位产生进位; OF=1OF=1,两负数相加,和为正,两负数相加,和为正, 结果是错的,说明溢出结果是错的,说明溢出; ZFZF、SFSF、PFPF和和AFAF全为零。全为零。(2 2)带进位加指令)带进位加指令ADCADC 指令格式:指令格式: ADC destADC d
6、est,srcsrc;destdest dest+src+CFdest+src+CF 指令功能:指令功能: 将目的操作数加源操作数,再加前面指令将目的操作数加源操作数,再加前面指令产生的进位,结果送目的操作数。产生的进位,结果送目的操作数。u 指令规范同指令规范同ADD ADD 指令;指令;u 带进位加法指令带进位加法指令ADCADC常用于多字节数的运算常用于多字节数的运算例例2:求两个求两个4字节无符号数字节无符号数 0107A379H+10067E4FH的和。的和。法法1:程序段:程序段: MOV DX,0107HMOV AX,0A379HMOV BX,1006HMOV CX,7E4FHA
7、DD AX,CXADC DX,BXHLT结果:结果:(DX:AX)= 110E21C8H0 1 0 7 A379H1 0 0 6 7E4FH+ 1 1 0 E 21C8H、例例2:求两个求两个4字节无符号数字节无符号数 0107A379H+10067E4FH的和。(的和。(续续)法法2:程序段:程序段: LEA BX,DA1LEA SI,DA2MOV AX,BXADD AX,SIMOV DX,BX+2ADC DX,SI+2HLTA3H07H01H79H10H06H7EH4FHDA1DA2(3 3)加)加1 1指令指令INCINC指令格式:指令格式: INC OPR INC OPR ;OPROP
8、R+1OPROPR+1指令功能:指令功能: 将目的操作数加将目的操作数加1 1,结果送目的操作数。,结果送目的操作数。uINCINC指令是一个单操作数指令,操作数可以指令是一个单操作数指令,操作数可以是是寄存器或存储器寄存器或存储器操作数。操作数。u可以为字节操作或字操作可以为字节操作或字操作。u加加1指令不影响指令不影响CF标志。标志。 例:设例:设BX=1234HBX=1234H,执行指令,执行指令 INC BX INC BX ; 结果结果:BX=1235Hu加加1 1指令可用于对计数器和地址指针进行修改。指令可用于对计数器和地址指针进行修改。INC ALINC AL;AL+1ALAL+1
9、ALINC CXINC CX;CX+1CXCX+1CXINC BYTE PTR BX+DI+2INC BYTE PTR BX+DI+2 ;(DS(DS* *16+BX+DI+2)+1(DS16+BX+DI+2)+1(DS* *16+BX+DI+2)16+BX+DI+2)(1 1)不带借位的减指令)不带借位的减指令 SUBSUB(2 2)带借位减指令)带借位减指令 SBBSBB(3 3)减)减1 1指令指令 DECDEC(4 4)求补指令)求补指令 NEGNEG(5 5)比较指令)比较指令 CMPCMP2、减法指令减法指令(1 1)不带借位的不带借位的减指令减指令SUBSUB 指令格式:指令格式
10、: SUB destSUB dest,srcsrc;destdest dest - srcdest - src 指令功能:指令功能: 目的操作数减源操作数,结果存于目的操作目的操作数减源操作数,结果存于目的操作数,源操作数内容不变;数,源操作数内容不变;u指令规范同指令规范同ADD ADD 指令;指令;u例:减法运算。例:减法运算。MOV AX MOV AX ,5678H5678H ;AX=5678HAX=5678HSUB AX SUB AX ,1234H1234H ;AX=4444HAX=4444HMOV BX MOV BX ,3354H3354H ;BX=3354HBX=3354HSUB
11、BX SUB BX ,3340H3340H ;BX=0014HBX=0014H 例例3:SUB DH,BP+4设设SS=4000H,BP=00E8H,物理地址,物理地址=400ECH;执行前:执行前:DH=45H,(400ECH)=87H;执行后:执行后:DH=BEH; 标志位:标志位: 最高位产生借位,最高位产生借位,CF=1; ZF=0,SF=1,AF=1,PF=1; 正数减负数等于负数,结果为负,错正数减负数等于负数,结果为负,错。原因是原因是69+121=190 +127, 则则OF=1,溢出;,溢出;u如果表示数的运算范围受到限制如果表示数的运算范围受到限制,可以扩展成可以扩展成16
12、位字运算,位字运算,结果就正确。结果就正确。 45H87H BEH、(2 2)带借位减指令)带借位减指令 SBBSBB 指令格式:指令格式: SBB destSBB dest,srcsrc;destdest dest srcdest src - CF - CF 指令功能:指令功能: 目的操作数减源操作数再减低位借位目的操作数减源操作数再减低位借位CFCF,结果送目的操,结果送目的操作数,源操作数内容不变。作数,源操作数内容不变。u指令规范同指令规范同ADDADD指令;指令;u主要用于多字节(字)减法运算中。主要用于多字节(字)减法运算中。u例:例: SUB AXSUB AX,BXBX SBB
13、DX SBB DX,CXCXDX AXCX BX DX AX、(3 3)减)减1 1指令指令DECDEC 指令格式:指令格式: DEC OPR DEC OPR ; OPR OPR OPR-1OPR-1 指令功能:指令功能: 将目的操作数减将目的操作数减1 1,结果送目的操作数。,结果送目的操作数。uDECDEC指令是一个单操作数指令,操作数可以是指令是一个单操作数指令,操作数可以是寄存器或存储器操作数。寄存器或存储器操作数。u可以为字节操作或字操作可以为字节操作或字操作。u减减1指令不影响指令不影响CF标志。标志。 例例4 4: 设设 CX=100CX=100,执行指令,执行指令 DEC CX
14、 DEC CX ;CXCXCXCX1 1 结果结果:CX=99u减减1 1指令指令DECDEC也一般用于对计数器和地址指针也一般用于对计数器和地址指针的修改。的修改。DEC AXDEC CLDEC WORD PTR SI(4 4)求补指令)求补指令NEGNEG 指令格式:指令格式: NEG OPR NEG OPR ;OPR OPR OPR OPR 指令功能:指令功能: 将目的操作数的每一位求反(包括符号将目的操作数的每一位求反(包括符号位)位),然,然后末位加后末位加1 1,结果送目的操作数。,结果送目的操作数。uNEGNEG指令实现带符号数的求补操作;实际上指令实现带符号数的求补操作;实际上
15、执行的是执行的是 0 0 OPR OPR OPR OPR 。uNEGNEG指令影响标志位指令影响标志位。若操作数为零时,若操作数为零时,CF=0;否则;否则,CF=1;若字节操作数为若字节操作数为-128(80H)、字操作数为)、字操作数为-32768(8000H),求补后值不变,但),求补后值不变,但OF=1。例例5 5:分析下面求补运算指令段的执行结果。分析下面求补运算指令段的执行结果。MOVMOVAXAX,0FF64H0FF64HNEGNEGALAL ;AX=0FF9CHAX=0FF9CH,CF=1CF=1SUBSUBALAL,9DH9DH ;AX=0FFFFHAX=0FFFFH,CF=
16、1CF=1NEGNEGAXAX ;AX=0001HAX=0001H,CF=1CF=1DECDECALAL ;AX=0000HAX=0000HNEGNEGAXAX ;AX=0000HAX=0000H,CF=0CF=0(5)比较指令)比较指令 CMP 指令格式:指令格式: CMP destCMP dest,srcsrc ; dest srcdest src , ;并;并置标志位置标志位 指令功能:指令功能: 目的操作数减源操作数,根据结果置相目的操作数减源操作数,根据结果置相应标志位,应标志位, destdest,srcsrc的值不变。的值不变。udestdest,srcsrc的规定同的规定同AD
17、DADD指令中的操作数;指令中的操作数;u比较指令设置标志位,由条件转移指令检测比较指令设置标志位,由条件转移指令检测决定是否转移。决定是否转移。u例例6:比较比较ALAL内容与内容与5050的大小的大小,若,若AL=50AL=50,则则AHAH的内容加的内容加1 1;否则,;否则,AH=0。程序段:程序段: CMP ALCMP AL,50 50 ;ALAL5050 JB BELOW JB BELOW ;AL50AL=50AL=50,AH+1AHAH+1AH JMP LOOPJMP LOOPBELOWBELOW:MOV AHMOV AH,00H 00H ;AH=0AH=0 LOOP LOOP:
18、HLTHLT 根据操作数是无符号数还是有符号数判断如下:根据操作数是无符号数还是有符号数判断如下:(1)两个无符号数)两个无符号数A和和B的比较(的比较(AB)当当A=B时,时,ZF=1;当当AB时,时,ZF=0;当当AB时,时,CF=0; 可用可用ZF和和CF标志位来确定标志位来确定当当AB时,时,CF=1;(2)两个带符号数)两个带符号数A和和B的比较(的比较(AB) 当当AB时,时,OF=SF=0或或1,即,即OF SF=0; 当当A2051H2052H ALNYMAXAL2051H MOV AL,2050H CMP AL,2051H JG MAX MOV AL,2051HMAX :MO
19、V 2052H,AL;AL大时大时 SF0;如果如果 SF=0则转则转MAX3 3、乘法运算指令乘法运算指令(1 1)无符号数乘法指令)无符号数乘法指令MULMUL(2 2)带符号数乘指令)带符号数乘指令IMULIMUL(1 1)无符号数乘法指令)无符号数乘法指令MULMUL 指令格式:指令格式: MUL srcMUL src ;隐含寻址;隐含寻址,对字或字节的乘法,对字或字节的乘法 指令功能:指令功能: 字节乘法:字节乘法:AXAXAL srcsrc (8位位) , 若若AH AH 0 0, 则则CF=OF=1CF=OF=1 字乘法:字乘法: DXDX:AX AX AX AX srcsrc
20、(16位位) , 若若DX DX 0 0,则,则CF=OF=1CF=OF=1 u例例8 8:无符号数无符号数0A3H0A3H与与11H11H相乘。相乘。MOVMOVALAL,0A3H0A3H;AL=0A3HAL=0A3HMOVMOVBLBL, 11H11H;BL=11HBL=11HMULMULBLBL ;AX=0AD3HAX=0AD3H说明:说明:u源操作数源操作数src不能是立即数和段寄存器;不能是立即数和段寄存器; MUL 03H u当当src是存储单元时,必须在操作数之前是存储单元时,必须在操作数之前加上属性说明。加上属性说明。uCF=OF=1,表明结果的高半部分不为,表明结果的高半部分
21、不为0。u乘法指令不影响其他标志位。乘法指令不影响其他标志位。(2 2)带符号数乘法指令)带符号数乘法指令IMULIMUL 指令格式:指令格式: IMUL srcIMUL src ;B/W B/W ,隐含寻址,隐含寻址 指令功能:指令功能: 字节乘法:字节乘法:AXAXAL srcsrc (8位位) , 若若AH AH 0 0,则,则CF=OF=1CF=OF=1 字乘法:字乘法: DXDX:AX AX AX AX srcsrc (16位位) , 若若DX DX 0 0,则,则CF=OF=1CF=OF=1 uIMULIMUL指令除运算对象是带符号二进制数指令除运算对象是带符号二进制数( (补码补
22、码) )外,其他都与外,其他都与MULMUL一样。一样。usrcsrc是寄存器或存储单元的内容。是寄存器或存储单元的内容。例例9 9:带符号数带符号数0B4H0B4H与与11H11H相乘。相乘。 MOV ALMOV AL,0B4H0B4H;AL=B4HAL=B4H MOV MOV BL BL,11H11H ;BL=11HBL=11H IMUL BL IMUL BL ;AX=0FAF4HAX=0FAF4H 说明:说明:l 若结果的高若结果的高8 8位为全位为全0 0或全或全1 1,表明是低,表明是低8 8位的符号位的符号位扩展位扩展;l 带符号数的乘法,应先处理符号,然后用原码计带符号数的乘法,
23、应先处理符号,然后用原码计算结果。算结果。例例1010:设设 AL=FFHAL=FFH,DL=02HDL=02H,执行指令,执行指令 MULMUL DL DL ; AX AX AL ALDLDL 即即:AX AX FFH FFH02H=25502H=25502 02 =510 =510 = 01FEH= 01FEH 执行指令执行指令 IMULIMUL DL DL ;AX AX AL ALDLDL 即即:AX AX FFHFFH02H = 02H = 1 10202 = 2 2 =FFFEH=FFFEH 4 4 、除法运算指令除法运算指令(1 1)无符号数除指令)无符号数除指令DIVDIV(2
24、2)带符号数除指令)带符号数除指令IDIVIDIV(1 1)无符号除指令)无符号除指令DIVDIV指令格式:指令格式: DIV srcDIV src ;B/W B/W ,隐含寻址,隐含寻址指令功能:指令功能: 字节除法:字节除法:AX/ (srcAX/ (src) ) 8 8 AL( AL(商商) ) ,AH(AH(余数余数) ) 字除法:字除法:(DX(DX:AX)/ (srcAX)/ (src ) )1616 AX( AX(商商) ) , DX(DX(余数余数) )u完成两个不带符号的二进制数除;完成两个不带符号的二进制数除;usrcsrc是寄存器或存储单元的内容是寄存器或存储单元的内容,
25、不能是立即数,不能是立即数;u运算结果只影响溢出标志运算结果只影响溢出标志OFOF,当除数为,当除数为0 0或或AL(AX)AL(AX)中的商大于中的商大于FFH(FFFFH)FFH(FFFFH)时,时,OF=1OF=1。 例例1111:写出实现无符号数写出实现无符号数0400H/0B4H0400H/0B4H运运算的程序段。算的程序段。MOVMOV AXAX,0400H 0400H ;AX=0400HAX=0400HMOVMOV BLBL,0B4H0B4H ;BL=0B4HBL=0B4HDIVDIV BLBL ;商;商AL=05HAL=05H, ;余数余数AH=7CHAH=7CH(2 2)带符
26、号数)带符号数除指令除指令IDIVIDIV 指令格式:指令格式: IDIV srcIDIV src ;B/W B/W ,隐含寻址,隐含寻址 指令功能:指令功能: 字节除法:字节除法:AX/ srcAX/ src AL( AL(商商) ),AH(AH(余数余数) ); 字除法:字除法:DXDX,AX/ srcAX/ src AX( AX(商商) ) , DX( DX(余数余数) );u除法指令除法指令DIVDIV和和IDIVIDIV虽然对标志的影响未定义,虽然对标志的影响未定义,但可产生溢出。但可产生溢出。例例1212:带符号数带符号数0400H /0B4H0400H /0B4H运算的程序段。运
27、算的程序段。MOVMOV AX AX,0400H0400H;AX=0400HAX=0400HMOVMOV BX BX,0B4H0B4H;BX=0B4HBX=0B4HIDIVIDIV BX BX ;AL=0F3HAL=0F3H, ;AH=24HAH=24H说明说明:带符号数的除法,也是先处理符号,然带符号数的除法,也是先处理符号,然后用原码计算结果。后用原码计算结果。u完成两个带符号数的二进制数相除,商和余完成两个带符号数的二进制数相除,商和余数均为带符号数;数均为带符号数;usrc规定同规定同MUL;u除法结果不影响标志寄存器中相应位,为除法结果不影响标志寄存器中相应位,为0或或1,无意义;,
28、无意义;u商超出商超出AL(8位除位除)或或AX(16位除位除)所能表示范所能表示范围,此时除数为围,此时除数为0处理,产生零号中断,所处理,产生零号中断,所得商和余数均无效;得商和余数均无效;u当当8位位/8位、位、16位位/16位时,应进行符号位扩位时,应进行符号位扩展,否则得到错误结果。展,否则得到错误结果。5 5 、符号扩展指令、符号扩展指令(1 1)字节扩展成字指令)字节扩展成字指令CBWCBW(2 2)字扩展成双字指令)字扩展成双字指令CWDCWD 适用于带符号数除法运算适用于带符号数除法运算,当被除数,当被除数的位数不够除时。的位数不够除时。(1 1)字节扩展成字指令)字节扩展成
29、字指令CBWCBW 指令格式:指令格式:CBW CBW ;若;若AL80H,AH=FFH 指令功能:将指令功能:将ALAL中的符号位数据扩展至中的符号位数据扩展至AHAH。u例例1313:将字节数据扩展成字数据。将字节数据扩展成字数据。MOVMOVALAL,0A5H0A5H;AL=0A5HAL=0A5HCBWCBW ;AX=0FFA5H,AH=0FFHAX=0FFA5H,AH=0FFHADDADDALAL,70H70H;AL=25HAL=25HCBWCBW;AX=0025H,AH=00HAX=0025H,AH=00H(2 2)字扩展成双字指令)字扩展成双字指令CWDCWD 指令格式:指令格式:
30、CWD CWD ;若;若AXAX8000H8000H,DX=0000HDX=0000H ;若;若AXAX8000H8000H,DX=FFFFHDX=FFFFH 指令功能:将指令功能:将AXAX中的符号位数据扩展至中的符号位数据扩展至DXDX。u例例1414:将字数据扩展成双字数据。将字数据扩展成双字数据。MOV AXMOV AX,0FFABH 0FFABH ;AX=0FFABHAX=0FFABH MOV BX MOV BX,6543H 6543H ; CWDCWD ;DX=0FFFFHDX=0FFFFH,AX=0FFABHAX=0FFABH IDIV BX IDIV BX ;(DX(DX:AX
31、)/BXAX)/BX例例15:求求(V-(X*Y+Z -540)/X,其中,其中X、Y、Z、V均为均为16位带符号数,已分别装入位带符号数,已分别装入X、Y、Z、V字单元中,结果的商放字单元中,结果的商放AX中,余数放中,余数放DX中。中。MOV AX,X SUB CX,540IMUL Y SBB BX,0MOV CX,AX MOV AX,VMOV BX,DX CWDMOV AX,ZSUB AX,CXCWDSBB DX,BXADD CX,AX IDIV XADC BX,DX HLT6 6 、十进制调整指令十进制调整指令u算术运算指令都是二进制数的运算,十进算术运算指令都是二进制数的运算,十进制
32、输入制输入二进制运算二进制运算 十进制输出。十进制输出。u计算机中的十进制数实际上是十进制数的计算机中的十进制数实际上是十进制数的二进制编码。通称为二二进制编码。通称为二十进制或十进制或BCD码。常用码。常用8421BCD码。码。u对应表对应表:十进制数十进制数 BCD码码 十进制数十进制数 BCD码码0 0000 5 01011 0001 6 01102 0010 7 01113 0011 8 10004 0100 9 1001u压缩压缩BCDBCD码:一个字节表示两位十进制数。码:一个字节表示两位十进制数。 例例: 8759D: 8759D压缩压缩BCDBCD码为码为8759H8759Hu
33、非压缩非压缩BCDBCD码:一个字节表示一位十进制数,码:一个字节表示一位十进制数,其中低四位表示其中低四位表示84218421的的BCDBCD码,高四位为码,高四位为00000000,没有意义。没有意义。 例例: 8759D: 8759D非压缩非压缩BCDBCD码为码为08070509H08070509H(1 1)压缩)压缩BCDBCD码加法十进制调整指令码加法十进制调整指令 指令格式:指令格式:DAADAA 指令功能:指令功能: ALAL寄存器的值调整成压缩的寄存器的值调整成压缩的BCDBCD码格式。码格式。u低低4 4位大于位大于9 9或辅助进位或辅助进位AF=1AF=1,则,则AL=A
34、L+6AL=AL+6且且AF=1AF=1;u如果如果AL=0A0HAL=0A0H或或CF=1CF=1,则,则AL=AL+60HAL=AL+60H且且CF=1CF=1。u用在用在ADDADD、ADCADC指令之后。指令之后。u结果均影响结果均影响SFSF、ZFZF、PFPF。u例例1616:压缩压缩BCDBCD码的加法运算。码的加法运算。MOV ALMOV AL,68H68H ;AL=68HAL=68H,6868的压缩的压缩BCDBCD码码MOV BLMOV BL,28H28H ;BL=28HBL=28H,2828的压缩的压缩BCDBCD码码 ADD ALADD AL,BLBL ;二进制加法;二
35、进制加法, ;AL=68H+28H=90HAL=68H+28H=90HDAADAA ;十进制调整;十进制调整, ;实现压缩;实现压缩BCDBCD码加法码加法 68+28=9668+28=960110100001101000 00101000001010001001000010010000二进制加法二进制加法0000011000000110十进制调整十进制调整10010000100100001001011010010110(2 2)压缩)压缩BCDBCD码减法十进制调整指令码减法十进制调整指令 指令格式:指令格式:DASDAS 指令功能:指令功能: ALAL中的值调整到压缩中的值调整到压缩BCD
36、BCD码格式码格式u如果如果ALAL寄存器中低寄存器中低4 4位大于位大于9 9,则,则AL=ALAL=AL6 6且且AF=1AF=1;u如果如果AL=0A0HAL=0A0H或或CF=1CF=1,则,则AL=ALAL=AL60H60H且且CF=1CF=1;u用在用在SUBSUB、SBBSBB指令之后。指令之后。u均影响均影响SFSF、ZFZF、PFPF。u例例1717:压缩压缩BCDBCD码的减法运算。码的减法运算。MOV ALMOV AL,68H 68H ;AL=68HAL=68H,6868的压缩的压缩BCDBCD码码MOV BLMOV BL,29H 29H ;BL=29HBL=29H,29
37、29的压缩的压缩BCDBCD码码SUB ALSUB AL,BL BL ;二进制减法;二进制减法, ;AL=68H-29H=3EHAL=68H-29H=3EHDAS DAS ;十进制调整;十进制调整, ;实现压缩;实现压缩BCDBCD码减法:码减法: ;68-29=3968-29=39例例18: 18: 编程计算编程计算 1+2+3+4+ 1+2+3+4+ + +1010 MOV AL,0 MOV CL,10 MOV CH,0NEXT:ADD AL,CL DAA ; DEC CL JNZ NEXT ; HLT程序中将程序中将DAADAA指令去掉,最后指令去掉,最后ALAL结果是?结果是? 对对A
38、L调整为十进制调整为十进制数数结果结果 AL= 55 H(即十进制数(即十进制数55)AL清清0AL AL+CL调整为十进制数调整为十进制数CL CL -1CL=0NYCX10,计数初值,计数初值结束结束CL 0 转转NEXT例例19:求求(BCD1)+(BCD2) (BCD3)设设(BCD1)=1834,(BCD2)=2789。程序:程序:MOV AL,BCD1 ADD AL,BCD2 DAA MOV BCD3,AL MOV AL,BCD1+1 ADC AL,BCD2+1 DAA MOV BCD3+1,AL HLT(3)非压缩的)非压缩的BCD码加法调整码加法调整 (加法的(加法的ASCII
39、调整指令)调整指令) 格式:格式:AAA 操作:操作:AL AL中的内容调整为非压缩的中的内容调整为非压缩的BCD码格式码格式AH AH+调整产生的进位调整产生的进位调整方法:调整方法:如果如果AL的低的低4位大于位大于9或或AF=1,则:,则: 1)AL AL+6;2)AL高高4位清位清0 3)CF AF=1,AH AH+1;否则仅否则仅使使AL的高的高4位清位清0例例20:MOV AL,8 ;AL 38HADD AL,4 ;AL38H+34H=6CHAAA ;AL 6CH+6=72H02H ;AH 01H结果:结果:8+4=12(4)非压缩的)非压缩的BCD码的减法调整码的减法调整 (减法
40、的(减法的ASCII调整指令)调整指令) 格式:格式:AAS 操作:操作:AL AL中的内容调整为非压缩的中的内容调整为非压缩的BCD码格式码格式AH AH-调整产生的进位调整产生的进位调整方法:调整方法:如果如果AL的低的低4位大于位大于9或或AF=1,则:,则: 1)AL AL-6;2)AL高高4位清位清0 3) CF 1,AH AH-1;否则仅否则仅使使AL的高的高4位清位清0 例例21: MOV AL,8 ; AL 38H SUB AL,4 ;AL 38H-34H AAS ;AL 04H 结果:结果:8 4=4 (5)乘法的十进制调正指令乘法的十进制调正指令AAM 对对AXAX中由两个非压缩中由两个非压缩BCDBCD码相乘的结果进行码相乘的结果进行调整。调整操作为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《建筑采光分析》课件
- 2015年重庆市B卷中考满分作文《我们携手走进未来》2
- 音乐课件-梁山伯与祝英台
- 《半导体封装流程》课件
- 《空气的热湿处理》课件
- 建筑工程BOT项目合同模板
- 生态园户外广告牌施工合同
- 军队宿舍卫生就餐管理规定
- 《肾病综合征后》课件
- 农村房屋建筑合同
- 城市智慧管廊设计方案
- 中心静脉压cvp监测
- 骨科住院患者的应急预案
- SYT 0447-2014《 埋地钢制管道环氧煤沥青防腐层技术标准》
- 我的家乡湖南
- JTT 1180.13-2018 交通运输企业安全生产标准化建设基本规范第3部分
- 冬虫夏草菌丝体与冬虫夏草的本质区别
- 幼儿园大班语言活动-火警电话119
- 仰望古老的中国文化作文900字
- 智慧海洋学习通超星课后章节答案期末考试题库2023年
- 《遥感导论》全套课件
评论
0/150
提交评论