这篇博文将要简单介绍下,如何在屏幕上显示字符的各种效果。
注:博文中的图片来自王爽《汇编语言》,代码出自博主。
一:要求
二、对显示缓冲区的简单介绍
三、对字符属性字节的简单介绍
四、一个简单的例子,有助于理解
五、解决该题
1、按照题意,只要想缓冲区一个接一个地写入字符及其属性就可以在屏幕上显示了。
代码:
data segment
characters db 77h,65h,6ch,63h,6fh,6dh,65h,20h,74h,6fh,20h,6dh,61h,73h,6dh,21h
;welcome to masm!
color1 db 02h ;绿色
color2 db 24h ;绿底红色
color3 db 71h ;白底蓝色
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
;显示绿色
mov di,0
mov al,color1
call display
;显示绿底红色
mov di,00a0h
mov al,color2
call display
;显示白底蓝色
mov di,0140h
mov al,color3
call display
mov ah,4ch
int 21h
display proc near
push si
push cx
push bx
;显示确定段地址
mov bx,0b800h
mov es,bx
;将字符及其属性写到内存相关区域
mov si,0
mov cx,16
again:
mov bl,characters[si]
mov es:[di],bl
inc di
mov es:[di],al
inc di
inc si
loop again
pop bx
pop cx
pop si
ret
display endp
code ends
end start
2、这里要注意的是,博主在win7旗舰版系统上无法看到结果,在XP系统上显示结果。结果会依次显示在
屏幕的最前三行。
3、结果截图

363



被折叠的 条评论
为什么被折叠?



