ADD a b c
R.a = R.b + R.c SUB a b c
R.a = R.b - R.c MUL a b c
R.a = R.b * R.c DIV a b c
R.a = R.b DIV R.c MOD a b c
R.a = R.b MOD R.c CMP a b c
R.a = R.b - R.c OR a b c
R.a = R.b OR R.c AND a b c
R.a = R.b & R.c BIC a b c
R.a = R.b & ~ R.c XOR a b c
R.a = R.b XOR R.c LSH a b c
R.a = LSH(R.b R.c) ASH a b c
R.a = ASH(R.b R.c) CHK a c
0 <= R.a < R.c ADDI a b c
R.a = R.b + c SUBI a b c
R.a = R.b - c MULI a b c
R.a = R.b * c DIVI a b c
R.a = R.b DIV c MODI a b c
R.a = R.b MOD c CMPI a b c
R.a = R.b - c ORI a b c
R.a = R.b OR c ANDI a b c
R.a = R.b & c BICI a b c
R.a = R.b & ~ c XORI a b c
R.a = R.b XORI c LSHI a b c
R.a = LSH(R.b c) ASHI a b c
R.a = ASH(R.b c) CHKI a c
0 <= R.a < c ADDIU a b c
R.a = R.b + c (unsigned) SUBIU a b c
R.a = R.b - c (unsigned) MULIU a b c
R.a = R.b * c (unsigned) DIVIU a b c
R.a = R.b DIV c (unsigned) MODIU a b c
R.a = R.b MOD c (unsigned) CMPIU a b c
R.a = R.b - c (unsigned) ORIU a b c
R.a = R.b OR c (unsigned) ANDIU a b c
R.a = R.b & c (unsigned) BICIU a b c
R.a = R.b & ~ c (unsigned) XORIU a b c
R.a = R.b XORI c (unsigned) CHKIU a c
0 <= R.a < c (unsigned) LDW a b c
R.a = Mem[R.b + c] LDB a b c
R.a = Mem[R.b + c] POP a b c
R.a = Mem[R.b];
R.b = R.b + c STW a b c
Mem[R.b + c] = R.a STB a b c
Mem[R.b + c] = R.a PSH a b c
R.b = R.b - c;
Mem[R.b] = R.a The target addresses of branch instructions are word addresses.
BEQ a cc if R.a = 0 BNE a cc if R.a # 0 BLT a cc if R.a "<" 0 BGE a cc if R.a >= 0 BLE a cc if R.a <= 0 BGT a cc if R.a > 0 BSR cPC in R31, then branch to c (address PC relative) JSR cPC in R31, then jump to c (address absolute) RET cR.c (address absolute) RD a
R.a = inputWRD c
prints R.cWRH c
prints R.cWRL
prints a newlinec is 16 bit wide