疯狂的程序员中一个片段不理解-求解答
她自以为出了个很简单而又充满杀机的问题:pop eax指令计算机执行了哪些操作?这时候,好多同学笑了。她不知道,但他们知道,甚至好多老师都知道,他们知道这些问题根本难不到绝影,想用这种办法整他,那是自己给自己找麻烦,不会让他下不了台,只会让自己下不了台。
像土匪这样的人,肯定说:“把栈顶的值送eax。”
成绩好的会补充:“把栈顶指针往下移4字节。”
绝影说:“mov eax,dword ptr add esp,4”
------------------------------{:5_96:}
我想问的是,他利用mov 和 add 指令解答老师的pop eax 做了什么
那么 esp 偏移 段地址 是什么 是DS?他这里应该是32位的所以esp+4
请大家帮助我 为什么要把 ds:esp 的传送到eax,
不是应该吧ecs:esp的传送到eax么?
自己顶起 求解答 ESP默认的段地址是 SS! pop eax指令 1.先把栈顶元素放入ax寄存器,2.然后增加偏移地址
1.mov eax,dword ptr sp的段寄存器是ss,也就是说ss:sp指向栈顶元素,mov .. , .. 将ss:sp所指向的元素放入ax
2.add esp,4 然后来增加sp即偏移地址指向新的栈顶! 默认是ss!! 求解 zfzhuman123 发表于 2011-8-10 09:58 static/image/common/back.gif
pop eax指令 1.先把栈顶元素放入ax寄存器,2.然后增加偏移地址
1.mov eax,dword ptr sp的段寄存器 ...
小弟资质愚钝
您的意思是如果 后面的 偏移 是 那么他的段地址就是 SS?{:5_92:}
像这样
mov eax,dword ptr
这小说,没点儿功底,还真看不懂
页:
[1]