| Abkürzung | Bedeutung |
|---|---|
| RD | Zielregister |
| RS1 | Quellregister 1 |
| RS2 | Quellregister 2 |
| LA | Label eines Sprungzieles |
| IM | Immediate (Konstante) |
| PC | Programmzeiger |
| RAM | Arbeitsspeicher (Random Access Memory) |
| Befehl | Parameter | Operation | Bedeutung |
|---|---|---|---|
| lw | RD, Adresse | RD := RAM[Adresse] | Load Word |
| sw | RS1, Adresse | RAM[Adresse] := RS1 | Save Word |
| Befehl | Parameter | Operation | Bedeutung |
|---|---|---|---|
| add | RD, RS1, RS2 | RD := RS1 + RS2 | Addition mit Überlauf |
| addi | RD, RS1, IM | RD := RS1 + IM | Addition Immediate mit Überlauf |
| addu | RD, RS1, RS2 | RD := RS1 + RS2 | Addition ohne Überlauf |
| addiu | RD, RS1, IM | RD := RS1 + IM | Addition Immediate ohne Überlauf |
| sub | RD, RS1, RS2 | RD := RS1 - RS2 | Subtraktion mit Überlauf |
| subu | RD, RS1, RS2 | RD := RS1 - RS2 | Subtraktion ohne Überlauf |
| Befehl | Parameter | Operation | Bedeutung |
|---|---|---|---|
| and | RD, RS1, RS2 | RD := RS1 AND RS2 | and |
| andi | RD, RS1, IM | RD := RS1 AND IM | and Immediate |
| nor | RD, RS1, RS2 | RD := RS1 NOR RS2 | not or |
| or | RD, RS1, RS2 | RD := RS1 OR RS2 | or |
| ori | RD, RS1, IM | RD := RS1 OR IM | or Immediate |
| xor | RD, RS1, RS2 | RD := RS1 XOR RS2 | exclusive or |
| xori | RD, RS1, IM | RD := RS1 XOR IM | exclusive or Immediate |
| Befehl | Parameter | Operation | Bedeutung |
|---|---|---|---|
| sgt | RD, RS1, RS2 | RD := 1, wenn RS1 > RS2 RD := 0, sonst |
set greater than |
| sgtu | RD, RS1, RS2 | RD := 1, wenn RS1 > RS2 RD := 0, sonst |
set greater than unsigned |
| slt | RD, RS1, RS2 | RD := 1, wenn RS1 < RS2 RD := 0, sonst |
set less than |
| sltu | RD, RS1, RS2 | RD := 1, wenn RS1 < RS2 RD := 0, sonst |
set less than unsigned |
| slti | RD, RS1, IM | RD := 1, wenn RS1 < IM RD := 0, sonst |
set less than Immediate |
| sltui | RD, RS1, IM | RD := 1, wenn RS1 < IM RD := 0, sonst |
set less than unsigned Immediate |
| Befehl | Parameter | Operation | Bedeutung |
|---|---|---|---|
| sll | RD, RS1, IM | RD := RS1 << IM | shift left logical |
| sllv | RD, RS1, RS2 | RD := RS1 << RS2 | shift left logical variable |
| srl | RD, RS1, IM | RD := RS1 >> IM | shift right logical |
| srlv | RD, RS1, RS2 | RD := RS1 >> RS2 | shift right logical variable |
| sra | RD, RS1, IM | RD := RS1 ÷ 2IM | shift right arithmetic |
| srav | RD, RS1, RS2 | RD := RS1 ÷ 2RS2 | shift right arithmetic variable |
| Befehl | Parameter | Operation | Bedeutung |
|---|---|---|---|
| b | LA | PC := Adresse(LA) | Branch |
| beq | RS1, RS2, LA | PC := Adresse(LA), falls RS1 = RS2 | Branch if equal |
| beqz | RS1, LA | PC := Adresse(LA), falls RS1 = 0 | Branch if equal zero |
| bne | RS1, RS2, LA | PC := Adresse(LA), falls RS1 ≠ RS2 | Branch if not equal |
| bnez | RS1, LA | PC := Adresse(LA), falls RS1 ≠ 0 | Branch if equal not zero |
| bgez | RS1, LA | PC := Adresse(LA), falls RS1 ≥ 0 | Branch if greater or equal zero |
| bgtz | RS1, LA | PC := Adresse(LA), falls RS1 > 0 | Branch if greater than zero |
| blez | RS1, LA | PC := Adresse(LA), falls RS1 ≤ 0 | Branch if less or equal zero |
| bltz | RS1, LA | PC := Adresse(LA), falls RS1 < 0 | Branch if less than zero |
| j | LA | PC := Adresse(LA) | Jump |