assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16
mov ax,0b872h ;计算屏幕中心位置
mov es,ax
mov si,0
mov di,0
mov cx,3
mov bx,0
mov bp,0
s0: push cx ;保护外循环
mov cx,10h ;进行16次内循环
s: mov al,ds:[bx]
mov es:[di+bp],al
mov ah,ds:[10h+si] ;读取字符属性
mov es:[di+bp+1],ah
inc bx
add bp,2
loop s
mov bx,0
mov bp,0
add di,0a0h ;跳到下一行
inc si
pop cx
loop s0
mov ax,4c00h
int 21h
code ends
end start |