汇编
from my wp blog
MIPS
获取一个32位整数
lui $s0, 61
ori $s0, 1234
不使用addi:addi会将16位数最左位补全为32位
无条件跳转
j 10000
先左移两位,再将PC前4位放到前面,构成绝对目标地址
条件跳转
bne $s0, $s1, Exit
Exit左移两位,跳转相对于PC的地址(pc+Exit<<2),用于循环loop和if中
条件跳转不能远跳,用无条件代替
beq $s0, $s1, L1
...
bne $s0, $s1, L2
j L1
L2;
范围检查
if($a1>=$t2 && $a1<0) goto indexOutOfBounds
sltu $t0, $a1, $t2 #Temp
reg$t0=0 if k>=length or k<0
beq$ t0, $zero, IndexOutofBounds
网友评论