試験参考資料 ※ レジスタとレジスタ番号 レジスタ $zero $t0 $t1 $t2 $t3 $t4 $t5 $t6 $t7 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $gp レジスタ 番号 0 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 28 ※ $zero は定数 0 が格納されているレジスタ ※ 以下の命令表記において $Rn はレジスタの一般表記を表す。 (1) lw 命令 形式表記 lw $Ri, N($Rj) 命令動作 $Ri ← 主記憶 N+$Rj 番地の内容 機械語 100011 $Rj のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) オフセット N (16bit;2 の補数表現) $Ri のレジスタ番号 (5bit) オフセット N (16bit;2 の補数表現) (2) sw 命令 形式表記 sw $Ri, N($Rj) 命令動作 主記憶 N+$Rj 番地 ← $Ri 機械語 101011 $Rj のレジスタ番号 (5bit) (3) add 命令 形式表記 add $Ri, $Rj, $Rk 命令動作 $Ri ← $Rj + $Rk 機械語 000000 $Rj のレジスタ番号 (5bit) $Rk のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) 00000 100000 $Rk のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) 00000 100010 (4) sub 命令 形式表記 sub $Ri, $Rj, $Rk 命令動作 $Ri ← $Rj - $Rk 機械語 000000 $Rj のレジスタ番号 (5bit) (5) addi 命令 形式表記 addi $Ri, $Rj, Imm Imm は 16bit 符号付(2 の補数表現)整数の即値データ 命令動作 $Ri ← $Rj + Imm 機械語 001000 $Rj のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) 即値 Imm (16bit;2 の補数表現) (6) sll 命令 形式表記 sll $Ri, $Rj, m 命令動作 $Ri ← $Rj << m (m bit の左論理シフト) 機械語 000000 00000 $Rj のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) m (5bit) 000000 (7) srl 命令 形式表記 srl $Ri, $Rj, m 命令動作 $Ri ← $Rj >> m (m bit の右論理シフト) 機械語 000000 00000 $Rj のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) m (5bit) 000010 m (5bit) 000011 (8) sra 命令 形式表記 sra $Ri, $Rj, m 命令動作 $Ri ← $Rj >> m (m bit の右算術シフト) 機械語 000000 00000 $Rj のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) (9) beq 命令 形式表記 beq $Ri, $Rj, label $Ri と $Rj が等しければ label(label に対応する主記憶番地)に分岐,さもなければ次の番地 命令動作 の命令を実行 機械語 000100 $Ri のレジスタ番号 (5bit) $Rj のレジスタ番号 (5bit) 分岐先アドレスのオフセット (16bit;2 の補数表現) ※ 分岐先アドレスのオフセットは「(分岐先のアドレス- 4 –この分岐命令のアドレス)÷4」 の値を 16 ビットで 2 の補数表現した値 (bne 命令,b 命令も同様) (10) bne 命令 形式表記 bne $Ri, $Rj, label 命令動作 $Ri と $Rj が等しくなければ label(label に対応する主記憶番地)に分岐,さもなければ次の番地 の命令を実行 機械語 000101 $Ri のレジスタ番号 (5bit) $Rj のレジスタ番号 (5bit) 分岐先アドレスのオフセット (16bit;2 の補数表現) (11) b 命令 形式表記 b label 命令動作 常に label(label に対応する主記憶番地)に分岐 機械語 000100 00000 00000 分岐先アドレスのオフセット (16bit;2 の補数表現) (12) slt 命令 形式表記 slt $Ri, $Rj, $Rk 命令動作 $Rj < $Rk ならば$Ri に 1 を格納し,そうでなければ($Rj≧$Rk ならば)$Ri に 0 を格納する 機械語 000000 $Rj のレジスタ番号 (5bit) $Rk のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) 00000 101010 (13) slti 命令 形式表記 slti $Ri, $Rj, Imm Imm は 16bit 符号付(2 の補数表現)整数の即値データ 命令動作 $Rj < Imm ならば$Ri に 1 を格納し,そうでなければ($Rj≧Imm ならば)$Ri に 0 を格納する 機械語 001010 $Rj のレジスタ番号 (5bit) $Ri のレジスタ番号 (5bit) 即値 Imm (16bit;2 の補数表現)
© Copyright 2024 ExpyDoc