繁体   English   中英

由于汇编语言中的mul命令未设置Zf

[英]Zf not set as a result of mul command in assembly language

我正在使用masm615汇编器和文本板作为编辑器。 我正在编写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

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

mul指令不会影响零标志,请参阅英特尔 ®64 和IA-32体系结构软件开发人员手册第2卷第3-594页:

MUL-无符号乘法

...

受影响的标志

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM