鑑於「...當算術或邏輯運算的結果產生零結果時設置零標誌(ZF)」,cmp指令如何與ZF交互?cmp指令何時修改zf標誌? [x86 MASM]
考慮下面的代碼片段,
mov eax, 0
mov edx, 1
cmp eax, edx
如何CMP評估兩個操作數,什麼是ZF設置?如果操作數反轉(cmp edx,eax),那麼ZF是否設置爲與原始語句中相同的值?
如果我要比較兩個相同的值,cmp如何評估操作數以及ZF的設置是什麼?
cmp eax, eax
鑑於「...當算術或邏輯運算的結果產生零結果時設置零標誌(ZF)」,cmp指令如何與ZF交互?cmp指令何時修改zf標誌? [x86 MASM]
考慮下面的代碼片段,
mov eax, 0
mov edx, 1
cmp eax, edx
如何CMP評估兩個操作數,什麼是ZF設置?如果操作數反轉(cmp edx,eax),那麼ZF是否設置爲與原始語句中相同的值?
如果我要比較兩個相同的值,cmp如何評估操作數以及ZF的設置是什麼?
cmp eax, eax
從 the manual如何CMP評價兩個操作數?
直:
比較是通過從第一操作數中減去 第二操作數,然後以相同的方式作爲SUB指令設定的狀態標誌來執行。
如果操作數互換(CMP EDX,EAX),則ZF設置爲相同的值作爲初始語句?
對於採埃孚而言,是的。對於其他標誌,不一定,因爲減法不是可交換的。
請參閱[x86 tag wiki](http://stackoverflow.com/tags/x86/info)以獲取insn set reference和tutorials/guides的鏈接。 –