【计组】计算机乘法运算

写在前面:

这一部分的知识点包括:原码一位乘、原码两位乘、补码一位乘、补码两位乘。本篇博客仅介绍原码一位乘,其余的操作方式类似。


唐朔飞版《计算机组成原理》(第2版)中以0.1101*0.1011为例,对计算机中的乘法运算进行了讲解。
首先我们从人脑的习惯出发,通过分析笔算乘法,再结合计算机的特性,对乘法运算进行提炼与总结,得出一套适合计算机的算法。
这一部分教材的介绍十分详细,因此我只摘抄教材的部分。本篇博客主要对教材一些模糊的地方进行解释。

在这里插入图片描述
在这里插入图片描述
值得注意的是此处的数值均为二进制,因此0.1=2^(-1)。
接下来,教材将流程制成了一个表格,但是这个表格有些地方写得不够清楚,因此学习的时候会有些疑问。先给出表格(可以忽略我的笔记lol):
①由上面教材的介绍可知,计算机进行乘法运算,就是一个不断重复加法和移位的过程。既然提到了移位,就需要注意移位之后如何补位。在教材中没有指明,但实际上此处使用的是原码乘法运算,因此需要按照原码移位的规则,即右移后高位全部补0。
②表格的数字也有点乱。注意从第二个表格行开始,每个表格中最上面那一个数值是前一步加法运算的结果。紧接着第二个数值是部分积右移一位之后得到的新的部分积。 最后一个数值,用于加法运算。根据乘数的末位进行判断,我们可以知道当前的加法操作是否需要加上原来的被乘数。
③乘数的移动问题:乘数也需要跟部分积一起右移一位。部分积右移之后舍弃的低位将作为乘数的高位。比如部分积是0.1101,乘数是1011,右移之后,部分积变成了0.0110,乘数变成了1101。
搞清楚了上面几个比较模糊的地方之后,再看的时候就清楚许多了!

在这里插入图片描述
结合第一章概述中讲述运算器的那一部分内容,可知,ACC保存结果的高位,MQ保存乘数和结果的低位。
因此在模拟乘法运算时,不妨把两个寄存器写出来,更容易理解整个过程。以视频中的题目为例,如下图所示。整个过程我就不一一贴出来了,我把视频链接放在文末。这个视频讲解得十分清楚,值得一看。

在这里插入图片描述
理解了乘法运算的思想之后,最后回顾一下原码乘法运算的规则:
①乘积的符号位由两原码符号位异或运算结果决定。
②乘积的数值部分由两数绝对值相乘。


参考资料(链接可能失效,侵删):
①视频:天勤·计算机组成原理:https://www.bilibili.com/video/BV1pt4y197g9?p=7


END

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值