完整代码如下:
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,32 ;80*25模式一共有80列,要显示16个字符,所以从第32列开始(ES:[di])才是显示屏的正中位置。
mov cx,16 ;一共16个字符,所以循环16次
s:
mov al,[si] ;将DS:[SI]处第一个字符‘W’的ASCII码传送给AL
mov ah,02H ;将颜色传送给AH
mov es:[780H+di],ax ;将带颜色的‘W’送给显示缓冲区第12行32和33字节
mov ah,24h ;修改颜色
mov es:[820H+di],ax ;将修改后的‘W’送给显示缓冲区第13行32和33字节
mov ah,71h ;修改颜色
mov es:[8C0H+di],ax ;将修改后的‘W’送给显示缓冲区第14行32和33字节
inc si
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start |