能力值:
(RANK:210 )
|
-
-
2 楼
不懂linux,呵呵,
esp是堆栈指针寄存器,保存的总是堆栈指针,就是栈顶的地址,EIP是指向要执行的下一条指令的地址
子函数中通常会有push ebp;mov ebp,esp,经过这个指令以后,ebp也指向堆栈了,偶觉得这样做有两个原因,1是因为esp经常变,而ebp不变,访问变量更方便.哈哈
还有就是有些编译器会在子函数后面加上leave指令,这个指令会把ebp的值放进esp,能防止堆栈不平衡影响程序的运行.
猜的,要是问题很严重建议你查资料.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
真的很感谢,不过有看了下汇编代码,感觉在子函数中,EBP好像是栈底。
|
能力值:
( LV2,RANK:10 )
在线值:
|
-
-
4 楼
linux还是windows没有关系吧,这寄存器和汇编都是基于x86体系的,而不是基于操作系统的
所以和操作系统无关
|
|
|