Skip to content

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 コプロセッサ不使用例外
Clone this wiki locally