オペコード | デバッグモード表記 | 説明 |
...1... | ...2... | ...3... | ...4... | ...5... | ...6... | ...7... | ...8... | ...9... | ..10... | | |
00 | | | | | | | | | | NOP(); | (No operation) |
01 | opt | imm32 | | | | | LB(opt, imm32); | set label#imm32 to current address. |
02 | reg0 | imm32 | | | | | LIMM(reg0, imm32); | reg0 = imm32; |
03 | reg0 | imm32 | | | | | PLIMM(reg0, imm32); | reg0 = Pointer of label #imm32; |
04 | reg0R | | | | | | | | | CND(reg0R); | if((reg0R & 1) == 1){ execute next; } else { pass next; } |
08 | reg0R | typ32 | reg1P | 00 | | | LMEM(reg0R, typ32, reg1P, 0); | reg0R = *((typ32 *) reg1P); |
09 | reg0R | typ32 | reg1P | 00 | | | SMEM(reg0R, typ32, reg1P, 0); | *((typ32 *) reg1P) = reg0R; |
0E | reg0P | typ32 | reg1P | reg2R | | | PADD(reg0P, typ32, reg1P, reg2R); | reg0P = reg1P + reg2R; |
0F | reg0R | typ32 | reg1P | reg2P | | | PDIF(reg0R, typ32, reg1P, reg2P); | reg0R = reg1P - reg2P; |
10 | reg0 | reg1 | FF | | | | | | | CP(reg0, reg1); | reg0 = reg1; |
10 | reg0 | reg1 | reg2 | | | | | | | OR(reg0, reg1, reg2); | reg0 = (reg1 | reg2); |
11 | reg0 | reg1 | reg2 | | | | | | | XOR(reg0, reg1, reg2); | reg0 = (reg1 ^ reg2); |
12 | reg0 | reg1 | reg2 | | | | | | | AND(reg0, reg1, reg2); | reg0 = (reg1 & reg2); |
14 | reg0 | reg1 | reg2 | | | | | | | ADD(reg0, reg1, reg2); | reg0 = (reg1 + reg2); |
15 | reg0 | reg1 | reg2 | | | | | | | SUB(reg0, reg1, reg2); | reg0 = (reg1 - reg2); |
16 | reg0 | reg1 | reg2 | | | | | | | MUL(reg0, reg1, reg2); | reg0 = (reg1 * reg2); |
18 | reg0 | reg1 | reg2 | | | | | | | SHL(reg0, reg1, reg2); | reg0 = (reg1 << reg2); |
19 | reg0 | reg1 | reg2 | | | | | | | SAR(reg0, reg1, reg2); | reg0 = (reg1 >> reg2); |
1A | reg0 | reg1 | reg2 | | | | | | | DIV(reg0, reg1, reg2); | reg0 = (reg1 / reg2); |
1B | reg0 | reg1 | reg2 | | | | | | | MOD(reg0, reg1, reg2); | reg0 = (reg1 % reg2); |
1E | reg0P | reg1P | | | | | | | | PCP(reg0P, reg1P); | reg0P = reg1P |
20 | reg0 | reg1 | reg2 | | | | | | | CMPE(reg0, reg1, reg2); | reg0 = (reg1 == reg2) ? -1 : 0; |
21 | reg0 | reg1 | reg2 | | | | | | | CMPNE(reg0, reg1, reg2); | reg0 = (reg1 != reg2) ? -1 : 0; |
22 | reg0 | reg1 | reg2 | | | | | | | CMPL(reg0, reg1, reg2); | reg0 = (reg1 < reg2) ? -1 : 0; |
23 | reg0 | reg1 | reg2 | | | | | | | CMPGE(reg0, reg1, reg2); | reg0 = (reg1 >= reg2) ? -1 : 0; |
24 | reg0 | reg1 | reg2 | | | | | | | CMPLE(reg0, reg1, reg2); | reg0 = (reg1 <= reg2) ? -1 : 0; |
25 | reg0 | reg1 | reg2 | | | | | | | CMPG(reg0, reg1, reg2); | reg0 = (reg1 > reg2) ? -1 : 0; |
26 | reg0 | reg1 | reg2 | | | | | | | TSTZ(reg0, reg1, reg2); | reg0 = ((reg1 & reg2) == 0) ? -1 : 0; |
27 | reg0 | reg1 | reg2 | | | | | | | TSTNZ(reg0, reg1, reg2); | reg0 = ((reg1 & reg2) != 0) ? -1 : 0; |
28 | reg0R | reg1P | reg2P | | | | | | | PCMPE(reg0R, reg1P, reg2P); | reg0R = (reg1P == reg2P) ? -1 : 0; |
29 | reg0R | reg1P | reg2P | | | | | | | PCMPNE(reg0R, reg1P, reg2P); | reg0R = (reg1P != reg2P) ? -1 : 0; |
2A | reg0R | reg1P | reg2P | | | | | | | PCMPL(reg0R, reg1P, reg2P); | reg0R = (reg1P < reg2P) ? -1 : 0; |
2B | reg0R | reg1P | reg2P | | | | | | | PCMPGE(reg0R, reg1P, reg2P); | reg0R = (reg1P >= reg2P) ? -1 : 0; |
2C | reg0R | reg1P | reg2P | | | | | | | PCMPLE(reg0R, reg1P, reg2P); | reg0R = (reg1P <= reg2P) ? -1 : 0; |
2D | reg0R | reg1P | reg2P | | | | | | | PCMPG(reg0R, reg1P, reg2P); | reg0R = (reg1P > reg2P) ? -1 : 0; |
34 | typ32 | len32 | data... | DATA(type32, length32);[data] | |
FE | len | ... | | | | | | | | REMARK(len);[...] | |