MIPS小记

汇编

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

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

推荐阅读更多精彩内容