Assembly 为什么寄存器值为0时不设置零标志?

Assembly 为什么寄存器值为0时不设置零标志?,assembly,Assembly,我正在尝试使用条件跳转指令 Label: mov eax, 0xffffffff not eax jz Label ; jump only if zero 但是,jz不会跳转到标签。这是因为$eflags显示未设置ZF。我不明白的是,为什么EAX为0x00000000时不设置ZF 谢谢 在任何x86编程手册中查找NOT指令(例如,它会告诉您没有设置标志。因此简单的答案是它没有设置ZF,因为它不应该设置 如果你想问一个更深层次的问题,他们为什么这样设计,对不起,我不知道。

我正在尝试使用条件跳转指令

Label:
    mov eax, 0xffffffff
    not eax
    jz Label ; jump only if zero
但是,jz不会跳转到标签。这是因为$eflags显示未设置ZF。我不明白的是,为什么EAX为0x00000000时不设置ZF


谢谢

在任何x86编程手册中查找NOT指令(例如,它会告诉您没有设置标志。因此简单的答案是它没有设置ZF,因为它不应该设置


如果你想问一个更深层次的问题,他们为什么这样设计,对不起,我不知道。

在任何x86编程手册中查找NOT指令(例如,它会告诉你没有设置标志。因此简单的答案是它没有设置ZF,因为它不应该设置


如果你想问一个更深层次的问题,他们为什么这样设计,对不起,我不知道。

不是所有的汇编指令都对标志有影响。
不影响任何标志。

不是所有的汇编指令都对标志有影响。
不影响任何标志。

尝试使用异或eax,0ffffffh。

请尝试使用异或eax,0ffffffh