欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

电脑构造基础:原码乘法计算方法详细解析(*)

最编程 2024-08-01 08:43:09
...

乘法运算的思想


手算乘法(二进制)


例如: 算 0.1101×0.1011


列竖式



位运算



原码的一位乘法


补充:运算器相关知识


运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)



  • ACC: 累加器,用于存放操作数,或运算结果。


  • MQ: 乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。


  • X: 通用的操作数寄存器,用于存放操作数


  • ALU: 算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算


image.png


原码一位乘法实现方法:先加法再移位,重复n次


符号位通过异或确定;数值部分通过被乘数和乘数绝对值的 n 轮加法、移位完成根据当前乘数中参与运算的位确定(ACC)加什么。


  1. 若当前运算位=1,则(ACC)+[|x|]原;


  1. 若=0,则(ACC)+0。


每轮加法后ACC、MQ的内容统一逻辑右移


手算模拟


tips


  • 乘数的符号位不参与运算,可以省略


  • 原码一位乘可以只用单符号位


  • 答题时最终结果最好写为原码机器数


例题


设机器字长为5位(含1位符号位,n=4),x = −0.1101,y = +0.1011,采用原码一位乘法求x·y


解:手动计算是这样



符号位:1与0进行异或运算,得0。


所以随后结果是:x·y= -0.10001111