[英]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.