我有点像汇编程序中的noob。我正在尝试从堆栈初始化变量(即,在实际情况下,它们的值由第三方推送到堆栈)。代码类似于此:
.data
b:
.long 0
a:
.long 0
.global main
.text
main:
push $2
pop b
push $1
pop a
无论如何,我所期望的是a中有1,b中有2。相反,我在a中有一,在b中有cruft(尽管在执行之间是静态的)。我做错了什么?
事先非常感谢。
你做错了两件事:
- 没有显示确切的代码,只是一些"相似"的东西
- 没有显示您是如何检查值的
代码按如下方式工作:
(gdb) p a
$1 = 1
(gdb) p b
$2 = 2