o不再随便o 发表于 2014-5-1 23:32:04

汇编作业实验3的问题

本帖最后由 o不再随便o 于 2014-5-2 00:25 编辑

为什么每次运行到了pop ax这里的时候就弹出错误?是内存被占用了,可是我连续换了几个地址也是这样。。求解释,还有实验3的课后答案的代码为什么和书本不一样?

xiaosawanjava 发表于 2014-5-1 23:42:42

上下源码,不然就给一张图片怎么看?

o不再随便o 发表于 2014-5-2 00:25:59

xiaosawanjava 发表于 2014-5-1 23:42 static/image/common/back.gif
上下源码,不然就给一张图片怎么看?

代码已经上传了上传了~~~

www5956 发表于 2014-5-2 11:29:35

首先检查下你的内存是否被占用看下数据是否为0如果不是请换个段地址!

xiaosawanjava 发表于 2014-5-2 12:59:33

其实这个原因很简单,就是因为你pop ax 之前 sp 的值太小了 ,他的值为 4 ,如果你吧sp的值搞大点就行了,这个原因要解释我也解释不清楚,好像sp 的值必须要大于6

o不再随便o 发表于 2014-5-2 20:43:21

www5956 发表于 2014-5-2 11:29 static/image/common/back.gif
首先检查下你的内存是否被占用看下数据是否为0如果不是请换个段地址!

数据我查看了是0

o不再随便o 发表于 2014-5-2 20:44:29

xiaosawanjava 发表于 2014-5-2 12:59 static/image/common/back.gif
其实这个原因很简单,就是因为你pop ax 之前 sp 的值太小了 ,他的值为 4 ,如果你吧sp的值搞大点就行了,这 ...

sp必须大于6?你在哪里看到这样的规定?

xiaosawanjava 发表于 2014-5-2 20:46:01

o不再随便o 发表于 2014-5-2 20:44 static/image/common/back.gif
sp必须大于6?你在哪里看到这样的规定?

那你试下便知,我只是告诉你,你不信,是你的事。

o不再随便o 发表于 2014-5-2 20:51:28

xiaosawanjava 发表于 2014-5-2 12:59 static/image/common/back.gif
其实这个原因很简单,就是因为你pop ax 之前 sp 的值太小了 ,他的值为 4 ,如果你吧sp的值搞大点就行了,这 ...

测试过果真是这样,但为什么呢?

xiaosawanjava 发表于 2014-5-2 20:53:16

o不再随便o 发表于 2014-5-2 20:51 static/image/common/back.gif
测试过果真是这样,但为什么呢?

这个你问我,我就不知道了,我也是一位好心人告诉我的,至少我会去尝试一下

o不再随便o 发表于 2014-5-2 20:56:33

答案已经找到了,给大家看下原因http://zhidao.baidu.com/link?url=QqOknWSXKXvLnKmGo7JY14MnOXi8Vz-eQWl5ISz0RllJWATRY0IwgSS0OjwU-YzqoHmUSNLWlrmWRP8IONAA6_

pengyuwa 发表于 2014-5-2 22:03:58

是不是溢出了?

月生光 发表于 2016-6-13 19:55:07

为什么我这可以呢?没有报错呀

月生光 发表于 2016-6-13 20:39:10

月生光 发表于 2016-6-13 19:55
为什么我这可以呢?没有报错呀

我找到原因了。是因为我是按书上输入的。是add sp 10 ,不是add sp 4。后来改成add sp 4后又没重新生成obj和exe文件。
页: [1]
查看完整版本: 汇编作业实验3的问题