首页 > 解决方案 > AT&T ASM 中指向局部变量的指针

问题描述

我正在as使用libc(特别是)编写一个汇编程序(用于汇编scanf),根据我的经验scanf是这样使用的:

int x;
scanf("%d", &x)

我可以调用scanf并推送参数都很好:

pushl -4(%ebp)
pushl $msg_template
call scanf

如您所见,x我上面的 C 代码中的 是-4(%ebp)因为它是一个局部变量。

事情是,就像上面所说的那样scanf&x不仅仅是x

正如预期的那样,我都试过了(-4(%ebp))$-4(%ebp)而且都失败了。

我该如何&x完成-4(%ebp)

标签: assemblyx86att

解决方案


推荐阅读