[英]Nasm. Reading and printing an interger using scanf and printf
以下是我編寫的用於使用scanf和printf讀取和打印整數的代碼。 但是,打印結果不正確。
Section .data
formatint: db "%d",0
formatintout: db "%d",10,0
section .bss
i: resd 1
j: resd 1
n: resd 1
section .text
extern printf
extern scanf
global main
main:
push n
push formatint
call scanf
add esp,8
push n
push formatintout
call printf
add esp,6
exit:
mov eax,1
mov ebx,0
int 80h
請記住, scanf
需要傳遞的地址,但是對於printf
需要傳遞的價值。 在兩種情況下,您都要傳遞地址。 您應該為printf
push dword [n]
。
add esp, 6
當然應該add esp, 8
。 我認為那只是一個錯字。
另請注意,不建議使用出口syscall。 你應該只ret
從main
,或使用call exit
,如果你真的想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.