0

これはダップのように見えるかもしれませんが、私の質問のようなものは見つかりませんでした. 私がyasmに持っているとしましょう:

segment .data

a  db 0

...

main:

    mov rax, 0xffffffff

    mov [a], rax

に移動するときにキャリーフラグが設定されないのはなぜですか? バイトだけです!私が明らかにそれに移動したとき、バイトよりもはるかに大きくなります。実際、gdb では、数値全体が a に格納されます。その宣言を考えると、それはどのように可能ですか?

4

2 に答える 2

2

movフラグを設定しないためです。それ以上の深い理由はありません。

Intel命令セットのリファレンスマニュアルを引用:

影響を受けるフラグ

なし。

于 2013-01-29T16:42:47.447 に答える
0

桁上げビットは、算術演算のみで設定されます。オーバーフロー ビットを考えているかもしれませんが、これもこの場合は何もしません。

スティーブンが正しく言うように:

movフラグを立てない

于 2013-01-29T16:45:39.313 に答える