微型计算机原理及应用课件BCD码运算的十进制.ppt

上传人:小飞机 文档编号:6284327 上传时间:2023-10-13 格式:PPT 页数:12 大小:368.82KB
返回 下载 相关 举报
微型计算机原理及应用课件BCD码运算的十进制.ppt_第1页
第1页 / 共12页
微型计算机原理及应用课件BCD码运算的十进制.ppt_第2页
第2页 / 共12页
微型计算机原理及应用课件BCD码运算的十进制.ppt_第3页
第3页 / 共12页
微型计算机原理及应用课件BCD码运算的十进制.ppt_第4页
第4页 / 共12页
微型计算机原理及应用课件BCD码运算的十进制.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《微型计算机原理及应用课件BCD码运算的十进制.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理及应用课件BCD码运算的十进制.ppt(12页珍藏版)》请在三一办公上搜索。

1、BCD码运算的十进制调整指令,专用于对BCD码运算的结果进行调整包括:AAA、DAA、AAS、DAS、AAM、AAD均为隐含寻址,隐含的操作数为AL和AH为何要对BCD码的运算结果进行调整?BCD码本质上是十进制数,即应遵循逢十进一的规则。而计算机是按二进制(十六进制)进行运算,并未按十进制规则进行运算。,1,8088的调整指令主要用于十进制数的调整。这些指令包括:AAA:对AL中非压缩BCD码求和的结果进行调整。AAS:对AL中非压缩BCD码求差的结果进行调整。AAD:在实现十进制除法时,在除法指令前对AX用中非压缩BCD码表示的十进制数进行调整。AAM:在实现十进制乘法时,对AX中两个非压

2、缩BCD码相乘的结果进行调整。DAA:对AL中的两个压缩BCD码相加之和进行调整,得到用压缩BCD码表示的十进制和。DAS:对AL中的两个压缩BCD码相减之差进行调整,得到用压缩BCD码表示的十进制差。,2,加法的十进制调整指令,非压缩BCD码加法调整AAA本指令对在AL中的由两个未组合的BCD码相加后的结果进行调正,得到一个正确的未组合的BCD码。AAA指令只影响AF和CF,其余标志无定义。AAA指令应紧跟在ADD或ADC指令之后。,3,AAA指令的操作如下:,4,如果AL的低4位9AF=1,则:AL(AL)+6,(AH)(AH)+1,AF1 AL(AL)0FH)CFAF否则AL(AL)0F

3、H,调整原理:先看一个例子 计算89 0000 1000 见右式+0000 1001 0001 0001 11 结果应为17,而计算机相加为11,原因在于运算过程中,如遇到低4位往高4位产生进位时(此时AF=1)是按逢十六进一的规则,但BCD码要求逢十进一,因此只要产生进位,个位就会少6,这就要进行加6调正。,5,这个1代表了16,而实际上仅应为10,即多进了6。,实际上当低4位的结果9(即AF之间)时,也应进行加6调正(原因是逢十没有进位,故用加6的方法强行产生进位)。如对上例的结果进行加6:0001 0001 11+0000 0110 6 0000 0111 17 0000 1111-1

4、0000 1111,6,压缩BCD码加法调整DAA,两个压缩BCD码相加结果在AL中,通过DAA调整得到一个正确的压缩BCD码.指令操作(调整方法):若AL的低4位9AF=1 则(AL)(AL)+6,AF1 若AL的高4位9CF=1 则(AL)(AL)+60H,CF1除OF外,DAA指令影响所有其它标志。DAA指令应紧跟在ADD或ADC指令之后。,7,例:0100 1000 48H MOV AL,48H+0111 0100 74H MOV BL,74H 1011 1100 BCH ADD AL,BL+0110 0110 66H DAA 1 0010 0010 1 22H(进位)(进位)执行AD

5、D后,(AL)=BCH,高4位低4位均大于9,故DAA指令执行加66H调整,最后结果为:(AL)=22H,CF=1,AF=1,8,9,3)乘法的十进制调正指令AAM 对AX中由两个非压缩BCD码相乘的结果进行调整。调整操作为:(AL)/0AH,(AH)商,(AL)余数隐含的操作寄存器为AL和AH;AAM跟在MUL指令之后使用;影响标志位PF、SF、ZF,其它无定义;用AAM可实现99的二-十进制转换。,10,例1:按十进制乘法计算78=?程序段如下:MOVAL,07H;(AL)=07HMOVCL,08H;(CL)=08HMULCL;(AX)=0038HAAM;(AH)=05H,(AL)=06H

6、 所得结果为非压缩的BCD码。例2:把3AH转换成等值的十进制数。MOV AL,3AH;58 AAM;(AH)=05H,(AL)=08H,11,4)除法的十进制调正指令AAD,对非压缩BCD除法运算进行调整。调整操作为:(AL)(AH)0AH(AL)AH 0隐含的操作寄存器为AH,AL;AAD要在DIV指令之前使用;影响标志位PF、SF、ZF,其它无定义;用AAD可实现99的十-二进制转换。,12,例1:按十进制除法计算557=?程序段如下:MOVAX,0505H;(AX)=55BCDMOVCL,07H;(CL)=7AAD;(AX)=0037H DIVCL;(AH)=6,(AL)=7 所得结果为非压缩的BCD码(商7余6)。例2:把73转换成等值的二进制数。MOV AX,0703H;(AX)=73BCD AAD;(AX)=0049H,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号