-
Notifications
You must be signed in to change notification settings - Fork 0
R3000の命令一覧
Takuya Kojima edited this page Jul 30, 2019
·
2 revisions
R3000の命令一覧
ただし
- GPR[x]: x番汎用レジスタ
- singed: 符号拡張
- unsigned: ゼロ拡張
- z : コプロセッサ番号
- CPR[z, x]* コプロセッサzのx番レジスタ
- CCR[z, x]* コプロセッサzのx番制御レジスタ
命令 | opcode(functなど) | 型 | 形式 | 意味 | 例外 |
---|---|---|---|---|---|
ADD | SPECIAL(ADD) | R | ADD rd,rs,rt | GPR[rd]←GPR[rs]+GPR[rt] | オーバーフロー例外あり |
ADDI | ADDI | I | ADDI rt,rs,imm | GPR[rt]←GPR[rs]+singed(imm) | オーバーフロー例外あり |
ADDIU | ADDIU | I | ADDIU rt,rs,imm | GPR[rt]←GPR[rs]+singed(imm) | オーバーフロー例外 なし |
ADDU | SPECIAL(ADDU) | R | ADDU rd,rs,rt | GPR[rd]←GPR[rs]+GPR[rt] | オーバーフロー例外 なし |
AND | SPECIAL(AND) | R | AND rd,rs,rt | GPR[rd]←GPR[rs] and GPR[rt] | |
ANDI | ANDI | I | ANDI rt,rs,imm | GPR[rt]←GPR[rs] and unsinged(imm) | |
BCzF | COPz(BCF) | CP | BCzF offset | if not CpCond[z]; PC←PC+signed(offset)x4 |
コプロセッサ不使用例外 |
BCzT | COPz(BCT) | CP | BCzT offset | if CpCond[z]; PC←PC+signed(offset)x4 |
コプロセッサ不使用例外 |
BEQ | BEQ | I | BEQ rs,rt,offset | if GPR[rs]==GPR[rt]; PC←PC+signed(offset)x4 |
|
BEGZ | BCOND(BGEZ) | I | BGEZ rs,offset | if GPR[rs]>=0; PC←PC+signed(offset)x4 |
|
BEGZAL | BCOND(BGEZAL) | I | BGEZ rs,offset | if GPR[rs]>=0; PC←PC+signed(offset)x4 GPR[31]←PC+8 |
|
BGTZ | BGTZ | I | BGTZ rs,offset | if GPR[rs]>0; PC←PC+signed(offset)x4 |
|
BLEZ | BLEZ | I | BLEZ rs,offset | if GPR[rs]<=0; PC←PC+signed(offset)x4 |
|
BLTZ | BCOND(BLTZ) | I | BLTZ rs,offset | if GPR[rs]<0; PC←PC+signed(offset)x4 |
|
BLTZAL | BCOND(BLTZAL) | I | BLTZAL rs,offset | if GPR[rs]<0; PC←PC+signed(offset)x4 GPR[31]←PC+8 |
|
BNE | BNE | I | BNE rs,rt,offset | if GPR[rs]!=GPR[rt]; PC←PC+signed(offset)x4 |
|
BREAK | SPECIAL(BREAK) | BREAK | PC←ExceptionHandler | ブレークポイントトラップ | |
COPz | COPz | CP | COPz cofunc | コプロセッサ不使用例外 |