思维导图
原码一位乘法
先来看一下十进制乘法的本质原理:
原理实现:(类比十进制)
机器实现:
1、取乘数、被乘数原码的绝对值
2、然后通过先相加在移位的操作计算数值(解决多个位积问题)
3、用逻辑异或计算符号位(解决符号位问题)
PS:还有一个问题是结果的位数扩大保存问题:
Q:用ACC保存乘积高位,MQ保存乘积低位,如下寄存器演示中所示
寄存器步骤演示:
PS:解释一下:就是相乘、赋值、移位循环往复的过程;
a、首先用被乘数与乘数最低位相乘,结果加到ACC中,然后将ACC、MQ向右移位
b、然后在用被乘数与乘数最低位(此时由于右移最低位其实是乘数的倒数第二位)相乘,结果加到ACC中,然后将ACC、MQ向右移位
c、结束标志:乘数有几位数值位(不包含符号位),就右移几次
1、初始化
2、乘数最低位参与运算并将值加到ACC并逻辑右移
3、右移后的最低位(乘数的倒数第二位)参与运算并逻辑右移
4、最终结果
手算实现
补码一位乘法
对比一下: