《计算机组成与设计》(part2)

硬件/软件接口

寄存器与存储器相比,访问时间短、吞吐率高,寄存器中的数据访问速度快并易于利用,访问存储器相对于访问存储器功耗更小。

 

2.3.2 常数或立即数操作数

 

常数操作数的快速加法指令叫做加立即数,addi

addi  $s3,$s3,4       #$s3=$s3+4

却没有减立即数这个指令,因为可以加负数,就相当于减法了

addi $s3,$s3,-4       #$s3=$s3-4

设计原则3:加速执行常用操作。

常数操作数出现频率高,而且相对于存储器中去常数,包含常数的算术运算指令执行速度快很多,并且能耗较低。

常数0还有另外的作用,有效使用它可以简化指令集。因此,MIPS将寄存器$zero恒置为0。

EXAMPLE:    想将$s1的数据复制到$s2中,就可以这样写

                      add $s2,$s1,$zero

 

2.4有符号数和无符号数

计算机程序对正数和负数都要进行计算,所以需要一种方法来区分正数和负数。显而易见的解决方案是增加一个独立的符号位。

补码:前导位为0表示正数,前导位为1表示负数。

EXAMPLE:

          0000 0000 0000 0000 0000 0000 0000 0001=1*2^0(代表2的0次方)=1

          1000 0000 0000 0000 0000 0000 0000 0001=-1*2^31+1*2^0=-2147483647

其实就是前导位是1的时候按-1算

这样,硬件只需检测这一位就可以知道一个数是正数还是负数。因此,这个位通常叫做符号位。

两个捷径:

一:补码数取反的快速方法,简单对每一位取反,0变成1,1变成0,然后对结果加1

原理:一个数和他按位取反的结果相加肯定是 1111 1111 1111 1111 1111 1111 1111 1111=-1,

因此X+(X按位取反)=-1,       X+(X按位取反)+1=0,       -x=(X按位取反)+1

二:将一个用n位表示的二进制数转化成一个用多于n位表示的数。

      这个捷径是将原有的16位数简单复制到32位新数的低16位,其最高有效位(符号位)则以复制的方式填满新数的高16位。

2.5这一节就不整理了,感觉了解一下就好~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值