assume cs:code
data segment
db 'welcome to masm!'
data ends
color segment
dw 00000010B ;绿色
dw 00100100B ;绿底红色
dw 01110001B ;白底蓝色
color ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:
mov ax, color
mov ds, ax
mov ax, data
mov es, ax
mov ax, stack
mov ss, ax
mov sp, 10h
push ds:[4]
push ds:[2]
push ds:[0]
mov ax, 0B800H
mov ds, ax
mov bx, 780h ;第12行 dos默认为80×25,第12行为中间行
mov cx, 3
display:
pop dx
push cx
mov si, 40h ;每次从第40h单元开始写字符,显示在中间
mov di, 0 ;di作为welcome字符串的偏移指针
mov cx, 10h
perrow:
mov al, es:[bp][di]
mov [bx][si], al
inc si
inc di
mov [bx][si], dl
inc si
loop perrow
pop cx
add bx, 0a0h ;继续下一行
loop display
mov ax, 4c00h
int 21h
code ends
end start |