MIPS Assembly Language MIPS組合語言
常用語法:
功能 |
用法 |
解釋 |
加法 |
add $t0, $s1, $s2 |
$t0 = $s1 + $s2 |
減法 |
sub $t0, $s1, $s2 |
$t0 = $s1 - $s2 |
加(減)常數 |
addi $t0, $s1, 3 |
$t0 = $s1 + 3 |
載入字組 |
lw $t0, 4($s1) |
$t0 = Memory[$s1 + 4] |
儲存字組 |
sw $t0, 4($s1) |
Memory[$s1 + 4] = $t0 |
左移 |
sll $t0, $s1, 2 |
$t0 = $s1 << 2 |
右移 |
srl $t0, $s1, 2 |
$t0 = $s1 >> 2 |
判斷相等 |
beq $t0, $s1, ELSE |
if($t0 == $s1)則前往ELSE |
判斷不相等 |
bne $t0, $s1, ELSE |
if($t0 != $s1)則前往ELSE |
判斷小於 |
slt $t0, $s1, $s2 |
if($s1 < $s2)則$t0 = 1 |
暫存器跳躍 |
jr $ra |
前往$ra(後面解釋) |
跳躍並且連結 |
jal temp |
前往temp並且執行下一行 |
常用暫存器:
名稱 |
編號 |
用途 |
$s0 ~ $s7 |
16 ~ 23 |
保留暫存器 |
$t0 ~ $t7 |
8 ~ 15 |
臨時暫存器 |
$v0 ~ $v1 |
2 ~ 3 |
傳回值暫存器 |
$a0 ~ $a3 |
4 ~ 7 |
參數暫存器 |
$sp |
29 |
堆疊指標 |
$ra |
31 |
程式返回位置 |
MIPS定址模式:
1. 立即定址(immediate addressing):運算元為一個暫存器中的值。
2. 基底或位移定址法(base or displacement addressing):運算元位址加上指令中的常數。
3. PC相對定址法(PC-relative addressing):分支位址為PC(Programe Counter)加上指令中的常數。
4. 虛擬直接定址法(pseudodirect addressing):跳躍位址為指令中的26個位元再於其前串加上PC的高位位元。