Intel 8086 のシミュレーターを実装していますが、キャリー フラグ、オーバーフロー フラグ、補助キャリー フラグのそれぞれの計算方法を知りたいです。
それぞれが何を表しているかを知っています(ビット7からのオーバーフローがあるかどうかを示すキャリーフラグなど)。しかし、C# を使用してこれを実装する方法。
例えば、キャリーフラグとADD命令の場合、単純に加算後の値をチェックして、0xFFを超えていたらフラグを立てます。ただし、これにより、場合によっては誤った値が返されます。
ビット 7 を確認する必要がある場所をいくつか読みました。加算前にセットされ、加算後にクリアされた場合、キャリーがあります。しかし、これはSUBのような他の命令で間違った値を与えますか?
3 つのフラグ (キャリー、AC、OV) を実装するための一般的なルールを明確に説明できる人はいますか?