Zf未在汇编语言中设置为mul命令的结果

时间:2014-09-18 06:27:26

标签: assembly x86 masm irvine32

我使用masm615汇编程序和textpad作为编辑器。我正在编写32位汇编程序。在程序中,我试图通过mul指令设置零标志,但它不起作用。任何人都可以告诉我为什么零标志是清楚的,而eax寄存器中的结果是零。我正在尝试以下代码

    include irvine32.inc
    .data
    .code
    main proc
    xor eax,eax
    call dumpregs
    xor ebx,ebx
    call dumpregs
    mov eax,2
    call dumpregs
    mov ebx,3
    call dumpregs
    sub eax,2
    call dumpregs
    mul ebx
    call dumpregs
    exit
    main endp
    end main

1 个答案:

答案 0 :(得分:1)

  

在程序中,我试图通过mul指令设置零标志

mul指令不会影响零标记,请参阅Intel® 64 and IA-32 Architectures Software Developer’s Manual第2卷第3-594页:

  

MUL-Unsigned Multiply

     

...

     

受影响的标志

     

如果结果的上半部分为0,则OF和CF标志设置为0;否则,它们被设置为1. SF,ZF,AF和PF标志未定义。

如有疑问,请务必查看开发人员手册中的说明文档。并非所有指令都会影响人们可能期望的标志。