控制流 指令集
最后更新于:2022-04-02 04:23:20
[TOC]
## 控制流
### if else系列
```
b target # unconditional branch to program label target
beq $t0,$t1,target # branch to target if $t0 = $t1
blt $t0,$t1,target # branch to target if $t0 < $t1
ble $t0,$t1,target # branch to target if $t0 <= $t1
bgt $t0,$t1,target # branch to target if $t0 > $t1
bge $t0,$t1,target # branch to target if $t0 >= $t1
bne $t0,$t1,target # branch to target if $t0 <> $t1
```
### 跳转(while, for, goto系列)
```
j target # 看到就跳, 不用考虑任何条件
jr $t3 # 类似相对寻址,跳到该寄存器给出的地址处
```
### 子程序调用
```
jal sub_label #将当前的程序计数器保存到 $ra 中
```
- 如果说调用的子程序中有调用了其他子程序,如此往复, 则返回地址的标记就用 栈(stack) 来存储, 毕竟 $ra 只有一个
';