小编use*_*859的帖子

退出程序 x86

我正在学习 x86 汇编。我试图了解“退出程序”如何在 x86 上工作。我们有一个代码:

push ebp
mov ebp,esp
//Some stuff here
mov esp, ebp
pop ebp
ret
Run Code Online (Sandbox Code Playgroud)

当处理器执行指令“ret”时:

EIP 将具有从堆栈中弹出的值,即 0。因此处理器将转到 0 地址并尝试执行不包含程序代码/可执行代码的指令。那么,处理器到底发生了什么?是否有条件检查,例如,if EIP = 0 -> exit program? Or if ESP out of bounds -> exit program?`处理器如何理解这条 RET 指令是程序的结尾?

x86 assembly stack exit

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

assembly ×1

exit ×1

stack ×1

x86 ×1