オペコード | デバッグモード表記 | 説明 |
...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 | reg0R | imm32 | | | | | LIMM(reg0R, imm32); | reg0R = imm32; |
03 | reg0R | imm32 | | | | | PLIMM(reg0R, imm32); | reg0R = 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 | reg0R | reg1R | FF | | | | | | | CP(reg0R, reg1R); | reg0R = reg1R; |
10 | reg0R | reg1R | reg2R | | | | | | | OR(reg0R, reg1R, reg2R); | reg0R = (reg1R | reg2R); |
11 | reg0R | reg1R | reg2R | | | | | | | XOR(reg0R, reg1R, reg2R); | reg0R = (reg1R ^ reg2R); |
12 | reg0R | reg1R | reg2R | | | | | | | AND(reg0R, reg1R, reg2R); | reg0R = (reg1R & reg2R); |
14 | reg0R | reg1R | reg2R | | | | | | | ADD(reg0R, reg1R, reg2R); | reg0R = (reg1R + reg2R); |
15 | reg0R | reg1R | reg2R | | | | | | | SUB(reg0R, reg1R, reg2R); | reg0R = (reg1R - reg2R); |
16 | reg0R | reg1R | reg2R | | | | | | | MUL(reg0R, reg1R, reg2R); | reg0R = (reg1R * reg2R); |
18 | reg0R | reg1R | reg2R | | | | | | | SHL(reg0R, reg1R, reg2R); | reg0R = (reg1R << reg2R); |
19 | reg0R | reg1R | reg2R | | | | | | | SAR(reg0R, reg1R, reg2R); | reg0R = (reg1R >> reg2R); |
1A | reg0R | reg1R | reg2R | | | | | | | DIV(reg0R, reg1R, reg2R); | reg0R = (reg1R / reg2R); |
1B | reg0R | reg1R | reg2R | | | | | | | MOD(reg0R, reg1R, reg2R); | reg0R = (reg1R % reg2R); |
1E | reg0P | reg1P | | | | | | | | PCP(reg0P, reg1P); | reg0P = reg1P |
20 | reg0R | reg1R | reg2R | | | | | | | CMPE(reg0R, reg1R, reg2R); | reg0R = (reg1R == reg2R) ? -1 : 0; |
21 | reg0R | reg1R | reg2R | | | | | | | CMPNE(reg0R, reg1R, reg2R); | reg0R = (reg1R != reg2R) ? -1 : 0; |
22 | reg0R | reg1R | reg2R | | | | | | | CMPL(reg0R, reg1R, reg2R); | reg0R = (reg1R < reg2R) ? -1 : 0; |
23 | reg0R | reg1R | reg2R | | | | | | | CMPGE(reg0R, reg1R, reg2R); | reg0R = (reg1R >= reg2R) ? -1 : 0; |
24 | reg0R | reg1R | reg2R | | | | | | | CMPLE(reg0R, reg1R, reg2R); | reg0R = (reg1R <= reg2R) ? -1 : 0; |
25 | reg0R | reg1R | reg2R | | | | | | | CMPG(reg0R, reg1R, reg2R); | reg0R = (reg1R > reg2R) ? -1 : 0; |
26 | reg0R | reg1R | reg2R | | | | | | | TSTZ(reg0R, reg1R, reg2R); | reg0R = ((reg1R & reg2R) == 0) ? -1 : 0; |
27 | reg0R | reg1R | reg2R | | | | | | | TSTNZ(reg0R, reg1R, reg2R); | reg0R = ((reg1R & reg2R) != 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; |
32 | reg0P | reg1R | reg2R | | | | | | | MALLOC(reg0P, reg1R, reg2R); | reg0P = &(reg1R *)[reg2R]; |
34 | typ32 | len32 | data... | DATA(type32, length32);[data] | |
FE | len | ... | | | | | | | | REMARK(len);[...] | |