2013-07-25 113 views
0

假設我有高級語言while循環,看起來像:雙條件While循環在x86彙編

雖然我> = 0和x < 5,

怎麼會在86看彙編代碼?我嘗試過使用cmp作爲while語句的條件部分,但我不確定AND是如何實現的。

感謝

回答

1
;; 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 
+0

所以,如果它是一個AND語句,那麼它不關係,因爲如果任一說法是假的就退出循環,如果它是一個OR而不是和什麼?它會如何不同? – user2620534

+0

您可以將jl更改爲jge,並將其目標地址更改爲放置在第二個jge之後的標籤。 – jlahd