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