实验五 十进制数的BCD加、减法实验

实验五 十进制数的BCD加、减法实验

ID:46405280

大小:46.00 KB

页数:4页

时间:2019-11-23

实验五  十进制数的BCD加、减法实验_第1页
实验五  十进制数的BCD加、减法实验_第2页
实验五  十进制数的BCD加、减法实验_第3页
实验五  十进制数的BCD加、减法实验_第4页
资源描述:

《实验五 十进制数的BCD加、减法实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学号:姓名:班级:实验五十进制数的BCD加、减法实验一、实验要求和目的1.熟悉BCD码的基本知识2.熟悉汇编语言BCD码多字节加减法基本指令的使用方法;3.掌握BCD码调整指令的使用方法。二、软硬件环境1.硬件环境:微机CPU486以上,500MB以上硬盘,32M以上内存;2.软件环境:装有MASM5.0、DEBUG、LINK和EDIT等应用程序。三、实验涉及的主要知识单元1、BCD码的介绍BCD码是一种用二进制编码的十进制数,又称二—十进制数。它是用4位二进制数表示一个十进制数码的,由于这4位二进制数的权为8421,所以BCD码又称84

2、21码。在IBMPC机中,表示十进制的BCD码可以用压缩的BCD码和非压缩的BCD码两种格式表示。(1)压缩的BCD码压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数形式为一个顺序的以4位为一组的数串。(2)非压缩的BCD码非压缩的BCD码则以8位二进制数表示一个十进制数位,8位中的低4位表示8421的BCD码,而高4位则没有意义。2、BCD码的调整指令1)压缩的BCD码调整指令①DAA加法的十进制调整指令该指令把AL中的和调整到压缩的BCD格式,这条指令之前必须执行ADD或ADC指令,加法指令必须把两个压缩的BCD码相加,并

3、把结果存放在AL寄存器中。功能:如果AL寄存器中低4位大于9或辅助进位(AF)=1,则(AL)=(AL)+6且(AF)=1;如果(AL)>=0A0H或(CF)=1,则(AL)=(AL)+60H且(CF)=1。同时,SF、ZF、PF均有影响。比如:MOVAL,68H;(AL)=68H,表示压缩BCD码68MOVBL,28H;(BL)=28H,表示压缩BCD码28ADDAL,BL;二进制加法:(AL)=68H+28H=90HDAA;十进制调整:(AL)=96H;实现压缩BCD码加法:68+28=96②DAS减法的十进制调整指令该指令把AL中的

4、差调整到压缩的BCD格式,这条指令之前必须执行SUB或SBB指令,减法指令必须把两个BCD码相减,并把结果存放在AL寄存器中。4汇编语言实验学号:姓名:班级:功能:如果(AF)=1或AL寄存器中低4位大于9,则(AL)=(AL)-6且(AF)=1;如果(AL)>=0A0H或(CF)=1,则(AL)=(AL)-60H且(CF)=1。同时SF、ZF、PF均受影响。比如:MOVAL,68H;(AL)=68H,表示压缩BCD码68MOVBL,28H;(BL)=28H,表示压缩BCD码28SUBAL,BL;二进制减法:(AL)=68H-28H=40

5、HDAS;十进制调整:(AL)=40H;实现压缩BCD码减法:68-28=402)非压缩的BCD码调整指令①AAA加法的ASCII调整指令执行的操作:(AL)←把AL中的和调整到非压缩的BCD格式(AH)←(AH)+调整产生的进位值这条指令之前必须执行ADD或ADC指令,加法指令必须把两个非压缩的BCD码相加,并把结果存放在AL寄存器中。功能:如果AL的低4位大于9或(AF)=1,则:(AL)=(AL)+6(AH)=(AH)+1(AF)=(CF)=1且AL高4位清零。否则:(CF)=(AF)=0;AL高4位清零。②AAS减法的ASCII调

6、整指令执行的操作:(AL)←把AL中的差调整到非压缩的BCD格式(AH)←(AH)+调整产生的借位值这条指令之前必须执行SUB或SBB指令,减法指令必须把两个非压缩的BCD码相减,并把结果存放在AL寄存器中。功能:如果AL的低4位大于9或(AF)=1,则:(AL)=(AL)-6(AH)=(AH)-1(AF)=(CF)=1且AL高4位清零。否则:(CF)=(AF)=0;AL高4位清零。其他标志位OF、PF、SF、ZF不确定。③AAM乘法的非压缩BCD码调整指令语句格式:AAM功能:被调整的乘积在AX中,对AL按10取模,则:(AL)/0AH

7、→AH(商):AL(余数)其中AH为商,AL为余数,标志位AF、CF、OF、PF、SF、ZF受影响。④AAD除法的非压缩BCD码调整指令语句格式:AAD功能:除法运算前,先调整被除数AX内容,使:(AL)=(AL)+(AH)*0AH(AH)=0即把非压缩型十进制数变成二进制数。3、多精度BCD码相加程序示例分别计算长度为2字节的压缩BCD码和非压缩的BCD码的相加。首先分析程序:4汇编语言实验学号:姓名:班级:(1)分析程序设计这里我们仍然采用高地址优先的方式来存放多精度数,高位相加的时候采用带进位相加。只是由于BCD码的加法是十进制数相

8、加,所以每次相加之后都要进行调整。压缩的BCD码加法采用指令DAA进行调整,非压缩的BCD码采用指令AAA进行调整。(2)具体程序设计;压缩的BCD码相加计算MOVAL,34HADDAL,89

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。