堆栈上的整数推送错误

mat*_*thk 2 assembly gdb push

我试图理解为什么是指令:

 pushl  0x4013ea
Run Code Online (Sandbox Code Playgroud)

没有推动预期的价值,而是我把它放在堆栈上:

(gdb) x/wx $esp
0x22ff18:       0xc3899090
Run Code Online (Sandbox Code Playgroud)

我在Windows上使用gdb,如果这可以帮助

谢谢

Oli*_*pro 7

我敢打赌,0x4013ea被视为内存地址,因此,该地址的值被推送到堆栈而不是文字值本身.

尝试pushl $4013ea(可能需要包含0x,取决于你的汇编语法)