王爽 汇演语言 实验9
在屏幕中间显示绿色,绿底红色,白底蓝色的字符串'Welcome to masm'。
背景知识:
80x25彩色字符模式显示缓冲区(一下简称为显示缓冲区)的结构:
内存地址空间中,B8000H-BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
在一行中,一个字符占两个字节的存储空间,低位字节存储字符的ASCII码,高位字节存储字符的属性,一行共有160个字节
属性字节的格式:
7 6 5 4 3 2 1 0
BL R G B I R G B
7为闪烁 456为背景 3为高亮 012为前景
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码如下:
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 si,0
mov di,10*160+40 ;确定要显示的位置
mov cx,16
s:mov al,ds:[si] ;低位存储ASCII码
mov ah,00000010B ;高位存储属性
mov es:[di],ax
inc si
add di,2 ;一个字符占用两个字节
loop s
mov si,0
mov di,11*160+40
mov cx,16
s1:mov al,ds:[si]
mov ah,00100100B
mov es:[di],ax
inc si
add di,2
loop s1
mov si,0
mov di,12*160+40
mov cx,16
s2:mov al,ds:[si]
mov ah,01110001B
mov es:[di],ax
inc si
add di,2
loop s2
mov ax,4c00H
int 21H
code ends
end start
结果截图: