第3章_3 算术运算.ppt

上传人:hyn****60 文档编号:71572975 上传时间:2023-02-03 格式:PPT 页数:31 大小:1.04MB
返回 下载 相关 举报
第3章_3 算术运算.ppt_第1页
第1页 / 共31页
第3章_3 算术运算.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《第3章_3 算术运算.ppt》由会员分享,可在线阅读,更多相关《第3章_3 算术运算.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章第三章 指令系统指令系统三峡大学三峡大学陈慈发07176394358,128086CPU的指令格式的指令格式8086CPU的指令系统的指令系统38086CPU的寻址方式的寻址方式指令系统指令系统qq指令分类指令分类指令分类指令分类 数据传送指令数据传送指令 算术运算指令算术运算指令 逻辑运算与移位指令逻辑运算与移位指令 串操作指令串操作指令 控制转移指令控制转移指令 处理机控制指令处理机控制指令qq算术运算算术运算算术运算算术运算指令指令指令指令(2020条)条)条)条)实实实实现现现现加加加加法法法法、减减减减法法法法、乘乘乘乘法法法法、除除除除法法法法运运运运算算算算,包包包包括括括

2、括无无无无符符符符号号号号数数数数和和和和有有有有符符符符号号号号数数数数的的的的8 8位位位位和和和和1616位位位位二二二二进进进进制运算以及无符号数的制运算以及无符号数的制运算以及无符号数的制运算以及无符号数的BCDBCD码运算和码运算和码运算和码运算和BCDBCD码调整码调整码调整码调整 大部分大部分大部分大部分指令指令指令指令影响标志寄存器中的状态标志位影响标志寄存器中的状态标志位影响标志寄存器中的状态标志位影响标志寄存器中的状态标志位分分分分类类类类功能功能功能功能助助助助记记记记符格式符格式符格式符格式操作操作操作操作状状状状态标态标态标态标志位志位志位志位O S Z A P C

3、O S Z A P C加法加法加法加法(3 3条)条)条)条)加法加法加法加法带进带进位加位加位加位加加加加加1 1ADD ADD d d,s sADC ADC d d,s sINCINC d ddddds sdddds sCFCFdddd1 1-减法减法减法减法(5 5条)条)条)条)减法减法减法减法带带借位减借位减借位减借位减减减减减1 1取取取取补补比比比比较较SUB SUB d d,s sSBB SBB d d,s sDEC DEC d dNEG NEG d dCMP CMP d d,s sdddds sdddds sCFCFdddd1 1d0d0d dd ds s只影响只影响只影响只

4、影响标标志位志位志位志位-1 1乘法乘法乘法乘法(2 2条)条)条)条)无符号数乘法无符号数乘法无符号数乘法无符号数乘法有符号数有符号数有符号数有符号数乘法乘法乘法乘法MUL MUL s sIMULIMUL s sAXAAXALL s s(字(字(字(字节节运算),运算),运算),运算),DXDX:AXAAXAXX s s(字运算)(字运算)(字运算)(字运算)同同同同MULMUL,但操作数可,但操作数可,但操作数可,但操作数可带带符号符号符号符号除法除法除法除法(2 2条)条)条)条)无符号数除法无符号数除法无符号数除法无符号数除法有符号数有符号数有符号数有符号数除法除法除法除法DIVDIV

5、 s sIDIVIDIV s sAHAH:ALAX/sALAX/s(字(字(字(字节节运算),运算),运算),运算),ALAL放商,放商,放商,放商,AHAH放余数放余数放余数放余数DXDX:AXDXAXDX:AX/sAX/s(字运算),(字运算),(字运算),(字运算),AXAX放商,放商,放商,放商,DXDX放余数放余数放余数放余数同同同同DIVDIV,但操作数可,但操作数可,但操作数可,但操作数可带带符号符号符号符号符号符号符号符号扩扩扩扩展展展展(2 2条)条)条)条)字字字字节扩节扩节扩节扩展展展展为为为为字字字字字字字字扩扩扩扩展展展展为为为为双字双字双字双字CBWCBWCWDCW

6、DAX(AX(扩扩展展展展)AL)ALDXDX:AX(AX(扩扩展展展展)AX)AX-BCDBCD码调码调码调码调整整整整(6 6条)条)条)条)加法加法加法加法压缩压缩BCDBCD调调整整整整加法非加法非加法非加法非压缩压缩BCDBCD调调整整整整减法减法减法减法压缩压缩BCDBCD调调整整整整减法非减法非减法非减法非压缩压缩BCDBCD调调整整整整乘法非乘法非乘法非乘法非压缩压缩BCDBCD调调整整整整除法非除法非除法非除法非压缩压缩BCDBCD调调整整整整DAADAAAAAAAADASDASAASAASAAMAAMAADAAD将将将将ALAL内容内容内容内容转换转换成两位成两位成两位成两

7、位压缩压缩的的的的BCDBCD码码将将将将ALAL内容内容内容内容转换转换成一位非成一位非成一位非成一位非压缩压缩的的的的BCDBCD码码将将将将ALAL内容内容内容内容转换转换成两位成两位成两位成两位压缩压缩的的的的BCDBCD码码将将将将ALAL内容内容内容内容转换转换成一位非成一位非成一位非成一位非压缩压缩的的的的BCDBCD码码将将将将AXAX内容内容内容内容转换转换成两位非成两位非成两位非成两位非压缩压缩的的的的BCDBCD码码将将将将AXAX中两位非中两位非中两位非中两位非压缩压缩的的的的BCDBCD码调码调整成二整成二整成二整成二进进制数制数制数制数加法指令加法指令加法指令加法指

8、令1、不带进位加法指令、不带进位加法指令ADD 格式格式:ADD d,s 功能功能:(d)(d)(s)说明说明:将目的操作数将目的操作数d与源操作数与源操作数s相加结果送回相加结果送回d中中内内内内 存存存存立即数立即数立即数立即数AHAH,ALALBHBH,BLBLCHCH,CLCLDHDH,DLDLAXAX,BXBXCXCX,DXDXSISI,DIDIBPBP,SPSP【例】【例】【例】【例】ADDADDAXAX,BXBXADDADDCLCL,SISIADDADDBXDI-10HBXDI-10H,WORD PTR 80HWORD PTR 80HADDADDC CH H,ALALADDADD

9、BXBX,1 1ADDADDBYTE PTRBYTE PTR 20H 20H,20H20HADDADDALAL,30H30HADDADDBYTE PTR DIBYTE PTR DI,12H12Hl影响全部状态标志位影响全部状态标志位ld、s必须具有相同的字长必须具有相同的字长 ADD AX,BLld、s不能为段寄存器不能为段寄存器 ADD DS,2000Hld不能是立即数不能是立即数 ADD 10H,AX对状态标志位的影响对状态标志位的影响对状态标志位的影响对状态标志位的影响1 和的最高位向前有和的最高位向前有进位位0 否否则CF=1 结果果为负0 否否则SF=1 结果果为00 否否则ZF=1

10、 两个操作数符号相同,而两个操作数符号相同,而结果符号与之相反果符号与之相反0 否否则OF=1 和的和的D3位向位向D4位有位有进位位0 否否则AF=1 和和的低字的低字节中中1的个数的个数为偶数偶数0 否否则PF=2、带进位加法指令、带进位加法指令ADC(ADd by Carry)格式格式:ADC d,s 功能功能:(d)(d)(s)CF 说明说明:将目的操作数将目的操作数d与源操作数与源操作数s和进位标志和进位标志CF相加结果送回相加结果送回d中中【例】设【例】设【例】设【例】设AXAX1000H1000H,CFCF1 1,则,则,则,则ADDADDAXAX,100H100H;AXAX11

