-2

「... 算術演算または論理演算の結果がゼロの結果を生成するときにゼロ フラグ (ZF) が設定される」場合、cmp 命令は ZF とどのように相互作用しますか?

次のコード スニペットを考えると、

mov eax, 0
mov edx, 1
cmp eax, edx

cmp は 2 つのオペランドをどのように評価し、ZF は何に設定されますか? オペランドが逆になっている場合 (cmp edx、eax)、ZF は元のステートメントと同じ値に設定されますか?

2 つの同一の値を比較する場合、cmp はオペランドをどのように評価し、ZF は何に設定されますか?

cmp eax, eax
4

1 に答える 1

3

cmp は 2 つのオペランドをどのように評価しますか?

マニュアルから直接:

比較は、第 1 オペランドから第 2 オペランドを減算し、SUB 命令と同じ方法でステータス フラグを設定することによって実行されます。


オペランドが逆になっている場合 (cmp edx、eax)、ZF は元のステートメントと同じ値に設定されますか?

ZFの場合、はい。他のフラグについては、減算は可換ではないため、必ずしもそうとは限りません。

于 2016-05-18T21:09:31.780 に答える