qqxx2424 发表于 2010-11-29 21:08:08

关于汇编的两个问题

1、关于栈的问题:比如我们定义的栈的段地址是1000H,栈的大小为64KB,即sp的范围是0000—FFFF。当栈为空是sp指向0000,问:这个sp指向的是栈底下面的单元0000吗?还是栈的第一个单元(如果在栈顶如何压栈呢?)。如果在栈底,当压栈的时候。sp=sp-2。那sp变为什么了呢。-2?不会有这个值吧。?
2、我们知道,当游戏在我们电脑上运行的时候,会有一个基址,这个址是不变的。问:当两款游戏的基址相同怎么办?CPU是如何处理的。

花心胡萝卜 发表于 2010-11-30 09:48:34

既然是栈,那么你就记住,栈的指针永远指向最上边元素的上边,比如,栈为空,那么sp指向栈顶的指针,就是0000,也就是最下边的地址,如果有一个元素了,那么,sp++
至于你说的压栈的时候,不会出现sp=sp-2,那是出栈,不是压栈
二这个-2,是移动2个改类型的存储单元,比如一个整形4字节,那么sp-2移动的是8字节
我说的可能会不对,所以,我不保证什么,还是要看大家的回答
至于你的第二个问题,抱歉,我不知道- -

农妇果园 发表于 2012-3-4 13:37:38

不错不错,很好很好,谢谢分享











static/image/common/sigline.gif
北京商标注册代理

346022142 发表于 2013-4-28 19:10:08

我来回答第二个问题好了!
windows会为每个进程虚拟一个内存空间,也就是说R3的程序的内存空间是隔离开的A进程不能直接访问B进程的内存 只能调用API请求操作系统"帮忙”修改其他进程的某个内存地址   
页: [1]
查看完整版本: 关于汇编的两个问题