11、01100 0H HADADC CAXAX,100H100H;AXAX1101101 1H H,CFCF0 0ADCADCAHAH,0F0H0F0H;AHAH01H01H,CFCF1 13、加一指令、加一指令INC(INCrease)格式格式:INC d 功能功能:(d)(d)1 说明说明:将目的操作数将目的操作数d加加1后后结果送回结果送回d中中【例】设【例】设【例】设【例】设AXAX0FF00H0FF00H,CFCF0 0,则,则,则,则INCINCAXAX;AXAX0FF01H0FF01HINCINCAHAH;AHAH00H00H,CFCF0 0lADC影响全部状态标志位影响全部状态标志

12、位lINC不影响不影响CF标志标志【例】【例】【例】【例】双字加法。设双字加法。设双字加法。设双字加法。设(DX)=0002H,(AX)=0F365H,(BX)=0005H,(CX)=0E024H,求求(DX):(AX)(BX):(CX)=?AXF 3 6 5 HCXE 0 2 4 HADDAXD 3 8 9 HCF1DX 0 0 0 2 HBX 0 0 0 5 HADCDX0 0 0 8 HCF0CF=1指令序列:指令序列:(1)ADD AX,CX(2)ADC DX,BX(DX):(AX)+(BX):(CX)0002 F365H0005 E024H0008 D389H(DX):(AX)问:指

13、令执行完后各状态标志位如何?问:指令执行完后各状态标志位如何?问:指令执行完后各状态标志位如何?问:指令执行完后各状态标志位如何?CF CF AF AF ZF ZF PF PF SF SF OF OFDEBUGDEBUG演示演示演示演示减法指令减法指令减法指令减法指令4、不带进位减法指令、不带进位减法指令SUB 格式格式:SUB d,s 功能功能:(d)(d)(s)说明说明:将目的操作数将目的操作数d与源操作数与源操作数s相相减减结果送回结果送回d中中内内内内 存存存存立即数立即数立即数立即数AHAH,ALALBHBH,BLBLCHCH,CLCLDHDH,DLDLAXAX,BXBXCXCX,D

14、XDXSISI,DIDIBPBP,SPSP【例】【例】【例】【例】SUBSUBAXAX,BXBXSUBSUBCLCL,SISISUBSUBBXDI-10HBXDI-10H,WORD PTR 80HWORD PTR 80HSUBSUBC CH H,ALALSUBSUBBXBX,1 1SUBSUBBYTE PTRBYTE PTR 20H 20H,20H20HSUBSUBALAL,30H30HSUBSUBBYTE PTR DIBYTE PTR DI,12H12Hl影响全部状态标志位影响全部状态标志位ld、s必须具有相同的字长必须具有相同的字长 SUB AX,BLld、s不能为段寄存器不能为段寄存器

15、SUB DS,2000Hld不能是立即数不能是立即数 SUB 10H,AX对状态标志位的影响对状态标志位的影响对状态标志位的影响对状态标志位的影响1 最高位向前有最高位向前有借位借位0 否否则CF=1 结果果为负0 否否则SF=1 结果果为00 否否则ZF=1 两个操作数符号相同,而两个操作数符号相同,而结果符号与之相反果符号与之相反0 否否则OF=1 D3位向位向D4位有位有借位借位0 否否则AF=1 差差的低字的低字节中中1的个数的个数为偶数偶数0 否否则PF=5、带进位减法指令、带进位减法指令SBB 格式格式:SBB d,s 功能功能:(d)(d)(s)CF 说明说明:将目的操作数将目的

16、操作数d与源操作数与源操作数s和进位标志和进位标志CF相相减减结果送回结果送回d中中【例】设【例】设【例】设【例】设AXAX1101H1101H,CFCF1 1,则,则,则,则SUBSUBAXAX,100H100H;AXAX1001001 1H H,CFCF0 0SBBSBBAXAX,100H100H;AXAX1001000 0H H,CFCF0 0SBBSBBAHAH,11H 11H ;AHAH0FFH0FFH,CFCF1 16、减一指令、减一指令DEC(DECrease)格式格式:DEC d 功能功能:(d)(d)1 说明说明:将目的操作数将目的操作数d减减1后后结果送回结果送回d中中【例

