我是牛牛,双号 发表于 2013-12-28 23:42:59

菜鸟求助_B8000~BFFFF



1图在debug下可以显示出来
2图直接执行不能显示

在b8000~bffff里写东西,在调试状态可以执行,直接执行就显示不出来,是为什么?

小燕双飞GO 发表于 2013-12-29 00:06:41

我也想过这个问题,最后我还是猜明白了,可能是目前的XP或WIN7系统中的DOS不支持这种超低档的显存吧,XP系统的DEBUG程序还保留了显存25X80这模式,所以一定得调用一下DEBUG程序才能显示出来。WIN7中的不支持25X80显存模式了,就不能显示了。

我是牛牛,双号 发表于 2013-12-29 00:13:44

小燕双飞GO 发表于 2013-12-29 00:06 static/image/common/back.gif
我也想过这个问题,最后我还是猜明白了,可能是目前的XP或WIN7系统中的DOS不支持这种超低档的显存吧,XP系统 ...

可能是哦,:funk:

霸气外露 发表于 2013-12-30 20:49:39

我是牛牛,双号 发表于 2013-12-29 00:13 static/image/common/back.gif
可能是哦,

慢慢学习就会懂了。

无名侠 发表于 2013-12-30 21:19:54

不要用Debug调试。

关于实验9 屏幕输出一闪而过的情况!【求加精】
http://bbs.fishc.com/thread-41551-1-1.html

lslin 发表于 2013-12-31 11:26:02

估计显示太快了,不是没显示,

sd53852728 发表于 2014-1-1 00:54:58

其实是现实了的就是太快了系统执行完后紧接着执行4c00后返回DOS 可能是系统就回收了内存空间吧

亚特兰蒂斯 发表于 2014-1-2 16:27:01

学习再学习!!!

lms99251 发表于 2014-1-10 10:04:09

把代码贴上来看看,我昨晚0时,弄出来了是正常的哦

lms99251 发表于 2014-1-10 10:06:52

本帖最后由 lms99251 于 2014-1-10 10:16 编辑

我的代码
assume cs:code,ds:data,ss:stack

data segment
      db 'welcome to masm!'
      db 02h,24h,71h
data ends

stack segment
      dw 8 dup(0)
stack ends

code segment
      start:      mov ax,data
                        mov ds,ax
                        mov ax,stack
                        mov ss,ax
                        mov sp,16
                        
                        mov ax,0b872h
                        
                        
                        mov bx,0;bx为读取颜色偏移
                        mov cx,3
      s:                push cx
                        ;push bx
                        push ax
                        
                        mov es,ax
                        mov si,0;si为读取文字偏移
                        mov di,0;di为写入显示缓冲区偏移
                        mov cx,16
      s0:                mov al,
                        mov es:,al ;写入文字
                        mov al,10h
                        mov es:1,al ;写入颜色
                        inc si
                        add di,2
                        loop s0
                        
                        pop ax
                        ;pop bx
                        pop cx
                        add ax,0ah ;增加段地址160字节,跳入下一行
                        inc bx
                        loop s
                        
                        mov ax,4c00h
                        int 21h
code ends

end start

番茄遇蜜桃 发表于 2014-1-26 10:11:02

我在win7也不显示,用dosbox正常。
页: [1]
查看完整版本: 菜鸟求助_B8000~BFFFF