- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验6有关双精度据运算及逻辑运算、移位程序
实验6 自编有关双精度数据运算及逻辑运算、移位程序
一、实验内容:自编有关双精度数据、BCD码数据算术运算、逻辑运算、移位运算程序段,和供参考的数据转换、显示程序段组合成完整程序,上机实现并验证。二、实验目的:1. 学习双精度数运算程序设计方法。?????????????? 2.?学习压缩BCD码与非压缩BCD码数据运算程序设计方法。???????????? 3. 熟悉逻辑运算、移位运算指令内容与使用方法,学习用这些指令解决实际问题的方法。????????????? 4. 熟悉常见的算术运算、逻辑运算、移位运算程序设计方法。????????????? 5. 学习1号、2号、9号DOS系统功能调用的使用方法????????????? 6. 复习数据转换程序与显示程序设计方法????????????? 7. 学习将多个程序段拼凑设计程序的方法
三、实验题目
在题目之后给出了一些供参考的经常用到的显示与计算的程序段,请参考这些程序段完成以下程序设计并上机验证。
1. 设数据区有双精度数据A、B 定义例如:A DD 2A3D0B2CH
B DD 2573ADEH
求自编程序,计算A与B的和与差, 并用十六进制和二进制形式分别显示。
2. 自编程序,任意设AX的值,求将其中1、3、5位清0,2、4、9位置1,6、7位求反。分别用二进制形式显示原数据及处理后的数据。(参考实验5参考实验段)
3. 自编程序,任意设4位压缩BCD码数据放到AX中,求用移位方法及2号DOS中断显示其值。(参考实验5参考实验段)
4. 设数据区有压缩BCD码数据A、B 定义例如:A DW 2937H
B DW 877H
求自编程序,计算A与B的和,并用十进制形式显示。
5. 设数据区有非压缩BCD码数据A、B 定义例如:A DW 0907H
B DW 0807H
求自编程序,计算A与B的和,并用十进制形式显示。
6. 设计求两个二位压缩BCD码的乘积(用压缩BCD码表示)的程序。(例如86H*39H,结果为3354H)
分析:本题有二种求解方法:
(1)根据A╳B等于B个A相加,从0起逐次加A,注意每次加后要进行十进制调整。按B的大小计加的次数,可以将一个数从B起递减1直到0,每减1,就加一次A,注意B是压缩BCD码,每减1后也要调整。还要注意的是,A和B均为二位BCD码,相乘乘积可能为四位BCD码,每次加A都要先加低8位,调整;再带进位加高8位并调整。
(2)首先求出二个二位的压缩BCD码实际代表的数值(二进制数),再做乘法,最后求其压缩BCD码。求二位压缩BCD码的二进制数值的方法是先将其看成是高8位为0的字,左移4位,使拾位上的数码移到高8位中,再将低8位右移4位还原,变成非压缩BCD码;将高8位的值(原拾位上的数码)乘10后加上低8位数值,就得到原二位的压缩BCD码实际代表的数值。非压缩BCD码变成原二位的压缩BCD码所实际代表的数值也可以利用除法调整指令AAD完成。
求二进制的乘积的压缩BCD码的方法是设法得到压缩BCD码的4个十进制数字,再拼接得到结果。求压缩BCD码的4个十进制数字可以用除10取余法得到,但要注意的是,第一次直接除10时可能出现溢出错,可以先除100,先分别得到结果的千、百二位与拾、个两位,之后再分别求压缩BCD码。
前一种解法采用循环,运算部分语句条数可以减少到19句,但效率不如后一种解法高。本手册给出了第二种解法的程序代码,请考虑第一种解法的程序设计方法。
7. 设计求四位压缩BCD码除以二位压缩BCD码表示的程序。(例如8390H÷29H,结果为289H余9)
分析:本题同样有二种求解方法:
(1)根据A÷B等于A足够减B的次数,从A中累次减B,只要够减就将次数加1,不够减了所剩余数为余数。注意每次减后要进行十进制调整。减的次数加1的数据先按二进制数计,该数据可能大于255。要注意的是,A为四位压缩BCD码,每次减B都要先减低8位,调整;再带借位将高8位减0并调整。完成后竟商与余数分别变成压缩BCD码
(2)首先求出二个压缩BCD码实际代表的数值(二进制数),再做除法,最后求商与余数的压缩BCD码。求四位压缩BCD码的二进制数值的方法是分别将高8位压缩BCD码与低8位压缩BCD码分别变成二进制数,在将高8位的数乘100后加低8位的数,注意结果类型为字类型。
8. 设数据区有双精度数据A=2A3D0B2CH、B= 257
文档评论(0)