[英]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.