关于屏幕显示的问题
assume cs:code,ds:data
data segment
db "welcome to masm!"
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
mov ax,0b872h
mov es,ax
mov si,0ah
mov cx,16
s: mov al,ds:
mov es:,al
mov al,00000010b
mov es:,al
inc si
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
=====================================
上面的代码执行后结果为什么不是绿底的“welcome to masm!"呢?
最上面是我执行后的现象,多多指教,谢了
本帖最后由 莫名其妙 于 2012-2-29 22:25 编辑
s: mov al,ds:
mov es:,al
mov al,00000010b; 这里你可以用16进制数表示 干嘛用2进制呢.. 绿色直接 mov al,2不过用2进制确实 方便对照颜色改!~
mov es:,al
inc si
inc bx
loop s
低8位存放数据高八位存放颜色 ds 段每次增加1 es段每次 要加2也就是 si+2 才能到下一个数据存放的位置
比如
XXXX:0000 01 02 03 04 05 06 07 08 .....................
数据颜色数据颜色数据 颜色.................
有两处错误导致结果错误
整个程序的结构是没有错的,错在细节
1.颜色背景在前,前景在后,所以应该是 00100000b (绿底 = 绿背景)
2.si作为显示器内存循环的变量,应该每次循环都加2,所以是 add si,2 错误原因前面两位兄台已经解释了,我就不说了。但想向你请教一下怎么贴图的??我弄好久都不会贴 风剑河 发表于 2012-2-29 23:41 static/image/common/back.gif
错误原因前面两位兄台已经解释了,我就不说了。但想向你请教一下怎么贴图的??我弄好久都不会贴
————-你在回贴时点击右上的高级模式,而后有个“图片“选项,点击以后就可以上传图片了,上传后点击图片本身,这样就贴上去了 莫名其妙 发表于 2012-2-29 22:22 static/image/common/back.gif
s: mov al,ds:
mov es:,al
mov al,00000010b; 这里你可以用16进制数表示 干嘛用2进制呢.....
明白了,非常感谢!! 夏洛 发表于 2012-2-29 23:01 static/image/common/back.gif
有两处错误导致结果错误
整个程序的结构是没有错的,错在细节
1.颜色背景在前,前景在后,所以应该是 001 ...
太感谢了:handshake
页:
[1]