使用下面的例子,ESP和EIP寄存器有什么区别?解释代码在做什么。ESP和EIP寄存器有什么区别
main PROC
0000 0020 call MySub
0000 0025 mov eax, ebx
.
.
main ENDP
MySub PROC
0000 0040 mov eax, edx
.
.
ret
MySub ENDP
0000 0025被CALL指令
0000 0040以下的偏移量的指令的立即 被内部 MySub偏移中的第一条指令的
CALL指令推0000 0025压入堆栈,和 加载0000 0040到EIP中
|-------------| |----------|
| 0000 0025 |<--ESP | 0000 0040| EIP
|-------------| |----------|
| |
|-------------|
| |
|-------------|
的RET insttruction从堆栈到EIP 弹出0000 0025(堆栈显示RET执行之前)
|-------------| |----------|
| 0000 0025 |<--ESP | 0000 0025| EIP
|-------------| |----------|
| |
|-------------|
| |
|-------------|
我投票结束这个问题作为题外话,因为你不打算提交你的作业。 – Seki