第三章(1)计算机的算数运算2023-12-11

3.2加法与减法

精解,MIPS指令中有符号数溢出和无符号数溢出指令

有符号数

addu $to,$t1,$t2
xor $t3,$t1,$t2      #首先两个数进行异或操作,核心是看做高位也就是符号位
slt $t3,$t3,$zero    #如果最高位是1,按照有符号数判断则小于0,$t3得到1这个值,证明两个数符号不一样
bne $t3,$zero,no overflow #不等则不溢出,接下来需要去判断如果符号位相等怎么办,符号为相等则异或后最高位是0(符号位),那么比较就会大于0,只需要比较和和两个相同符号加数的符号是否一致就可以了,一致没有溢出,不一致溢出
xor $t3,$t3,$t1 #如果不一样,最高位是1,就会小于0,则溢出
slt $t3,$t3,$zero 
bne $t3,$zero,overflow

无符号数,相较于有符号数,还是简单的多,只需要判断两个数是不是大于2的n次方减1

addu $t0,$t1,$t2 #其实这句没用上
nor $t3,$t1,$zero #求t1的非,根据2' comp 就是2的补码可以表示称为2e32-t1-1,接下来只需要判断这个非,如果大于t2则没溢出,如果小于t2则溢出,即t1+t2>2e32-1
sltu $t3,$t3,$t2 #如果小于t2,则t3为1
bne $t3,$zero,overflow

MIPS使用名为异常程序计数器(Exception Program Counter,EPC)的寄存器来保存导致异常的指令地址。

3.3乘法

mflo,mfhi指令将积送入指定的寄存器

更快速的乘法,这个低位我能看懂但是高位不太能看懂,感觉直接最高两位相乘相加有问题。

IEEE 754浮点数


单精度127,双精度1023
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容