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的高位位元。

results matching ""

    No results matching ""