assume cs:code,ds:data,ss:stack
data segment
db "welcome to masm!" ;定义数据段
db 2h,24h,71h
data ends
stack segment
db 16 dup(0) ;定义堆栈段
stack ends
code segment
s:mov ax,data
mov ds,ax ;DS指向数据段
mov ax,stack
mov ss,ax ;SS指向堆栈段
mov sp,16
mov bx,16 ;BX指向字符属性字节
mov ax,0b872h ;AX指向显存段地址(屏幕中间)
mov cx,3
l:push ax ;保存现场
push cx
mov di,0 ;DI指向显存偏移地址
mov es,ax ;ES指向显存段地址
mov si,0 ;SI指向数据段地址
mov ah,ds:[bx] ;字符属性字节存入AH
mov cx,16
p:mov al,[si] ;依次将16个字符及其属性字节传送给显存
mov es:[di],ax
inc si
add di,2
loop p
pop cx ;恢复现场
pop ax
inc bx
add ax,10 ;AX指向显存下一行
loop l
mov ax,4c00h
int 21h
code ends
end s |