簡體   English   中英

沒錯 使用scanf和printf讀取和打印整數

[英]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。 你應該只retmain ,或使用call exit ,如果你真的想。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM