section .data
msg db 'hello world',10,0
section .text
global main
extern printf
main:
mov ecx,5
lable1:
push msg
call printf
add esp,4
loop lable1
ret
;;------------------------------------sample program--------------------------
section .data
val dd 20
msg db 'number is : %d',10,0
section .text
global main
extern printf
main:
mov ecx,5
lable1:
inc dword[val]
loop lable1
push dword[val]
push msg
call printf
add esp,8
ret
-1
A
回答
0
loop
遞減ecx
並執行跳轉,如果ecx
在遞減後不爲零。你的第一個程序中的問題是你在循環體內調用printf
,這很可能會覆蓋ecx
。
在調用printf()
之前,您應該保存ecx
的值,然後在您的指令loop
之前再次將其恢復。
+0
我不想無限運行我想在兩個程序中5次終止。但它只發生在第二個程序中。第一節目有什麼不對? – matheromqq
+0
哪一個5次後不終止? –
+0
打印「hello world」的第一個程序 – matheromqq
相關問題
- 1. 打印時出現無限循環
- 2. 無限循環打印列表
- 3. 程序無限循環
- 4. 循環x86程序集
- 5. 我的程序中的無限循環
- 6. haskell程序中的無限循環
- 7. 彙編程序中的無限循環
- 8. 打印語句在無限循環之前不會打印
- 9. 如何打破無限循環
- 10. Django模板循環(打印限制數據使用for循環)
- 11. Java打破無限循環
- 12. 打破無限循環
- 13. PHP:無限循環和時間限制!
- 14. 程序集循環不打印值
- 15. python程序的無限循環
- 16. 無限循環的Java程序
- 17. 無限循環的應用程序 - 爲(;;)
- 18. 如何限制foreach循環
- 19. 如何做無限循環
- 20. lambda中的無限循環,僅打印最大值?
- 21. 無限循環印刷N×N的表
- 22. 無限循環?
- 23. 無限循環:
- 24. 無限循環
- 25. 無限循環
- 26. 無限循環
- 27. 無限循環
- 28. 無限循環
- 29. 無限循環
- 30. (?無限)循環
瞭解更多裝配。你想要做的是有條件的跳躍,所以要學習那個部分。 – jbm
我可以做使用條件跳 – matheromqq
好,然後做。或者你暗示某些不在你的問題中,然後用更多信息編輯你的問題。 – jbm