linux - 在汇编中,如何存储 scanf 调用的输入?

标签 linux assembly att

input: .asciz "%ld"...

subq $8, %rsp
eaq -8(%rbp), %rsi
movq $input, %rdi
movq $0, %rax
call scanf

我想存储 scanf 给出的输入并修改它,然后使用

打印它
call printf

我该如何解决这个问题?

最佳答案

您可以将输入存储在leaq -8(%rbp), %rsi处,然后打印出值

leaq -8(%rbp), %rsi
pushl %rsi          // or %rdi if i'm wrong
pushl $input
call printf

我认为eaq的意思是leaq

关于linux - 在汇编中,如何存储 scanf 调用的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57981333/

相关文章:

assembly - 添加指令说明

在终端上找不到 Python 模块,但在 Python shell、Linux 上找到

linux - 我正在尝试在 Linux 服务器上安装编译器

linux - 如果第一个是 '/opt/lampp/lampp start',rc.local 不运行第二个脚本

c++ - Linux:作为共享对象 API 的 C++ 抽象类

assembly - 如何在 AT&T 程序集中正确定位变量?

c - 汇编到 C 协助

c# - 使用 C# 中的 Replace some groups with Regex 将程序集转换为 C

assembly - 如何在 IA32 上将带符号的整数求和为更宽的和。 32 位有符号整数的 64 位和?

c - 汇编到 C 代码跳转