菜鸟求助_B8000~BFFFF
1图在debug下可以显示出来
2图直接执行不能显示
在b8000~bffff里写东西,在调试状态可以执行,直接执行就显示不出来,是为什么? 我也想过这个问题,最后我还是猜明白了,可能是目前的XP或WIN7系统中的DOS不支持这种超低档的显存吧,XP系统的DEBUG程序还保留了显存25X80这模式,所以一定得调用一下DEBUG程序才能显示出来。WIN7中的不支持25X80显存模式了,就不能显示了。 小燕双飞GO 发表于 2013-12-29 00:06 static/image/common/back.gif
我也想过这个问题,最后我还是猜明白了,可能是目前的XP或WIN7系统中的DOS不支持这种超低档的显存吧,XP系统 ...
可能是哦,:funk: 我是牛牛,双号 发表于 2013-12-29 00:13 static/image/common/back.gif
可能是哦,
慢慢学习就会懂了。 不要用Debug调试。
关于实验9 屏幕输出一闪而过的情况!【求加精】
http://bbs.fishc.com/thread-41551-1-1.html
估计显示太快了,不是没显示, 其实是现实了的就是太快了系统执行完后紧接着执行4c00后返回DOS 可能是系统就回收了内存空间吧 学习再学习!!! 把代码贴上来看看,我昨晚0时,弄出来了是正常的哦 本帖最后由 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
我在win7也不显示,用dosbox正常。
页:
[1]