zhaopengfei 发表于 2014-1-29 22:12:20

根据第9章的材料编程

第九章根据材料编程的实验,小甲鱼在课后题给的代码编译连接成功,但是运行起来一闪而过,没有结果啊。我又根据这个编了个更简单的程序来测试,代码如图:                      结果这个也是可以正确的编译和链接,但是运行也是一闪而过,我用debug单步调试,最后发现显存的B800:720单元的内容一直是变化的,程序运行后内存单元B800:720的内容如图:所以得不到预期的实验结果。这到底是怎么回事???怎么都想不明白,我到底哪儿理解错了?? 希望这个问题能引起小甲鱼老师的注意。 并来解答,万分感谢~



LinuxDeepin 发表于 2014-1-30 00:20:23

显存是在不断被刷新的,你写的程序运行后,显存被写入指定字符,并显示出来了。
但是显示的时间很短,也就是你所说的一闪而过。

最简单方法,加个死循环,让其反复显示。
在 mov ax,4c00H 之前加入 jmp short start

LinuxDeepin 发表于 2014-1-30 00:51:57

或者你直接运行编译好的 exe 文件,
打开CMD ,先输入 cls 回车清屏
然后在CMD里输入 *.exe    *是文件名。
再次回车,就应该能看到效果了

LinuxDeepin 发表于 2014-1-30 00:53:43

debug 里调试,每 t 一次,都会刷一次屏

zhaopengfei 发表于 2014-1-30 10:29:12

LinuxDeepin 发表于 2014-1-30 00:53 static/image/common/back.gif
debug 里调试,每 t 一次,都会刷一次屏

你说的三个方法我都试过了,没用,还是老样子。   并且我看小甲鱼的视频里面就会显示出来而且就一直在固定的中间显示,不会刷新。

zhaopengfei 发表于 2014-1-30 10:34:16

ryan0632 发表于 2014-1-30 09:53 static/image/common/back.gif
彩色字符显示缓冲区这部分要在DOS环境下运行,下载个DOSBOX或者EMU8086

我看小甲鱼老师的视频的时候就是在cmd.exe中显示的呀,而且我这个程序单步调试的时候到了循环的时候在debug中用P命令执行完之后就会在预期的位置显示出绿色的字符串elcome,但是再继续的话这个字符不断上移,最后消失。这怎么回事啊

zhaopengfei 发表于 2014-1-30 16:25:50

呼唤小甲鱼老师来解决这个棘手的问题!!!! 让我好好过个年

LinuxDeepin 发表于 2014-1-30 17:36:37

zhaopengfei 发表于 2014-1-30 10:29 static/image/common/back.gif
你说的三个方法我都试过了,没用,还是老样子。   并且我看小甲鱼的视频里面就会显示出来而且就一直在固定 ...

最直接的方法 在程序退出之前加入 jmp short start
单核的CPU 请不要这样做,否则会死循环

zhaopengfei 发表于 2014-1-30 17:49:07

LinuxDeepin 发表于 2014-1-30 17:36 static/image/common/back.gif
最直接的方法 在程序退出之前加入 jmp short start
单核的CPU 请不要这样做,否则会死循环

就是说这样子不行啊, 立即陷入死循环。 而且我的CPU是双核的,你说的几个方法都没用。

LinuxDeepin 发表于 2014-1-30 19:35:27

zhaopengfei 发表于 2014-1-30 17:49 static/image/common/back.gif
就是说这样子不行啊, 立即陷入死循环。 而且我的CPU是双核的,你说的几个方法都没用。

你是什么系统? XP win7 win8 ?
建议用虚拟机安装XP来测试

LinuxDeepin 发表于 2014-1-30 19:37:42

编写同样的程序,没问题呀!


代码如下:

zhaopengfei 发表于 2014-1-31 12:50:06

LinuxDeepin 发表于 2014-1-30 19:35 static/image/common/back.gif
你是什么系统? XP win7 win8 ?
建议用虚拟机安装XP来测试

我是win7的ghost旗舰版系统,除了这个实验,其他的实验都可以正常运行。

zhaopengfei 发表于 2014-1-31 12:59:02

LinuxDeepin 发表于 2014-1-30 19:37 static/image/common/back.gif
编写同样的程序,没问题呀!




不是吧,我的代码就是这个样子的啊,完全一致,可是就是运行得不到上边的结果啊,郁闷死我了,到底是哪儿出问题了???:cry:cry

LinuxDeepin 发表于 2014-1-31 16:51:57

zhaopengfei 发表于 2014-1-31 12:59 static/image/common/back.gif
不是吧,我的代码就是这个样子的啊,完全一致,可是就是运行得不到上边的结果啊,郁闷死我了,到底是哪儿 ...

安装VMware 虚拟机吧,在虚拟机里安装XP ,这样很方便的,对于初学者来说

2004111 发表于 2014-2-2 20:21:39

我只是路过看看
页: [1]
查看完整版本: 根据第9章的材料编程