assume ds:data,cs:code
data segment
db 'welcome to masm!' ;显示的文字
db 2h,24h,71h ;三种颜色
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0 ;
mov cx,3 ;三次外循环
mov si,640h ;行起始地址
mov ax,0b800h ;显存的段地址
mov es,ax
s: mov dx,cx ;外循环开始
mov cx,16 ;16次内循环
mov bp,72 ;行内基地址
mov di,0
s0: mov al,[di] ;内循环开始,读取字符
mov ah,[bx+16] ;读取颜色
mov es:[si+bp],al;写入显存字符
mov es:[si+bp+1],ah;写入显存颜色
add bp,2
inc di
loop s0
mov cx,dx
add si,0A0h ;下一个起始地址
inc bx ;进行一个外循环
loop s
mov ah,0 ;等待任意键入 目的是为了能有时间观察
int 16h
mov ax,4c00h
int 21h
code ends
end start |