assume cs:code,ds:data
data segment
db 'welcome to masm!'
db 0000010B,00100100B,01110001B
data ends
code segment ;用es作为显示屏的内存段地址,bx作为它的偏移地址
start: mov ax,data ;用di指向字符数据,si指向色彩模式
mov ds,ax
mov bx,60
mov ax,0b878h ;定位到B878是为了显示在屏幕中间
mov es,ax
mov di,0 ;初始化di与si
mov si,10h
mov cx,3
s:
mov dx,cx ;用dx暂存cx的值
mov cx,16
s2:
mov al,ds:[di]
add di,1
mov es:[bx],al ;向显示器内存输入一个字符
inc bx
mov al,ds:[si]
mov es:[bx],al ;输入该字符的色彩模式
inc bx
loop s2
mov cx,dx ;恢复外层循环的cx
mov ax,es
add ax,0ah
mov es,ax ;修改es使下一次打印从下一行开始
mov bx,60
mov di,0 ;修改di和si以打印下一行
add si,1
loop s
mov ax,4c00h
int 21h
code ends
end start |