问题描述:向屏幕输出一行"Welcome to masm!",王爽的教材说 ,显存在b8000H--bffffH这段空间地址,由于各种原因,我在虚拟机中做的实验。(暂且不管我为什么用虚拟机而不是在win7的64位装dosbox),我发现,在虚拟机下根本输不出任何一个字!
后来我debug发现,这段内存被写入东西之后,执行下一条指令,数据立马恢复到没有改写数据的状态。具体调试如下。不知道我的猜测对不对,也请大神指教,为什么这段代码在虚拟机中没有输出任何字符!
代码:
assume cs:codesg,ds:datasg
datasg segment
db 'Welcome to masm!'
datasg ends
codesg segment
start:
mov ax, datasg
mov ds, ax ;source adrress
mov ax, 0b800h
mov es, ax
mov cx, 10h
mov bx, 0
mov si, 0
mov di, 0
;Show the grue colour
s:mov al, ds:[si]
mov ah, 0cah
mov es:[di], ax
inc si
add di, 02h
loop s
;Show the grece white front color
;add es,80
;mov ax, es
;add ax, 80d
;mov es, ax
;mov si, 0
;mov di, si
;mov cx, 10h
;s0: mov al, ds:[si]
; mov ah, 01000010b
; mov es:[di], ax
; inc si
; add di, 02h
; loop s0