ので、基本的なところから行きます。
| コード | ニーモニック | 書式 | 説明 |
|---|---|---|---|
| 00 | NOP | NOP | 何もしない |
| 01 | CALL | CALL functionID | 関数/メソッドの呼び出し |
| 07 | RET | RET | 関数/メソッドから戻る |
| 10 | GOTO | GOTO label | 指定したアドレスに制御を移行する |
| 11 | JZ | JS label | ゼロフラグが1のとき(=)、指定したアドレスに制御を移行する |
| 12 | JNZ | JNS label | ゼロフラグが0のとき(≠)、指定したアドレスに制御を移行する |
| 13 | JS | JS label | サインフラグが1のとき(負)、指定したアドレスに制御を移行する |
| 14 | JNS | JNS label | サインフラグが0のとき(正またはゼロ)、指定したアドレスに制御を移行する |
| 15 | JO | JS label | オーバーフローフラグが1のとき、指定したアドレスに制御を移行する |
| 16 | JNO | JNS label | オーバーフローフラグが0のとき、指定したアドレスに制御を移行する |
| 17 | JB | JB label | キャリーフラグが1のとき(符号なし<)、指定したアドレスに制御を移行する |
| 18 | JAE | JAE label | キャリーフラグが0のとき(符号なし≧)、指定したアドレスに制御を移行する |
| 19 | JBE | JBE label | キャリーフラグが1またはゼロフラグが1のとき(符号なし≦)、指定したアドレスに制御を移行する |
| 1A | JA | JA label | キャリーフラグが0かつゼロフラグが0のとき(符号なし>)、指定したアドレスに制御を移行する |
| 1B | JGE | JGE label | オーバーフローフラグ=サインフラグのとき(符号あり≧)、指定したアドレスに制御を移行する |
| 1C | JL | JL label | オーバーフローフラグ≠サインフラグのとき(符号なし<)、指定したアドレスに制御を移行する |
| 1D | JG | JG label | オーバーフローフラグ=サインフラグかつゼロフラグが0のとき(符号なし>)、指定したアドレスに制御を移行する |
| 1E | JLE | JLE label | オーバーフローフラグ≠サインフラグかつゼロフラグが1のとき(符号なし≦)、指定したアドレスに制御を移行する |
| 20 | CMP | CMP1 | スタックの1つ目からスタックの2つ目を比較した結果をフラグに反映する |
| 21 | CMP2 | ||
| 22 | CMP4 | ||
| 23 | CMP8 | ||
| 24 | CMP imm8 | スタックの1つ目から指定した値を比較した結果をフラグに反映する | |
| 25 | CMP imm16 | ||
| 26 | CMP imm32 | ||
| 27 | CMP imm64 | ||
| 4C | POP | POP mem8 | スタックから値を取り出す |
| 4D | POP mem16 | ||
| 4E | POP mem32 | ||
| 4F | POP mem64 | ||
| 50 | PUSH | PUSH imm8 | スタックに値をプッシュする |
| 51 | PUSH imm16 | ||
| 52 | PUSH imm32 | ||
| 53 | PUSH imm64 | ||
| 54 | PUSH mem8 | スタックに指定したアドレスのメモリ値をプッシュする | |
| 55 | PUSH mem16 | ||
| 56 | PUSH mem32 | ||
| 57 | PUSH mem64 | ||
| 70 | NOT | NOT1 | スタックトップの値をビット反転する |
| 71 | NOT2 | ||
| 72 | NOT4 | ||
| 73 | NOT8 | ||
| 78 | NEG | NEG1 | スタックトップの値の正負を反転する。値が0または負数最小の場合変化しない |
| 79 | NEG2 | ||
| 7A | NEG4 | ||
| 7B | NEG8 | ||
| 8000 | ADD | ADD1 | スタックから値を2つポップして、加算した結果をプッシュする |
| 8001 | ADD2 | ||
| 8002 | ADD4 | ||
| 8003 | ADD8 | ||
| 8010 | SUB | SUB1 | スタックの1つ目からスタックの2つ目を減算した結果をプッシュする |
| 8011 | SUB2 | ||
| 8012 | SUB4 | ||
| 8013 | SUB8 | ||
| 8020 | MUL | MUL1 | スタックから値を2つポップして、符号なし乗算した結果をプッシュする |
| 8021 | MUL2 | ||
| 8022 | MUL4 | ||
| 8023 | MUL8 | ||
| 802C | SHL | SHL1 | POP CX POP AX AND CL, 10h SHL AX,CL PUSH AX |
| 802D | SHL2 | ||
| 802E | SHL4 | ||
| 802F | SHL8 | ||
| 8030 | IMUL | IMUL1 | スタックから値を2つポップして、符号つき乗算した結果をプッシュする |
| 8031 | IMUL2 | ||
| 8032 | IMUL4 | ||
| 8033 | IMUL8 | ||
| 8040 | DIV | DIV1 | スタックの1つ目からスタックの2つ目を符号なし除算した商と剰余をプッシュする |
| 8041 | DIV2 | ||
| 8042 | DIV4 | ||
| 8043 | DIV8 | ||
| 804C | SHR | SHR1 | POP CX POP AX AND CL, 10h SHR AX,CL PUSH AX |
| 804D | SHR2 | ||
| 804E | SHR4 | ||
| 804F | SHR8 | ||
| 8050 | IDIV | IDIV1 | スタックの1つ目からスタックの2つ目を符号つき除算した商と剰余をプッシュする |
| 8051 | IDIV2 | ||
| 8052 | IDIV4 | ||
| 8053 | IDIV8 | ||
| 805C | SAR | SAR1 | POP CX POP AX AND CL, 10h SAR AX,CL PUSH AX |
| 805D | SAR2 | ||
| 805E | SAR4 | ||
| 805F | SAR8 | ||
| 8090 | AND | AND1 | POP DX POP AX AND AX,DX PUSH AX |
| 8091 | AND2 | ||
| 8092 | AND4 | ||
| 8093 | AND8 | ||
| 80A0 | OR | OR1 | POP DX POP AX OR AX,DX PUSH AX |
| 80A1 | OR2 | ||
| 80A2 | OR4 | ||
| 80A3 | OR8 | ||
| 80B0 | XOR | XOR1 | POP DX POP AX XOR AX,DX PUSH AX |
| 80B1 | XOR2 | ||
| 80B2 | XOR4 | ||
| 80B3 | XOR8 |
