pengxiang01 发表于 2012-1-27 16:46:49

栈的问题

本帖最后由 pengxiang01 于 2012-1-27 16:47 编辑

movecx,dword ptr ss:的效果 和 pop ecx 一样的吗?

小马过河 发表于 2012-1-27 16:46:50

movecx,dword ptr ss:的效果 和 pop ecx取得ECX的数据是一样的   但栈顶SP却改变了   SP=sp+4指向栈顶所以说还是有区别d的

小军 发表于 2012-1-27 17:11:33

后面 SS: 定义指出了出栈的空间 像是个特定的位置:loveliness:
浅见

bafengao 发表于 2012-1-27 17:45:52

如果地址一样 就一样

事事如意 发表于 2012-1-27 19:28:00

这个问题,你还是没有搞清楚,不知道你怎么给绕进去了。mov ecx,dword ptr ss:这仅仅相当于赋值,而pop ecx这是在ecx已经居有这个值的基础上先将ecx进行push一下,将ecx的当前值进行保存备份,在需要的时候再用pop ecx将ecx先前备份的值给重新pop出来,从而对ecx进行恢复。再有不明白的直接给我回贴就行。

pengxiang01 发表于 2012-1-27 19:41:26

我有些理解了 谢谢

eons 发表于 2012-1-27 19:44:05

本帖最后由 eons 于 2012-1-27 19:46 编辑

4楼分析的很独到!一个是赋值,一个是弹出数据、
疯狂程序员中绝影也说过这个问题,女老师问他pop eax是什么意思,他回答的是mov eax,dword ptr ess:,add esp,4
而且在小甲鱼16位汇编中,mov好像是不能修改标志寄存器的、不知道pop也是不是不修改标志寄存器、

nichkhun 发表于 2012-1-29 02:32:25

多读多看多操作,没区别的很少,有区别的太多。。。。;P;P
页: [1]
查看完整版本: 栈的问题