17、】设【例】设【例】设【例】设AXAX00FFH00FFH,CFCF0 0,则,则,则,则DECDECAXAX;AXAX00FEH00FEHDECDECAHAH;AHAHFFHFFH,CFCF0 0SUBSUBAHAH,1 1;AHAHFFHFFH,CFCF1 1lSBB影响全部状态标志位影响全部状态标志位lDEC不影响不影响CF标志标志7、取负指令、取负指令NEG(NEGative)格式格式:NEG d 功能功能:说明说明:将目的操作数将目的操作数取负后取负后送回送回d中中【例】设【例】设【例】设【例】设AXAX00FFH00FFH,则,则,则,则NEGNEGAXAX;AXAXFF01HFF0

18、1HNEGNEGALAL;ALAL01H01H8、比较指令、比较指令CMP(Compare)格式格式:CMP d,s 功能功能:(d)(s)说明说明:仅:仅将目的操作数将目的操作数d与源操作数与源操作数s相相减,减,结果结果并不并不送回送回d中中【例】【例】【例】【例】CMPCMPAXAX,BXBXCMPCMPCLCL,SISICMPCMPCLCL,56H56HlCMP影响标志位,不改变操作数影响标志位,不改变操作数lNEG是取负,不是取反,影响标志位是取负,不是取反,影响标志位9 9、无符号数乘法指令、无符号数乘法指令、无符号数乘法指令、无符号数乘法指令MULMUL(MULMULtiplet

19、iple)格式格式格式格式:MULMUL s s 功能功能功能功能:当:当:当:当s s为字节数据时为字节数据时为字节数据时为字节数据时 AXALsAXALs 当当当当s s为字数据时为字数据时为字数据时为字数据时 DX:AXAXsDX:AXAXs 说明说明说明说明:将将将将无符号的无符号的无符号的无符号的源操作数源操作数源操作数源操作数s s与累加器与累加器与累加器与累加器相相相相乘,乘,乘,乘,结果送回结果送回结果送回结果送回AXAX或或或或DX:AXDX:AX中中中中【例】【例】【例】【例】MULMULBLBL;AXALAXAL BLBLMULMULCXCX;DXDX:AXAXAXAX

20、CXCXMULMULBYTE PTRDIBYTE PTRDI;AXALAXAL(DS:DI)(DS:DI)lAL/AX为隐含的乘数寄存器为隐含的乘数寄存器lAX/(DX:AX)为隐含的乘积寄存器为隐含的乘积寄存器ls只能是通用寄存器或存储器操作数,不能是段寄存器或立即数只能是通用寄存器或存储器操作数,不能是段寄存器或立即数 MUL DS MUL WORD PTR 200Hl影响影响CF和和OF标志,其它标志无意义:若运算结果的高半部分不为标志,其它标志无意义:若运算结果的高半部分不为0,即字节运算,即字节运算时结果时结果AH0、字运算时结果、字运算时结果DX0,则标志,则标志CF和和OF均为均

21、为1,否则,否则CF和和OF均均为0乘法指令乘法指令乘法指令乘法指令1010、有符号数乘法指令、有符号数乘法指令、有符号数乘法指令、有符号数乘法指令I IMULMUL 格式格式格式格式:IMULIMUL s s 功能功能功能功能:当:当:当:当s s为字节数据时为字节数据时为字节数据时为字节数据时 AXALsAXALs 当当当当s s为字数据时为字数据时为字数据时为字数据时 DX:AXAXsDX:AXAXs 说明说明说明说明:将将将将有符号的有符号的有符号的有符号的源操作数源操作数源操作数源操作数s s与累加器与累加器与累加器与累加器相相相相乘,乘,乘,乘,结果送回结果送回结果送回结果送回AX

