we6540 发表于 2012-1-18 20:38:51

汇编代码问题

大家看图片
代码我是照着书本来敲的
我试调到第3段的时候就弹出个16位什么什么的系统这是怎么回事啊!





we6540 发表于 2012-1-19 14:46:59

{:7_173:}   

张国祥 发表于 2012-1-19 17:05:14

你触到系统的防线了……建议在0:200到0:2ff进行试验(一段安全的空间)

事事如意 发表于 2012-1-19 17:25:43

你的代码最终是ss:1000 sp:2然后你又把ax(ax:2266)放到栈里,是这个意思吧??!一定是的。
这样做,可能导致你的栈顶指针指的是系统的一些“不可见人的东西”,因此,当你把ax的值放到栈里去覆盖这些不可见人的东西时,系统是不允许的,因些会出现类似这样的对话框。楼上仁兄,讲的好,应该在一段安全的空间里进行你任意的操作。这样不至于修改到系统本身的重要数据。内存安全空间0:200~0:2ff

事事如意 发表于 2012-1-19 17:26:58

若那里还有不明白的,请在这里提问,我会追踪回答您的提问的,顺便可以巩固一下自己学的知识。

we6540 发表于 2012-1-19 19:41:06

本帖最后由 we6540 于 2012-1-19 19:41 编辑

事事如意 发表于 2012-1-19 17:26 static/image/common/back.gif
若那里还有不明白的,请在这里提问,我会追踪回答您的提问的,顺便可以巩固一下自己学的知识。
这个方法我也试过了不行的,单步运行到第3段还是弹出个对话框出来!CS段地址 SS段地址我也换了几个还是不行啊

415968430 发表于 2012-1-19 20:16:23

没事的。说不定你下次调试就不会有这个问题了。

事事如意 发表于 2012-1-19 20:44:14

我试了一下,也有同样的问题,不过,我把mov ss,2改为mov ss,6就好用,我也很是不理解,应该呀,ax 为十六位,sp 指向的是2还有0和1两个八位的内存单元,应该足以容得下2266了。我再研究一下,回头给答复

张国祥 发表于 2012-1-19 21:52:52

事事如意 发表于 2012-1-19 20:44 static/image/common/back.gif
我试了一下,也有同样的问题,不过,我把mov ss,2改为mov ss,6就好用,我也很是不理解,应该呀,ax 为十六位 ...

发现 事事如意 学习劲头好足,自愧不如= ={:7_176:}

事事如意 发表于 2012-1-19 22:02:36

呵呵,大家互相学习,关于这个问题,应该可以从我刚才的解答中找出点什么突破口,今天挺忙,为了帮小甲鱼老师更多的支持,我就用一天的时间来看看大家。
回头再谈这个问题,不要想的太多,往往许多问题就是一个窗户纸。不要陷进去。
页: [1]
查看完整版本: 汇编代码问题