英特尔64位,奇怪的RSP行为

时间:2016-03-12 14:17:57

标签: windows assembly 64-bit intel ida

我遇到了使用IDA在Windows中调试64位二进制文​​件的问题。通常情况下,在推送之后,RSP值应该被扣除8.但偶尔,从IDA我看到RSP只扣除了2,然后是8,用于下一次推送。

涉及的代码是

push rax
push rbx
push rsi
push rdi

我对x64环境很陌生,因此有人可以解释这种行为吗?

1 个答案:

答案 0 :(得分:5)

你可能会被十六进制混淆。按8计数

0  8  10  18  20  28  30

你是否正在考虑并思考10 - 8 == 2?因为它是0x10 - 0x8 == 0x8