感觉写得比较粗糙,大家看看能不能优化些。
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b800h ;字母开头要用0开头
mov es,ax
mov bx,0
mov cx,11
s1:add bx,0a0h
loop s1 ;跳转到第11行
mov si,0
mov di,40h ;要写字符的第一列
mov cx,16
s2:mov ah,[si] ;将数据送到ah
mov es:[bx+di],ah
mov es:[bx+di+160],ah ;第12行
mov es:[bx+di+320],ah ;第13行
inc di ;下一个字节写入字符属性
mov byte ptr es:[bx+di],02h ;同上
mov byte ptr es:[bx+di+160],24h
mov byte ptr es:[bx+di+320],71h
inc di
inc si
loop s2
mov ax,4c00h
int 21h
code ends
end start |