[英]how to interpret x86-64 xor followed by jle?
如果部分匯編代碼如下:
xor %ebp,%ebx
jle some address
這個 jle 是否意味着它會在 (%ebx ^ %ebp == 0) 時跳轉,因為這會將 ZF 設置為 1?
這是 JLE 成為現實的方式之一。 另一個是SF≠ OF
,根據手冊: https : //www.felixcloutier.com/x86/jcc
由於 XOR 總是清除 OF, SF != OF
簡化為 SF。
如果SF | ZF
將采用布爾運算后的jle
SF | ZF
,即如果結果<= 0
。
有趣的優化,以避免test %ebx,%ebx
將結果與零進行比較( AND 或 TEST same,same 將 FLAGS 設置為與cmp reg,0
相同)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.