#フラグ
フラグの種類 | 呼び名 |
---|---|
O | オーバーフロー |
D | ディレクション |
I | インタラプトイネーブル |
T | トラップ |
S | サイン |
Z | ゼロ |
A | 補助キャリー |
P | パリティ |
C | キャリー |
#命令セットのニーモニック
|命令の種類| ニーモニック| ニーモニックの意味 命令の意味|
|:--|:--|:--|:--|
|転送| mov| コピー|
|転送|mov| ロード(メモリ等からレジスタへコピー)|
|転送|mov| ストア(レジスタからメモリ等へコピー)|
|転送| xchg| 入れ替え|
|算術|adc, add| 加算|
|算術|sbb, sub| 減算|
|算術|mul| 乗算|
|算術|div| 除算|
|算術|inc, dec| 1足す,1引く|
|論理演算・ビット操作|and, or, xor| 論理積・論理和・排他的論理和|
|論理演算・ビット操作|neg, not, test| 符号反転・反転・テスト|
|シフト|sal| 論理左シフト|
|シフト|sar| 論理右シフト|
|シフト|shl| 算術左シフト|
|シフト|shr| 算術右シフト(キャリーを含めてシフト)|
|ローテート|rol |左ローテート|
|ローテート|ror |右ローテート|
|ローテート|rcl |キャリーを含めて左ローテート|
|ローテート|rcr |キャリーを含めて右ローテー|
|条件分岐|JE |前の結果が0なら分岐.ゼロフラグ=1なら分岐.|
|条件分岐|JNE |前の結果が1ならば分岐.ゼロフラグ=0なら分岐.|
|条件分岐|JL |前の結果が0より小さければ分岐|
|条件分岐|JG |前の結果が0より大きければ分岐|
|条件分岐|JLE |前の結果が0以下なら分岐|
|条件分岐|JGE |前の結果が0以上なら分岐|
|条件分岐|jmp |分岐,ジャンプ|
|条件分岐|JG |前の結果が0より大きければ分岐|
|条件分岐|JLE |前の結果が0以下なら分岐|
|条件分岐|JGE |前の結果が0以上なら分岐|
|コール|call |サブルーチンへ分岐|
|コール|ret |サブルーチンから復帰|
|スタック|push |スタックに積む|
|スタック|pop |スタックから復帰|
|その他| NOP |何もしない|
ニーモニックの前後に付く文字の意味
接尾辞の種類 | 接尾辞の文字の意味 | 意味 | 命令の例 |
---|---|---|---|
...B | byte | 1バイト | MOVB, ADDB, BRAB |
...W | word | 2バイト | MOVW, ADDW, BRAW |
...L | long | 4バイト | MOVL, DIVL, JMPL, PUSHL, JL, COMPL |
...I,I... | integer | 整数 | DIVSI, IMUL |
...S | singed | 符号付 | ADDSL, MULSI, SUBS |
...C | with carry | キャリーやボローを考慮 | ADDC, SUBC |
#レジスタ名の表記
レジスタ名の前に%を付ける
|表記 |ビット数| 役割|
|:--|:--|:--|:--|
|eax,ecx,edx,ebx,esp,ebp,esi,edi| 32bit |汎用レジスタ|
|AX, BX, CX, DX | 16bit |汎用レジスタ(EAX, EBX, ..)の下位16bit|
|AH, AL | 8bit |AXの上位8bit, 下位8bit|
|cs,ds,es,fs,gs,ss | 16bit |セグメントレジスタ|
|SP | CPUのビット数| スタックポインタ|
|PC | CPUのビット数| プログラムカウンタ|
#アドレッシングモードの表記
数値の前に$を付ける
レジスタ間接アドレッシングは、(%esi)です。
以上。