lurning 发表于 2014-4-24 14:05:14

各位大牛,江湖告急啊!!

我在做汇编实验9的时候,也就是在屏幕上输出Welcome。。。的字符串,我向内存b8000里写了东西,然后编译成exe。我用cmd运行的时候,他只是闪了一下黑屏,并没有显示出东西,但是我用debug它,然后直接g命令,东西就显示出来了,请问这是为什么,还有请问小甲鱼老师在讲实验9时,向显存里写东西是,他把段地址:mov ax,0b800h,是这样写的,为什么是0b800,这不是5位数了吗?ax不是16位寄存器吗,怎么接受5位的数

nsonline 发表于 2014-4-24 14:34:35

第一,0b800其实就是B800,前面之所以加了一个0是因为编译器要求地址不能用字母开头,这个视频里已经说明过了。
第二,B800,这是个16位的数!具体的你还是多看看前面的视频吧,你不会是从中间开始看的吧!!

无名侠 发表于 2014-4-24 18:11:45

加一个死循环

为之疯狂 发表于 2014-4-24 19:19:27

用dosbox就不会,我的也是用了这个就会显示了

堇年事事 发表于 2014-4-24 19:48:49

菜鸟路过哈哈

志华 发表于 2014-4-24 20:48:37

能显示就说明成功了。

lurning 发表于 2014-4-24 21:51:45

谢谢大家,那小甲鱼视频里怎么就可以显示出来,他用的不是cmd吗

传说。 发表于 2014-4-24 22:09:09

小甲鱼录视频的时候用的应该还是32位操作系统。 你的估计不是吧。

lurning 发表于 2014-4-25 08:48:46

传说。 发表于 2014-4-24 22:09 static/image/common/back.gif
小甲鱼录视频的时候用的应该还是32位操作系统。 你的估计不是吧。

我的也是32位的啊,你的cmd运行能显示出来吗,我的就是一闪就什么都没

传说。 发表于 2014-4-26 00:13:16

lurning 发表于 2014-4-25 08:48 static/image/common/back.gif
我的也是32位的啊,你的cmd运行能显示出来吗,我的就是一闪就什么都没

程序运行完应该把CPU控制权又交给DOS,C语言写的时候要加两个getchar();,然后才能暂停在那。 你那应该是执行了。我还没学到。 但是貌似你前面还没有学好。0b800h,表示b800h,如果第一个字符是字母的话CPU是不认识的。 前面有强调过。所以要在字母前要加个0.
页: [1]
查看完整版本: 各位大牛,江湖告急啊!!