计算机组成与设计(三)算术运算

本文深入探讨计算机中的算术运算,包括加法和减法的实现,以及如何处理溢出。对于乘法与除法,介绍了优化算法和硬件实现。此外,详细阐述了浮点数的规格化、表示范围、浮点运算过程及IEEE754标准中的舍入模式,旨在理解计算机内部的算术精确性。
摘要由CSDN通过智能技术生成

一、加法和减法
加法即数据从右到左逐位相加,同时进位也相应地向左传播
减法可采用加法实现:减数在简单的取反后再加1形成补码再进行加法操作
在这里插入图片描述
在这里插入图片描述
而当运算结果超过限制时,就会发生溢出。
当相加的两个源操作数符号相异时,不会发生溢出;而当相减的符号相同时,不会发生溢出。(溢出发生时,符号位被数值位占用而产生错误;当两个正数相加但结果为负时,则说明发生溢出;或者做减法时,一个正数减去一个负数得到一个负的结果等1,则也说明发生溢出)
在这里插入图片描述
由于无符号数通常用于表示内存地址,这种情况下的溢出可以忽略

  • 加法(add)、立即数加法(addi)和减法(sub),这三条指令在溢出时产生异常
  • 无符号加法(addu)、立即数无符号加法(addiu)和无符号减法(subu),这三条指令在发生溢出时不会产生异常

二、乘法与除法
在这里插入图片描述
在这里插入图片描述
这个算法大概需要100个时钟周期来完成两个32位的数相乘(Amdahl定律:如果一个慢速操作在程序中占据一定比重的话,也会限制程序的性能)

可以改进成每一步只需要一个时钟周期,可以并行化来加速执行:当乘数位为1时,将乘数和被乘数进行移位,同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值