Loops x86汇编中的双条件While循环
假设我在高级语言中有一个while循环,它看起来像: 当i>=0且x<5时 x86中的汇编代码看起来如何?我曾尝试将cmp用于while语句的条件部分,但我不确定AND将如何实现 谢谢;;假设eax包含i,ecx包含x myloop: 测试eax,eax jl-exitloop;i<0 cmp ecx,5 jge-exitloop;x>=5 ;; 循环内容在这里 jmp myloop exitloop: ;; 生命在循环之后继续Loops x86汇编中的双条件While循环,loops,assembly,while-loop,x86,conditional,Loops,Assembly,While Loop,X86,Conditional,假设我在高级语言中有一个while循环,它看起来像: 当i>=0且x
因此,如果它是AND语句,那么这并不重要,因为如果其中一个语句为false,它将退出循环,如果它是OR而不是AND呢?这会有什么不同?您可以将jl更改为jge,将其目标地址更改为放置在第二个jge之后的标签。
;; assuming eax contains i, ecx contains x
myloop:
test eax, eax
jl exitloop ; i < 0
cmp ecx, 5
jge exitloop ; x >= 5
;; loop content goes here
jmp myloop
exitloop:
;; life continues after the loop