22、AX或或或或DX:AXDX:AX中中中中【例】【例】【例】【例】I IMULMULDHDH;AXALAXAL DHDHI IMULMULSISI;DXDX:AXAXAXAX SISII IMULMULWORDWORD PTR PTRBXBX2 2;DXDX:AXAXAXAX(DS:(DS:BXBX2 2)00 乘积的高一半是符号扩展乘积的高一半是符号扩展,无有效数据,无有效数据11 否则否则 IMUL指令指令:CF/OF=00 乘积的高一半为零乘积的高一半为零,无有效数据,无有效数据11 否则否则MUL指令指令:CF/OF=11、无符号数除法指令、无符号数除法指令DIV(DIVide)格式格式

23、:DIV s功能功能:s s为字节:被除数在为字节:被除数在为字节:被除数在为字节:被除数在AXAX中中中中s s为字:被除数在为字:被除数在为字:被除数在为字:被除数在DXDX:AXAX中中中中商:商:商:商:AL AL AX/AX/s s余数:余数:余数:余数:AH AH AX AX%s s商:商:商:商:AX AX DXDX:AX/sAX/s余数:余数:余数:余数:DX DX DX DX:AX AX%s slAX/(DX:AX)为隐含的被除数寄存器为隐含的被除数寄存器lAL/AX为隐含的商寄存器为隐含的商寄存器lAH/DX为隐含的余数寄存器为隐含的余数寄存器ls只能是通用寄存器或存储器操

24、作数,不能是段寄存器或立即数只能是通用寄存器或存储器操作数,不能是段寄存器或立即数 DIV ES DIV BYTE PTR 30Hl对所有状态标志均无定义对所有状态标志均无定义l商溢出错时,自动产生除法出错中断(商溢出错时,自动产生除法出错中断(INT 0INT 0),此时商和余数都不确定),此时商和余数都不确定除法指令除法指令除法指令除法指令【例】【例】【例】【例】DIVDIVCLCL;AH:ALAX/CLAH:ALAX/CLDIVDIVBXBX;DX:AXDX:AX/BXDX:AXDX:AX/BXDIVDIVBYTEBYTE PTR PTRSISI;AH:ALAX/(DS:SI)AH:AL

25、AX/(DS:SI)12、有符号数除法指令、有符号数除法指令IDIV 格式格式:IDIV s 功能功能:同:同DIV,只是针对有符号数。,只是针对有符号数。【例】【例】【例】【例】IDIVIDIVBHBH;AH:ALAX/BHAH:ALAX/BHIDIVIDIVDIDI;DX:AXDX:AX/DIDX:AXDX:AX/DIIDIVIDIVWORD PTRBPWORD PTRBP10H10H;DX:AXDX:AX/(SS:BPDX:AXDX:AX/(SS:BP10H)10H)l有符号数除法的余数可以为正也可以为负。例如,有符号数除法的余数可以为正也可以为负。例如,17除以除以5,可以是,可以是商

26、为商为3余数为余数为2,也可以是商为,也可以是商为4余数为余数为3。为了避免结果的不唯一性,。为了避免结果的不唯一性,IDIV指令规定指令规定余数的符号必须和被除数的符号相同余数的符号必须和被除数的符号相同。13、字节符号扩展指令、字节符号扩展指令CBW(Change Byte to Word)格式格式:CBW 功能功能:若:若AL7=0,则,则 AH=0000 0000b=00H 若若AL7=1,则,则 AH=1111 1111b=FFH 说说明明:将将AL的的符符号号位位扩扩展展到到AX,但但扩扩大大后后所所代代表表的的有有符符号号数数的的数数值值不不变变。主主要要用用于有符号数除法指令前

27、对被除数进行扩展以达到除法指令中对被除数位数的规定要求。于有符号数除法指令前对被除数进行扩展以达到除法指令中对被除数位数的规定要求。【例】【例】【例】【例】要要要要进进行两个有符号数相除行两个有符号数相除行两个有符号数相除行两个有符号数相除ALBLALBL,由于除数在,由于除数在,由于除数在,由于除数在BLBL中是中是中是中是8 8位,而被除数在位,而被除数在位,而被除数在位,而被除数在ALAL中中中中也是也是也是也是8 8位,所以位,所以位,所以位,所以应应将被除数将被除数将被除数将被除数扩扩展成展成展成展成1616位并放在位并放在位并放在位并放在AXAX中,即中,即中,即中,即应执应执行指

28、令行指令行指令行指令CBWCBW;AX(AX(扩扩扩扩展展展展)AL)ALIDIVIDIVBLBL;AH:ALAX/BLAH:ALAX/BLlAL/AX为隐含的操作数为隐含的操作数l不影响标志位不影响标志位符号扩展指令符号扩展指令符号扩展指令符号扩展指令14、字符号扩展指令、字符号扩展指令CWD(Change Word to Double Word)格式格式:CWD 功能功能:若:若AX15=0,则,则 DX=0000 0000 0000 0000b=0000H 若若AX15=1,则,则 DX=1111 1111 1111 1111b=FFFFH 说明说明:将将AX的的符号位符号位扩展到扩展到

29、DX。【例】【例】【例】【例】要要要要进进行两个有符号数相除行两个有符号数相除行两个有符号数相除行两个有符号数相除AXCXAXCX,由于除数在,由于除数在,由于除数在,由于除数在CXCX中是中是中是中是1616位,而被除数在位,而被除数在位,而被除数在位,而被除数在AXAX中也是中也是中也是中也是1616位,所以位,所以位,所以位,所以应应将被除数将被除数将被除数将被除数扩扩展成展成展成展成3232位并在位并在位并在位并在DX:AXDX:AX中,即中,即中,即中,即应执应执行指令行指令行指令行指令CWCWD D;DX:AX(DX:AX(扩展扩展扩展扩展)AX)AXIDIVIDIVCXCX;DX

30、:AXDX:AX(DX:AXDX:AX)/CX/CXlDX:AX为隐含的操作数为隐含的操作数l不影响标志位不影响标志位【例】【例】【例】【例】要要要要进进行两个有符号数相除行两个有符号数相除行两个有符号数相除行两个有符号数相除ALSIALSI,由于除数在,由于除数在,由于除数在,由于除数在SISI中是中是中是中是1616位,而被除数在位,而被除数在位,而被除数在位,而被除数在ALAL中中中中是是是是8 8位,所以位,所以位,所以位,所以应应将被除数将被除数将被除数将被除数扩扩展成展成展成展成3232位并在位并在位并在位并在DX:AXDX:AX中,即中,即中,即中,即应执应执行指令行指令行指令行

31、指令CBWCBW;AX(AX(扩扩扩扩展展展展)AL)ALCWDCWD;DX:AX(DX:AX(扩扩扩扩展展展展)AX)AXIDIVIDIVSISI;DX:AXDX:AX/SIDX:AXDX:AX/SIBCDBCD码调整指令码调整指令码调整指令码调整指令15、加法的压缩、加法的压缩BCD码调整指令码调整指令 DAA 格式格式:DAA 功能功能:对:对AL中的压缩中的压缩BCD码加法结果进行调整。码加法结果进行调整。说明说明:必须紧跟在:必须紧跟在ADD/ADC指令之后出现。指令之后出现。AL低低4位位9AF=1ALAL+06HAL高高4位位9CF=1ALAL+60H调调 整整 算算 法法lAL

32、为隐含操作数,且为压缩为隐含操作数,且为压缩BCD码码l除除OF不确定之外,其余标志位均受影响,其中不确定之外,其余标志位均受影响,其中CF说明结果是否大于说明结果是否大于99【例】【例】【例】【例】设设ALAL25H25H,BLBL37H37H,问执问执行下列指令后,行下列指令后,行下列指令后,行下列指令后,ALAL?CF CF?ADDADDALAL,BLBLDAADAA0010 01010011 01110101 1100大于大于大于大于9 906H06H修正修正修正修正0101 11000000 01100110 00106262BCDBCD故:故:故:故:ALAL6262BCDBCD,

33、CF CF0 0【例】【例】【例】【例】CPUCPU执执行下列指令后,行下列指令后,行下列指令后,行下列指令后,问问ALAL?CF CF?MOVMOVALAL,68H68HADDADDALAL,89H89HDAADAA0110 10001000 10011111 0001AFAF1 106H06H60H60H修正修正修正修正1111 00010110 01101 0101 01111 1 57 57BCDBCD故:故:故:故:ALAL5757BCDBCD,CF CF1 1大于大于大于大于9 9CFCF1 1【例】【例】【例】【例】设设AXAX和和和和BXBX中存放着两个中存放着两个中存放着两个

34、中存放着两个4 4位的位的位的位的压缩压缩型型型型BCDBCD码码,求两数之和,并将和放在,求两数之和,并将和放在,求两数之和,并将和放在,求两数之和,并将和放在AXAX中(一个中(一个中(一个中(一个1616位的寄存器中可以存放一个位的寄存器中可以存放一个位的寄存器中可以存放一个位的寄存器中可以存放一个4 4位的位的位的位的BCDBCD码码)。ADDADDALAL,BLBL;低字节相加;低字节相加;低字节相加;低字节相加DAADAA;低字节调整;低字节调整;低字节调整;低字节调整MOVMOVCLCL,ALAL;空出;空出;空出;空出ALALMOVMOVALAL,AH AH ADCADCALA

35、L,BHBH;高字节相加;高字节相加;高字节相加;高字节相加DAA DAA ;高字节调整;高字节调整;高字节调整;高字节调整MOVMOVAHAH,ALALMOVMOVALAL,CLCL16、加法的非压缩、加法的非压缩BCD码调整指令码调整指令 AAA 格式格式:AAA 功能功能:对:对AL中的非压缩中的非压缩BCD码加法结果进行调整。码加法结果进行调整。说明说明:必须紧跟在:必须紧跟在ADD/ADC指令之后出现。指令之后出现。AL低低4位位9 9AF=1AF=1ALAL+06HALAL+06HA AH HAAH H+1 1ALALALAL AND AND 0 0F FH HAFAFCFCF1

36、1调调 整整 算算 法法否则否则否则否则ALALALAL AND AND 0 0F FH HAFAFCFCF0 0lAL/AH为隐含操作数,且为隐含操作数,且AL为非压缩为非压缩BCD码码lAF和和CF标志受影响,其余标志位不受影响标志受影响,其余标志位不受影响【例】【例】【例】【例】设设AXAX0339H0339H,BLBL36H36H,问执问执行下列指令后,行下列指令后,行下列指令后,行下列指令后,AXAX?CF CF?ADDADDALAL,BLBLAAAAAAA AL LALALBLBL39H39H36H36H6FH6FHALAL低低低低4 4位为位为位为位为11111111(0FH0F

37、H)99因此执行因此执行因此执行因此执行AAAAAA指令后:指令后:指令后:指令后:ALAL+06HALAL+06H6FH6FH06H06H75H75HA AH HAAH H+1 103H+01H03H+01H04H04HALALALAL AND AND 0 0F FH H75H AND 0FH75H AND 0FH05H05HAFAFCFCF1 1故:故:故:故:AXAX0405H0405H,CFCF1 117、减法的压缩、减法的压缩BCD码调整指令码调整指令 DAS 格式格式:DAS 功能功能:对:对AL中的压缩中的压缩BCD码减法结果进行调整。码减法结果进行调整。说明说明:必须紧跟在:必

38、须紧跟在SUB/SBB指令之后出现。指令之后出现。AL低低4位位9AF=1ALAL06HAL高高4位位9CF=1ALAL60H调调 整整 算算 法法lAL为隐含操作数,且为压缩为隐含操作数,且为压缩BCD码码l除除OF不确定之外,其余标志位均受影响,其中不确定之外,其余标志位均受影响,其中CF说明结果是否小于说明结果是否小于0 0【例】【例】【例】【例】设设ALAL34H34H,BLBL89H89H,问执问执行下列指令后,行下列指令后,行下列指令后,行下列指令后,ALAL?CF CF?SUBSUBALAL,BLBLDASDAS0011 01001000 10011010 1011大于大于大于大

39、于9 9且且且且AFAF1 106H06H60H60H修正修正修正修正1010 10110110 01100100 01014545BCDBCD故:故:故:故:ALAL4545BCDBCD,CF CF1 1大于大于大于大于9 9且且且且CFCF1 118、减法的非压缩、减法的非压缩BCD码调整指令码调整指令 AAS 格式格式:AAS 功能功能:对:对AL中的非压缩中的非压缩BCD码减法结果进行调整。码减法结果进行调整。说明说明:必须紧跟在:必须紧跟在SUB/SBB指令之后出现。指令之后出现。AL低低4位位9 9AF=1AF=1ALALALAL06H06HA AH HAAH H1 1ALALAL

40、AL AND AND 0 0F FH HAFAFCFCF1 1调调 整整 算算 法法否则否则否则否则ALALALAL AND AND 0 0F FH HAFAFCFCF0 0lAL/AH为隐含操作数,且为隐含操作数,且ALAL为非压缩为非压缩BCD码码lAF和和CF标志受影响,其余标志位不受影响标志受影响,其余标志位不受影响【例】【例】【例】【例】设设AXAX021CH021CH,BLBL02H02H,问执问执行下列指令后,行下列指令后,行下列指令后,行下列指令后,AXAX?CF CF?SUBSUBALAL,BLBLAASAASA AL LALALBLBL1CH1CH02H02H1AH1AHA

41、LAL低低低低4 4位为位为位为位为10101010(0AH0AH)99因此执行因此执行因此执行因此执行AASAAS指令后:指令后:指令后:指令后:ALALALAL06H06H1AH1AH06H06H14H14HA AH HAAH H1 102H02H01H01H01H01HALALALAL AND AND 0 0F FH H14H AND 0FH14H AND 0FH04H04HAFAFCFCF1 1故:故:故:故:AXAX0104H0104H,CFCF1 119、乘法的非压缩、乘法的非压缩BCD码调整指令码调整指令 AAM 格式格式:AAM 功能功能:将将AX内容转换成两位非压缩的内容转换

42、成两位非压缩的BCD码码 说说明明:乘乘法法运运算算只只有有非非压压缩缩BCD码码调调整整指指令令AAM,用用来来把把AX中中字字节节乘乘法法的的积积转转换换成两位非压缩的成两位非压缩的BCD码。码。MOVMOVAXAX,0705H0705H;AHBCDAHBCD码码码码7 7,ALBCDALBCD码码码码5 5MULMULAHAH;AXALAHAXALAH23H23HAAMAAM;把结果;把结果;把结果;把结果AXAX调整为两位非压缩的调整为两位非压缩的调整为两位非压缩的调整为两位非压缩的BCDBCD码码码码0305H0305H20、除法的非压缩、除法的非压缩BCD码调整指令码调整指令 AA

43、D 格式格式:AAD 功能功能:将将AX中两位非压缩的中两位非压缩的BCD码调整成二进制数码调整成二进制数 说说明明:除除法法运运算算只只有有非非压压缩缩的的BCD码码调调整整指指令令AAD。与与其其他他运运算算的的BCD调调整整指指令令相相比比,操操作作正正好好相相反反,其其他他运运算算的的BCD调调整整是是将将二二进进制制结结果果调调整整成成为为正正确确的的BCD码码,而而AAD是是在在除除法法运运算算前前,把把AX中中的的两两位位非非压压缩缩的的BCD码码调调整整成成二二进进制制数数,以以解解决决非非压缩压缩BCD码的除法运算问题。码的除法运算问题。MOVMOVAXAX,0205H0205H;AXAX非压缩非压缩非压缩非压缩BCDBCD码码码码2525MOVMOVBLBL,04H04H;BLBL非压缩非压缩非压缩非压缩BCDBCD码码码码4 4AADAAD;AXAX19H19H(ALAH10ALAH10ALAL2525,AH0AH0)DIVDIVBL BL ;ALAX/BLALAX/BL06H(06H(商商商商),AHAH01H(01H(余余余余)课后作业课后作业3.133.18

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