1、MIPS 指令字段
R型:op(6)+rs(5)+rt(5)+rd(5)+shamt(5)+funct(6) 一般指令
I 型:op(6)+rs(5)+rt(5)+constant/address(16) lw sw等
J型:op(6)+add(26) 跳转指令J
2、PC相对寻址
MIPS指令都是4字节长的(32位)因此低两位必然为0。 所以PC相对寻址时低16位存储的是字地址(去掉低2位)而非字节地址,寻址范围也就扩大了4倍。
同样的跳转指令的26位字段,可以表示28位的字节地址,也就是256M的来历。
3、要跳转的距离超过16位所能表示怎么办?
beq $s0, $s1, L1
如果我们用两条指令来替换上述指令,跳转范围可大大增加。这是因为条件分支offset只有16位表示,而跳转指令则有26位
bne $s0, $s1, L2
j L1
L2