次のテーブルがある場合:
Case 1: x: 42 y: -15 (y-x) = -57
Case 2: x: -17 y: -17 (y-x) = 0
Case 3: x: 0x7ffffffd y: -67 (y-x) = 2147483584
Case 4: x: 67 y: -0x7fffffffd (y-x) = 2147483584
条件コード フラグが設定するもの (フラグごとに 0 または 1)ZF SF OFとCF
命令を検討するとき: cmp1 %eax %ecx if %eaxcontainsxおよび%ecxcontains y?
私はそれが以下によって実行されることを理解していcmp1 ...,...ます:cmp1 SRC2,SRC1
つまり、「条件コードをSRC1–に設定しますSRC2」
フラグが次のことを表していることを理解しています。
OF = overflow (?)
ZF = zero flag i.e. zero...
CF = carry out from msb
SF - sign flag i.e. negative
表の 4 つのケースでは、フラグは次のようになると思います。
1) ZF = 0 SF = 1 CF = 0 OF = ?
2) ZF = 1 SF = 0 CF = 0 OF = ?
3) ZF = 0 SF = 0 CF = 1 OF = ?
4) ZF = 0 SF = 0 CF = 1 OF = ?
私は正しいですか?CF どちらがTRUEに設定されるかを判断する方法と、何が何であるかを説明しOF、私の誤解を修正してください。ありがとうございました。