[英]Assembly printing a simple counter
我在程序集8086中是新功能,並嘗試在程序集中實現計算器。
我需要計算從用戶那里收到的操作數量,並在最后打印。 但是每次我嘗試打印變量值時,它都會打印:134520956而不是1。(我用gdb進行了檢查,我寫道:mov eax [operator_count]並且eax的值根據需要為1)
這是代碼:
section .rodata
INT_FORMAT:
DB "%d", 10, 0
section .bss
operator_count:
resb 10
main:
mov [operator_count], dword 0
; rest not relevant.......
inc dword [operator_count]
push operator_count ;push string to stuck
push INT_FORMAT
call printf
add esp, 4 ;remove pushed argument
;exit normaly
感謝幫助...
編輯:現在可以工作:)
inc dword [operator_count]
push dword [operator_count] ;push string to stuck
push INT_FORMAT
call printf
add esp, 8 ;remove pushed argument
push operator_count
推送地址,而不是值。 嘗試改push dword [operator_count]
。 –小丑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.