在汇编中,如何存储来自 scanf 调用的输入?
Posted
技术标签:
【中文标题】在汇编中,如何存储来自 scanf 调用的输入?【英文标题】:In assembly, how do I store the input from the scanf call? 【发布时间】:2019-09-17 20:04:12 【问题描述】:input: .asciz "%ld"...
subq $8, %rsp
eaq -8(%rbp), %rsi
movq $input, %rdi
movq $0, %rax
call scanf
我想存储从 scanf 给出的输入并修改它,然后使用打印它
call printf
我该如何解决这个问题?
【问题讨论】:
您已经将输入存储在地址-8(%rbp)
的堆栈中。我错过了什么吗?
我是否必须将其保存在另一个寄存器中才能修改它?
不,但无论如何这样做可能会有用。
【参考方案1】:
您可以将输入存储在leaq -8(%rbp), %rsi
,然后打印出值
leaq -8(%rbp), %rsi
pushl %rsi // or %rdi if i'm wrong
pushl $input
call printf
我认为eaq
的意思是leaq
【讨论】:
以上是关于在汇编中,如何存储来自 scanf 调用的输入?的主要内容,如果未能解决你的问题,请参考以下文章