小弟自学汇编,看到第九章最后一个实验题。
在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串‘Welcome to masm!'
我敲了一段代码,编译生成exe文件都无问题,但是运行的时候一个黑框框一闪而过,显示器并没有显示什么东西出来。
我自个儿是发现不出什么问题了,麻烦大神帮忙看看问题在哪?
因为是试验,我就只做了显示第一行的功能。
代码如下:
assume cs:codesg,ds:datasg
datasg segment
db 'Welcome to masm!'
data ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov bx,0
mov si,0
mov di,1
mov ax,0b800h
mov es,ax
mov cx,16
s: mov al,[bx]
mov byte ptr es:[si],al ;数据段中的字符填入显存中
mov byte ptr es:[di],82h ;82h为绿色字体属性
add si,2
add di,2
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
------解决方案--------------------
一闪而过,那是在“我的电脑”里双击程序运行的表现了。对这样的纯 dos 性的程序,通常是建议在虚拟机的 dos 环境下,简单的比如 DOSBox;Windows 环境的话,也是要先打开命令行窗口程序,进入到自己的那个目录,再执行那个程序。
------解决方案--------------------
你看一下我之前发的帖子,自认为分析的比较详细http://bbs.bccn.net/thread-432545-1-1.html
------解决方案--------------------
如果嫌它一闪而过,调用一个按键中断就可以了吧
------解决方案--------------------
你用的是用什么环境运行的,我当时用windows7的命令提示符窗口就没成功过,如果是窗口一闪而过那可以在程序最后加上暂停的指令。