如何解决linux中64位程序集的输入输出
segment .data
n times 100 db 0 ; n = scanf()
s times 100 db 0 ; char s[100]
fmt db "%s",0
pfmt db "The input was %s",0x0a,0
extern printf
extern scanf
segment .text
global main
main:
lea rdi,[fmt]
lea rsi,[s]
xor eax,eax
call scanf
mov [n],rax
xor eax,eax
lea rdi,[pfmt]
lea rsi,[n]
xor eax,eax
call printf
ret
我想在 64 位 linux 的 yasm 中使用 scanf 和 printf,但是这个 scanf 正在接受输入但根本没有输出,我已经检查了 gdb,它也在 eax 寄存器或 [n] 中显示了“001” ] 记忆地址也是如此。有没有大神可以纠正一下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。