0

まず第一に、私は本当にこれに一致する答えを見つけようとしましたが、うまくいきませんでした.

私は現在、小さな 8086 エミュレーターに取り組んでいます。私がまだ理解していないのは、加算と減算に最適なオーバーフロー フラグと補助フラグの計算方法です。

私の知る限り、補助フラグはオーバーフロー フラグに準拠していますが、オーバーフロー フラグが全体のサイズを使用しているのに対し、4 ビットしか使用していません。したがって、2 つの符号付き 1 バイト整数を追加する場合、OF は 1 バイト符号付きオーバーフローをチェックしますが、補助フラグは 2 つの整数の下位 4 バイトのみを調べます。

4、8、および 16 ビットの加算と減算の符号付きオーバーフローを計算するための汎用アルゴリズムまたは「魔法のビット演算」はありますか? (そこに書かれている言語は気にしません)

備考: 値を符号なし変数に内部的に格納する必要があるため、符号なし値またはビットごとの計算を処理する可能性しかありません。

足し算と引き算で機能する解決策の 1 つは、計算が完了した後に「符号フラグ」(または補助フラグのビット 4) が変更されたかどうかを確認することでしょうか?

前もって感謝します!

4

1 に答える 1

1

オーバーフロー フラグは、結果のサイズに関係なく、結果が大きすぎたり小さすぎたりして宛先オペランドに収まらないかどうかを示します。

補助フラグは、結果が大きすぎたり小さすぎたりして 4ビットに収まらないかどうかを示します。

編集: AF の決定方法: AF フラグが x86 命令でどのように機能するかを説明してください。.

于 2012-02-26T09:42:49.547 に答える