机器码格式
1
|
[op:rs:rt:rd:shmt:func]
|
op: 操作符
rs: 操作数1
rt: 操作数2
rd: 结果存放
shmt: 移位量
func: 函数
语法
操作数
aka word
- $32$ 个寄存器字
$s0 - $s7
$t0 - $t9
$a0 - $a3
$v0 - $v1
$zero
$gp
$fp
$sp
$ra
$at
- $2^{30}$ 个存储器字
操作符
| 类别 |
指令 |
格式 |
含义 |
| 算术 |
加法 |
add $s0,$s1,$s2 |
$s0 = $s1 + $s2 |
| 算术 |
减法 |
sub $s0,$s1,$s2 |
$s0 = $s1 - $s2 |
| 算术 |
立即数加法 |
addi $s0,$s1,20 |
$s0 = $s1 + 20 |
| 数据传输 |
取字 load word |
lw $s0,20($s1) |
$s0 = Memory[$s2 + 20] |
| 数据传输 |
存字 store word |
sw $s0,20($s1) |
Memory[$s2 + 20] = $s0 |
| 逻辑 |
与 |
and |
|
| 逻辑 |
或 |
or |
|
| 逻辑 |
或非 |
nor |
|
| 逻辑 |
逻辑左移 |
sll |
|
| 逻辑 |
逻辑右移 |
srl |
|
| 条件分支 |
相等时跳转 |
beq |
|
| 条件分支 |
不等时跳转 |
bne |
|
| 条件分支 |
小于时条件 |
slt |
|
| 无条件跳转 |
跳转 |
j 2500 |
goto 10000 |
| 无条件跳转 |
寄存器跳转 |
jr $ra |
goto $ra |