| ニーモニック | 戻値の場所 | 説明 | 略称の元名 |
| ksamd64.inc | | prologやepilogで利用するマクロが入っているファイル | |
| include ファイル名 | | ファイルを読み込む | |
| mov dest,src | dest | デスティネーションにソースを代入(コピー) | move |
| _TEXT segment | | ソースファイルの最初に書く | |
| _TEXT ends \n end | | ソースファイルの最後に書く | |
| align 数字 | | 関数の先頭アドレスを16バイト境界にそろえる(関数呼び出しのオーバーヘッドを低減できる) | |
| 関数名 proc | | 関数の初め | |
| 関数名 proc frame | | 関数の初め(prologを利用する場合の関数の初めの記述) | |
| 関数名 endp | | 関数の終わり | |
| [レジスタ] | | レジスタの値が指すアドレスの中身を示す(ほぼほぼポインタで利用する?) | |
| [レジスタ+n(byte)] | | レジスタのアドレスをnバイト進めたアドレスの中身を指す | |
| メモリサイズ ptr | | メモリのサイズを指定しレジスタを指定する | |
| ret | | 呼出もとへ戻る | return |
| public 関数名 | | 関数の定義 | |
| add dest,src | dest | デスティネーションにソースを加算 | add |
| addsd dest,src | dest | デスティネーションにソースを加算(double,float) | |
| sub dest,src | dest | デスティネーションからソースを減算 | subtract |
| imul src | rax系 | 符号付き乗算。RAX系のレジスタにソースオペランドの値を乗算しRAXに結果を格納 | Multiplication |
| imul dest,src | dest | 符号付き乗算。デスティネーションにソースを乗算 | |
| imul dest,src1,src2 | rax系 | 符号付き乗算。ソース1とソース2を乗算しデスティネーションに結果を格納 | |
| idiv src | raxとrdx系 | 被序数はEDX:EAX,DX:AX,AXでsrcで除算する。結果は被序数と同じレジスタ。剰余はRDX系 | Division |
| inc dest | | destをインクリメントする | increment |
| dec dest | | destをデクリメントする | decrement |
| and dest src | | destとsrcの論理積、結果はdestへ保存 | |
| or dest src | | destとsrcの論理和、結果はdestへ保存 | |
| xor dest src | | destとsrcの排他的論理和、結果はdestへ保存 | |
| sar dest,count | | countで指定した桁だけdestを右シフト | |
| sal dest,count | | countで指定した桁だけdestを左シフト | |
| shl dest,count | | countで指定した桁だけdestを左シフト(Unsigned) | |
| shr dest,count | | countで指定した桁だけdestを右シフト(Unsigned) | |
| rol dest,count | | ビットを左回転させる | |
| ror dest,count | | ビットを右回転させる | |
| stc | | CFフラグをセットする | |
| clc | | CFフラグをクリアする | |
| jmp dest | | ラベルまでジャンプする | |
| jne dest | | ZFフラグが0の時destのメモリロケーションへ制御を以降する。(src1 != src2) | |
| cmp src1,src2 | | src2からsrc1を引き結果が0ならZFを1に桁上がりが生じたらCFフラグを1にする。 | |
| std | | DFフラグをセットする | |
| cld | | DFフラグをクリアする | |
| jl dest | | SFが変わらずOFフラグが0の時destまでジャンプ。Signedとして扱う(src1 < src2) | |
| jg dest | | src1 > src2 | |
| jb dest | | CFフラグが0の時destまでジャンプ。UnSignedとして扱う(src1 < src2) | |
| ja dest | | CFフラグが1の時destまでジャンプ。UnSiegnedとして扱う(src1 > src2) | |
| jz dest | | ZFフラグが1の時destまでジャンプ。(src1 = src2) | jumpzero |
| jnz dest | | src1 != src2 | jumpnotzero |
| jbe dest | | unsigned(src1 <= src2) | |
| jae dest | | unsigned(src1 >= src2) | |
| jle dest | | signed(src1 <= src2) | |
| jge dest | | signed(src1 >= src2) | |
| loop dest | | ecx,rcxの値をカウンタとしてループ操作を実行する。戻先はdest | |
| lea dest src | | srcのメモリアドレスをdestへ移す | |
| rex_push_reg dest | | destを | |
| prolog | | | |
| .endprolog | | prologの終わりを示す | |
| pop dest | | destをポップする。 | |
| push dest | | RSPレジスタの値を8だけ減らし、RSPレジスタが指すメモリ領域にdestの値を書き込む。 | |
| hlt | | CPUを省電力モードに切り替える | |
| sti | | CPUのIFフラグ(割り込み)を1にする。割り込みを許可する | SetInterruptFlag |
| cli | | CPUのIFフラグ(割り込み)を0にする。割り込み禁止にする | ClearInterruptFlag |
| lgdt dest | | GDTRへ[GDTのバイト数-1(16bit)]、[GDTの先頭アドレス(64bit)]を書き込む。 | |
| | | |
| 汎用レジスタ(GPR) |
| 名称 | 64bit | 32bit | 16bit | 上位8bit | 下位8bit |
| 汎用レジスタ |
| アキュムレータレジスタ | RAX | EAX | AX | AH | AL |
| ベースレジスタ | RBX | EBX | BX | BH | BL |
| カウントレジスタ | RCX | ECX | CX | CH | CL |
| データレジスタ | RDX | EDX | DX | DH | DL |
| インデックスレジスタ |
| ソースインデックス | RSI | ESI | | | |
| デスティネーションインデックス | RDI | EDI | | | |
| 特殊レジスタ |
| ベースポインタ | RBP | EBP | BP | | |
| スタックポインタ | RSP | ESP | SP | | |
| インストラクションポインタ | RIP | EIP | IP | | |
| セグメントレジスタ |
| コードセグメント | RCS | ECS | CS | | |
| データセグメント | RDS | EDS | DS | | |
| エクストラセグメント | RES | EES | ES | | |
| スタックセグメント | RSS | ESS | SS | | |
| R8 | R8D | R8W | R8B | |
| R9 | R9D | R9W | R9B | |
| R10 | R10D | R10W | R10B | |
| R11 | R11D | R11W | R11B | |
| R12 | R12D | R12W | R12B | |
| R13 | R13D | R13W | R13B | |
| R14 | R14D | R14W | R14B | |
| R15 | R15D | R15W | R15B | |
| | | | | |
| 壊してはいけないレジスタ | | | | |
| EFLAGSレジスタ(全32bit) |
| キャリーフラグ | CF | 0bit | 足し算で繰上りが起こる場合、引き算して繰り下がりが起こらない場合、 | | |
| 未使用 | | 1bit | | | |
| パリティフラグ | PF | 2bit | 値の最下位バイト(8bit)に1が偶数個あるときセットされ、奇数個の場合はクリアされる | | |
| 未使用 | | 3bit | | | |
| 調整フラグ | AF | 4bit | 2進化10進演算(BCD)で使用されるキャリーフラグ。 | | |
| 未使用 | | 5bit | | | |
| ゼロフラグ | ZF | 6bit | 結果がゼロの場合にセットされゼロでない場合はクリアされる | | |
| 符号フラグ | SF | 7bit | 符号付き整数の符号ビットと同じ値にセットされる | | |
| トラップ、トレースフラグ | TF | 8bit | | | |
| 割り込みフラグ | IF | 9bit | 1で割込み許可、0で割込み拒否。ブートローダが開始してからgBS-<ExitBootServices()が呼ばれるまでは1。 | | |
| 方向フラグ | DF | 10bit | ストリング命令(MOVS、CMPS、SCAS、LODS、STOS)を制御する。 | | |
| オーバーフローフラグ | OF | 11bit | オーバフロー時(デスティネーションオペランドに収まらない場合)にセットされる | | |
| I/O特権レベル | IOPL | 12bit | | | |
| I/O特権レベル | IOPL | 13bit | | | |
| ネストタスクフラグ | NT | 14bit | | | |
| 未使用 | | 15bit | | | |
| デバッグレジスター命令ブレイクポイントを(1回のみ)無効にする | RF | 16bit | | | |
| 1=仮想86モード | VM | 17bit | | | |
| 変更可能であればi486 Pentium以降のCPU | AC | 18bit | | | |
| 仮想割り込みフラグ(Pentium以降) | VIF | 19bit | | | |
| 仮想割り込みペンディングフラグ(Pentium以降) | VIP | 20bit | | | |
| 変更可能であればCPUID命令に対応している | ID | 21bit | | | |
| 未使用 | | 22~31bit | | | |
| SIMDレジスタ |
| 名称 | 128bit | | | | |
| XMM0 | 第一引数、返却値(実数型float:下位32bit.double:下位64bit) | | | |
| XMM1 | 第二引数 | | | |
| XMM2 | 第三引数 | | | |
| XMM3 | 第四引数 | | | |
| XMM4 | | | | |
| XMM5 | | | | |
| XMM6 | | | | |
| XMM7 | | | | |
| XMM8 | | | | |
| XMM9 | | | | |
| XMM10 | | | | |
| XMM11 | | | | |
| XMM12 | | | | |
| XMM13 | | | | |
| XMM14 | | | | |
| XMM15 | | | | |
| プログラムカウンタ |
| メモリアドレスレジスタ |
| 命令レジスタ |
| デコーダ |
| ALU |
| 制御回路 |
| パソコンハード用語 |
| LSI(Large-Scale Integration) | 大規模集積回路(ICの内阻止の集積度が数千ゲート以上のもの)。 |
| A/D変換 | アナログ電気信号をデジタル電気信号に変換する電子回路。 |
| MMU(Memory Management Unit) | メモリ管理ユニット。CPUの要求するメモリアクセスを処理する。仮想メモリを用いる場合の論理アドレスと物理アドレスの変換に使用される |
| SIMD | 同時に複数のデータを演算する際のデータ。同時処理の命令を実行した後は結合されていて、処理完了後に分解される。 |
| NVMe | コンピュータにストレージ(外部記憶装置)を接続するための通信規格の一つでSSDを接続するためのもの。 |
| ネットワーク関連 |
| ISA(Instruction Set Architecture) | マイクロアーキテクチャに各種命令を構築したもの、その仕様 |
| マイクロアーキテクチャ | インターフェースの実装方法 |
| コンピュータ・アーキテクチャ | コンピュータごとのインターフェースの違い |