写好了程序第一次运行正常,之后就不正确,为什么?解决思路

写好了程序第一次运行正常,之后就不正确,为什么?

.MODEL   small


.STACK   100h


.DATA

usage_msg db 13,10, "Helloworld ",13,10, "$ "

.CODE

main   proc

mov   dx,   @DATA
mov   DS,   dx
mov   dx,   offset   usage_msg
mov   ah,   9
int   21h
mov   ah,   4ch
int   21h

main   endp

end   main


上面的代码在xp下的masm5编译之后,在cmd运行正常,但是另外重新再开cmd运行,却再也不能打印字符出来了,为什么呢?

------解决方案--------------------
这个, 应该是 xp 的虚拟 dos 环境的显示问题吧. 可以试试先 chcp 437 切换到英文状态; 还不行的话, debug 后再 q 命令退出 debug 后试试自己的程序. 其实, 往往第一个运行的程序都显示不正常, 除非是正常自己有修改显示模式