1. 程式人生 > >jnz指令和jne指令區別

jnz指令和jne指令區別

書中127頁有這麼一段,

 mov dx,0x1f7
 .waits: in al,dx 
 and al,0x88 
 cmp al,0x08 
 jnz .waits

最後一句的jnz完全可以用jne代替, 那jnz/jne, jz/je區別到底是什麼呢? 剛想到這個問題時候我有點懵, 明明都是由ZF標誌位決定的啊, 有啥不一樣啊QAQ
jnz指令, if(ZF!=0)則跳轉, 在跳轉指令上一句是cmp指令時, 完全可以用jne代替. 兩者都是根據ZF標誌位決定是否跳轉的. 所以說這兩條指令完全沒區別! 它們對應於完全相同的機器程式碼,所以它們做的完全一樣,他們只是有不同的助記符。stackoverflow.com的解答


但是在使用時, 還是應該根據指令的邏輯意義決定使用哪一條, 這樣更有利於理解.