以下のボタンで、ビット演算のイメージを実験で確認できます。
AND、OR、XORの命令は、OF(Overflow Flag)を必ず0に設定します。 他のフラグは通常通りの変化(演算結果の最上位ビットが1になるとSFが1、全ビットが0でZFが1)です。
以下で、各種ビット演算を実験しましょう(各ビットの変化を確認)
オペランドの各ビットでAND(オペランドで共に1になっているbitだけ1になり、他のビットは0になります)演算を行います。
特定のビットを0にできます。→特定の範囲を取り出すことになります。
また実行後にZFをチェックすることで、特定のビットだけが1であるかを、チェックできます。
上記のコードをアセンブラエディタに設定するボタン→
オペランドの各ビットでOR(オペランドでどちらかが1になっているbitを1にします。他のビットは0です)演算をを行います。
この演算で特定のビットを1にできます。
上記のコードをアセンブラエディタに設定するボタン→
オペランドの各ビットで、一致するビットが0になります。他のビットは1になる演算です。
オペランドの2つが、完全に一致していればZFが1になります。
また特定のビットを反転させることができます。(→全ビットを反転する場合に使えます)
また同じオペランドで指定レジスタを0にできます。→ XOR GR0,GR0
上記のコードをアセンブラエディタに設定するボタン→