資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
1: 2007-12-06 (木) 11:05:45 ソース バックアップ No.1 を復元して編集
Line 1: Line 1:
 +AX  アキュムレータ
 +BX ベースレジスタ
 +CX カウントレジスタ
 +DX データレジスタ
 +SI ソースインデックス
 +DI デスティネーションインデックス
 +汎用レジスタ(特殊)
 +BP ベースポインタ
 +SP スタックポインタ
 +IP インストラクションポインタ
 +セグメントレジスタ
 +CS コードセグメント
 +DS データセグメント
 +ES エキストラセグメント
 +SS スタックセグメント
 +フラグレジスタ
 +EFLAGS フラグレジスタ : CPU状態記述
 +フラグの種類
 +OF オーバーフローフラグ : 符号付演算の桁上がりが起こるとセット
 +DF ディレクションフラグ : メモリ転送命令の転送方向を示す
 +SF サインフラグ : 演算結果の符号を示す
 +ZF ゼロフラグ : 演算結果が0であればセット
 +AF 補助キャリーフラグ : BCD演算用キャリーフラグ
 +PF パリティフラグ : 演算結果が偶数だとセット
 +CF キャリーフラグ : 演算結果が桁上がりが起こるとセット
 +    
 +   マシン語命令(ニーモニック)
 +   データ転送命令
 +   mov mov ax,bx bx→ax
 +   xchg xchg ax,bx axとbxの内容を入れ替え
 +   算術演算命令
 +   add add ax,bx ax=ax+bx
 +   adc adc ax,bx キャリー付き加算
 +   cmp cmp ax,bx
 +   ax>bx
 +   フラグ 値
 +   ZF 0
 +
 +   フラグ 値
 +   CF 0
 +   ax=bx
 +   フラグ 値
 +   ZF 1
 +
 +   フラグ 値
 +   CF 0
 +   ax<bx
 +   フラグ 値
 +   ZF 0
 +
 +   フラグ 値
 +   CF 1
 +   dec dec ax 1減算
 +   inc inc ax 1加算
 +   div
 +   ソースオペランドが、8ビットであればディスティネーションはAXレジスタになり
 +   商はALレジスタ、余りはAHレジスタに格納
 +   17C4:0100 MOV AX , A
 +   17C4:0103 MOV DL , 3
 +   17C4:0105 DIV DL
 +   17C4:0107
 +   -G =100 107
 +
 +   AX=0103 BX=0000 CX=0000 DX=0003 SP=FFEE BP=0000 SI=0000 DI=0000
 +   DS=17C4 ES=17C4 SS=17C4 CS=17C4 IP=0107 NV UP EI PL NZ AC PO NC
 +   16ビットであれば、上位16ビットがDX、下位16ビットがAXの32ビットと演算され
 +   商はAXに、余りはDXレジスタに格納
 +   17C4:0100 MOV AX , FFFF
 +   17C4:0103 MOV DX , 0001
 +   17C4:0106 MOV WORD PTR [0200] , 100
 +   17C4:010C DIV WORD PTR [0200]
 +   17C4:0110
 +   -G =100 110
 +
 +   AX=01FF BX=0000 CX=0000 DX=00FF SP=FFEE BP=0000 SI=0000 DI=0000
 +   DS=17C4 ES=17C4 SS=17C4 CS=17C4 IP=0110 NV UP EI PL NZ AC PO NC
 +   idiv idiv dl 符号付割り算
 +   mul mov al , 50
 +   mov dl , 2
 +   mul dl ソースオペランドが8ビットの場合、
 +   ALレジスタとソースオペランドが乗算され
 +   その結果は、AX16ビットレジスタに格納されます
 +
 +   ソースオペランドが16ビットの場合、
 +   AXレジスタとソースオペランドが乗算され
 +   その結果は、上位DX、下位AXとして、
 +   それぞれのレジスタに格納されます
 +   imul imul dl 符号付乗算
 +   sub sub ax,bx 減算
 +   sbb sbb ax,bx キャリー付き減算
 +   単純ジャンプ命令
 +   jmp jmp アドレス 無条件ジャンプ
 +   jc jc アドレス キャリーフラグがセットされていたらジャンプ
 +   jnc jnc アドレス キャリーフラグがセットされていなかったらジャンプ
 +   jcxz jcxz アドレス CXレジスタがゼロならジャンプ
 +   je
 +   jz je アドレス
 +   jz アドレス ゼロフラグがセットされていたらジャンプ
 +   jne
 +   jnz jne アドレス
 +   jnz アドレス ゼロフラグがセットされていなかったらジャンプ
 +   符号なし整数比較結果ジャンプ命令
 +   ja
 +   jnbe ja アドレス
 +   jnbe アドレス cmp op1 , op2 という命令で、op1 > op2 ならばジャンプ
 +   jb
 +   jnae jb アドレス
 +   jnae アドレス cmp op1, op2 という命令で、op1 < op2 ならばジャンプ
 +   jae
 +   jnb jae アドレス
 +   jnb アドレス cmp op1, op2 という命令で、op1 >= op2 ならばジャンプ
 +   jbe
 +   jna jbe アドレス
 +   jna アドレス cmp op1, op2 という命令で、op1 <= op2 ならばジャンプ
 +   符号あり整数比各結果ジャンプ命令
 +   jg
 +   jnle jg アドレス
 +   jnle アドレス cmp op1, op2 という命令で、op1 > op2 ならばジャンプ
 +   jl
 +   jnge jl アドレス
 +   jnge アドレス cmp op1, op2 という命令で、op1 < op2 ならばジャンプ
 +   jge
 +   jnl jge アドレス
 +   jnl アドレス cmp op1, op2 という命令で、op1 >= op2 ならばジャンプ
 +   jle
 +   jng jle アドレス
 +   jng アドレス cmp op1, op2 という命令で、op1 <= op2 ならばジャンプ
 +   ループ命令
 +   loop loop アドレス cx レジスタの値を1減じて、0になるまで繰り返す
 +   loope
 +   loopz loope アドレス
 +   loopz アドレス cx レジスタの値を1減じて、ゼロフラグがセットされている間繰り返す
 +   loopne
 +   loopnz loopne アドレス
 +   loopnz アドレス cx レジスタの値を1減じて、ゼロフラグがセットされていない間繰り返す
 +   コール命令
 +   call call bx プロシージャ呼び出し
 +   ret ret プロシージャから復帰
 +   論理演算命令
 +   and and al,04h al=al&0x04
 +   or or ax,88h ax=ax|0x88
 +   not not ax ax=~ax
 +   neg neg ax 符号反転命令
 +   xor xor ax,bx 排他的論理和命令
 +   test test ax,bx 論理和積テスト命令
 +   実際にはレジスタの値に変化なし
 +   スタック命令
 +   push push ax スタックへデータ退避
 +   pop pop ax スタックからデータ取り出し
 +   pushf pushf スタックへフラグを退避
 +   popf popf スタックからデータ取り出し
 +   フラグ操作
 +   std std ディレクションフラグをセット
 +   cld cld ディレクションフラグをクリア
 +   stc stc キャリーフラグをセット
 +   clc clc キャリーフラグをクリア
 +   cmc cmc キャリーフラグを反転
 +   cli cli 割り込みを禁止
 +   sti sti 割り込みを許可
 +   シフト命令
 +   shl shl ax,2 論理左シフト
 +
 +   shr shr ax,1 論理右シフト
 +
 +   sal sal ax,1 算術左シフト
 +
 +   sar sar ax,1 算術右シフト
 +
 +   ローテート命令
 +   rol rol ax,1 左ローテート
 +
 +   ror ror ax,1 右ローテート
 +
 +   rcl rcl ax,1 左キャリーローテート
 +
 +   rcr rxr ax,1 右キャリーローテート
 +
 +   割り込み命令
 +   int int 21h
 +   割り込み番号 割り込みの種類
 +   0 除算エラー(0で除算した場合)
 +   1 シングルステップ
 +   2 NMI割り込み
 +   3 ブレイク・ポイント割り込み
 +   4 オーバーフロー割り込み
 +   21 MS-DOSシステムコール
 +   iret iret 割り込みからの復帰


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 4840, today: 2, yesterday: 1