第七章-数值运算程序设计学习目的熟练掌握算术运算指令、十进PPT.ppt 立即下载
2024-12-16
约9.4千字
约72页
0
551KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

第七章-数值运算程序设计学习目的熟练掌握算术运算指令、十进PPT.ppt

第七章-数值运算程序设计学习目的熟练掌握算术运算指令、十进PPT.ppt

预览

免费试读已结束,剩余 67 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七章数值运算程序设计

学习目的:熟练掌握算术运算指令、十进制运算调整指令的功能和使用方法,能够使用算术运算指令编制程序实现二进制、十进制数的加、减、乘、除等运算功能。

对于二进制数的运算,可以直接使用算术运算指令,因为算术运算功能的硬件实现都是基于二进制数的;对于十进制数的运算,只使用算术运算指令是不够的,必须配合使用一套运算调整指令,才能得到正确的运算结果。7.1.1二进制数加减运算

二进制数的加减运算直接使用算术运算指令就可以完成,只是需要注意多字节(多字)数据的加减法中需要使用ADC、SBB等指令处理进位和借位。


7.1.2十进制数加减运算

CPU的运算操作是以二进制数为基础的运算,不能直接进行通常意义下的十进制运算,如果需要使用十进制表示数据,那么需要做数制转换或者运算调整.

方法一:数制转换,把使用十进制表示的原始数据(例如ASCII码)转换为等价的二进制表示,完成二进制运算,把运算结果转换为十进制形式.

这种方法很直接,但是需要编制二、十进制数相互转换的子程序,会使整个运算时间加长。方法二:运算调整,使用特定的二进制编码来表示十进制数,也就是BCD编码,使用二进制运算指令,但是同时也使用运算调整指令对运算结果进行调整,使运算结果同样是BCD码,并且是正确运算结果的BCD码。

这种方法理解起来比较困难一些,但是在使用时非常方便,也能够提高运算过程的效率,因为直接使用BCD码不需要完成二、十进制数的相互转换。

这一章主要讨论的十进制运算方法也就是这一种方法。(1)BCD码

4个连续的二进制位可以看作一个十六进制位,其取值范围为0-F,如果把它的变化范围加一个限制,只能使用0-9的取值范围,那么就可以把它看作一个十进制位。

BCD码就是用4个二进制位来表示1个十进制位,变化范围限定为0-9。1)非组合类型的BCD码

一个字节的低4位表示一个BCD码,高4位可以为0,也可以为0011H(ASCII码字节,数字字符的ASCII码低4位就是一个BCD码)。

2)组合类型的BCD码

一个字节的低4位和高4位分别表示两个BCD码。

BCD码和数字字符的ASCII码之间有着必然的联系,把BCD码放在一个字节的低4位,高四位指定为0011H,那么这个字节就是对应十进制数字的ASCII码。(2)BCD码加法运算

首先考虑一位十进制数的加法运算会遇到一些什么情况.

1)
02H
+03H
05H

特征:运算结果的低4位为0-9,AF=0

调整:虽然是十六进制的加法,但是运算特征和十进制加法完全一致,不需要任何调整。2)

08H
+04H
0CH

特征:结果低4位大于9,AF=0

调整:对于十六进制加法来说,是逢16进1,但是对十进制加法来说,逢10就已经该进1了,此时两种加法产生了不一致,需要作调整。51H/0AH的商为08H(乘积十位上的BCD码),余数为01H(乘积个位上的BCD码)
(3)BCD码除法调整指令
上面的例子中,只考虑了除数为一位BCD码的情况,如果除数为多位BCD码,那么和被除数一样,在实行除法过程以前,需要使用AAD指令把它调整为二进制数。
多精度数乘除法运算和BCD码乘除法运算非常相似,也是对手算方法的一个模仿过程。
2)组合类型的BCD码
调整过程:AH<=(AL)/0AH的商
对于十进制数的运算,只使用算术运算指令是不够的,必须配合使用一套运算调整指令,才能得到正确的运算结果。
教材上的示意图和程序中的描述不一致,这里采用修改示意图的方式作为更正。
调整:虽然是十六进制的加法,但是运算特征和十进制加法完全一致,不需要任何调整。
如果为0,表示对这一位BCD码进行减法时没有产生十进制借位。
调整:从十进制加法来说,这个运算应该进位,但是应该向高位进一个10,而不是
BCD码乘法考虑符号:
正+正=>直接进行BCD码加法运算,结果符号为正
2)相加的两个操作数都必须是两位BCD码构成的组合型BCD码。3)

09H
+08H
11H

特征:运算结果低4位为0-9,AF=1

调整:从十进制加法来说,这个运算应该进位,但是应该向高位进一个10,而不是
16,所以多进了6,需要对运算结果作一定的调整。调整过程见如下框图:(注意,这是AAA这条指令的处理流程,不是某个程序的流程)
BCD码减法的符号判断
调整过程见如下流程图:
(2)BCD码加法运算
上面这个例子可以编制程序来实现,见教材P152的例7.
2)组合类型的BCD码
(5)非组合型BCD码减法调整指令AAS(ASCIIAdjustforSubtraction)
(5)字节、字扩展指令
MOVSI,0
如果把17H看作十进制运算的结果,那么结果是正确的,因为9+8=17
特征:运算结果为0-9,AF=1,
01
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

第七章-数值运算程序设计学习目的熟练掌握算术运算指令、十进PPT

文档大小:551KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用