ので、基本的なところから行きます。
コード | ニーモニック | 書式 | 説明 |
---|---|---|---|
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 |