我意识到这可能看起来像是一个副本,但我找不到任何与我的问题相似的东西。说我有yasm:
segment .data
a db 0
...
main:
mov rax, 0xffffffff
mov [a], rax
为什么搬入标志时没有设置进位标志?这只是一个字节!当我明显地移动它比一个字节大得多。实际上在gdb中,整个数字都存储在一个。鉴于其声明,这怎么可能?
答案 0 :(得分:2)
因为mov
没有设置标志。没有比这更深层次的理由了。
引用英特尔指令集参考手册:
受影响的标志
无。
答案 1 :(得分:0)
进位位仅通过数学运算设置。您可能正在考虑溢出位,但在这种情况下这也没有做任何事情。
斯蒂芬正确地说:
mov
未设置标记