Loops x86汇编中的双条件While循环

Loops x86汇编中的双条件While循环,loops,assembly,while-loop,x86,conditional,Loops,Assembly,While Loop,X86,Conditional,假设我在高级语言中有一个while循环,它看起来像: 当i>=0且x

假设我在高级语言中有一个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: ;; 生命在循环之后继续
因此,如果它是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