6. 論理演算命令
OPソース:8/16ビット汎用レジスタ、メモリオペランドまたは即値データ
OP オブジェクト: 汎用レジスタとメモリ オペランド
"not" 操作を除いて、他の命令は OF=CF=0 になります。
1.論理積演算
と
特定のビットを変更したり、ビットの内容をテストしたりするために使用できます
2. 論理 OR 演算 (1 から 1、0 からすべて 0)
形式: OR OP 項目、OP ソース
機能: 2 つのオペランドに対して OR 演算を実行し、結果を OP 宛先に返します。
説明: 特定の単語を組み合わせたり、特定の位置を 1 に設定したりするために使用できます。
例:
MOV AX、8888H;
OR AX, 00FFH; AX=88FFHH, AX の下位 8 ビットを 1 に設定し、他のビットは変更しない、つまり、対応する 1 ビットは 1 であり、対応する 0 ビットは変更しない。
例: AL の非結合 BCD コードを ASCII コードに変換します。
またはAL、30H
3. 論理 XOR 演算命令 (0 と同じ、1 とは異なる)
形式: XOR OP デスティネーション、OP ソース
機能: 2 つのオペランドに対して XOR 演算が実行され、結果が OP に返されます。
説明: 特定の 2 進数をビット単位で反転するか、特定のレジスタを 0 にクリアするために使用されます。
例: XOR AL, 0FFFH; AL データのビットごとのネゲート
例:MOV AX、3333H
XOR AX、00FFH;
結果:AX=33CCH AH データは変化せず、AL データはネゲート、つまり、対応する 0 は変化せず、対応する 1 はネゲートされます。
例: レジスタを 0 にクリアします (AX をクリアする目的を達成するために 4 つの命令があります):
XOR AL、AL; AL清0
移動斧、0
サブアックス、アックス
AND AX,0
4. 論理否定演算命令
フォーマット: OP ではない
機能: オペランドをビットごとに反転し、リモートに送り返します。
例:
ムーヴアックス、1
斧ではありません。AX=0FFFEH
知らせ:
(1) この命令は、否定コード命令ではなく、否定演算のみを実行し、符号ビットも否定します。
(2) フラグビットには影響しません
5. テスト手順
フォーマット: TEST OPアイテム、OPソース
機能: OP デスティネーションと OP ソースで AND 演算を実行し、結果を返さず、結果に従ってフラグのみを設定します。
説明: 主に、デスティネーション オペランドの一部のビットが 1 または 0 であることを検出するために使用されます。
例: AX の D15 ビットが 1 か 0 かをテストする
TEST AX, 8000H; D15 が 1 の場合、ZF=0、それ以外の場合、ZF=1
要約:
(1) AND OR XOR TEST はすべてフラグに作用し、CF=0、OF=0 となり、その結果により PF、SF、ZF が決定され、AF は無意味になります。このような命令は、CF をクリアするために使用でき、よく使用されます。分割と綴り用。
(2) NOT はフラグに影響を与えません
例