这是本人写的实验9的程序
assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b800H
mov es,ax
mov bx,3c3dH
mov si,0
mov cx,16
s:mov dh,0caH
mov dl,[si]
mov es:[bx+0110H],dx
inc si
add bx,2
loop s
code ends
end start
本人理解的在屏幕中间显示是在第13行的第33列至地48列显示(用0110H定位第13行,bx定位列)
这个程序本人编译和连接都通过,生成了EXE文件。
当我运行时却出现了 NTVDM CPU遇到无效指令的对话框,这说明我的程序已经修改了一段存有重要数据的内存地址空间;但是当我用debug进行跟踪时,却每条指令都能用T命令执行。
而且当执行 mov es:[bx+0110H],dx指令后,用D命令查看修改的内存空间时,其值不是DX中的值。
小弟实在想不明白,请各位大虾指点一下,谢谢! |