这个实现方法是用一个循环逐列显示字符。
;--------------------------------------------------------------------------------------
assume cs:code
data segment
db 'Welcome to Masm!'
data ends
code segment
start:
mov ax,data ;装入DS
mov ds,ax
mov ax,0b800h ;指定显示区域DS
mov es,ax
mov bx,0 ;首地址
mov bp,60 ;列的初始值
mov cx,16 ;16次循环
s: mov si,12*160 ;行的初始值
mov ah,72h ;指定颜色
mov al,[bx] ;装入ASCII字符
mov es:[si+bp],ax ;把白底绿字装入指定位置
add si,160 ;指向下一行
mov ah,24h ;指定颜色
mov al,[bx] ;装入ASCII字符
mov es:[si+bp],ax ;将绿底红字装入指定位置
add si,160 ;指向下一行
mov ah,17h ;指定颜色
mov al,[bx] ;装入ASCII字符
mov es:[si+bp],ax ;把白底蓝字装入指定位置
inc bx ;指向下一个字符
add bp,2 ;指向下一列位置
loop s
mov ah,4ch
int 21h
code ends
end start
;-------------------------------------------------------------------------------------- |