assume cs:code,ds:data
data segment
db 'welcome to china!',0
data ends
code segment
start:
mov dh,8
mov dl,35
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
;名称:show_str
;功能:在制定位置,用指定亚瑟显示一个用0结束的字符串
;参数:(dl)=行号,(dh)=列号,(cl)=颜色 ds:si指向字符串首地址
;返回:无
show_str:
;保护现场
push ax
push cx
push dx
push si
push di
;计算显示位置 di存放
mov al,80
mul dh
mov dh,0
add ax,dx
mov di,ax
;准备显示
mov ax,0B800h
mov es,ax
;显示
mov al,cl
s:
mov cl,al
mov ch,ds:[si]
mov es:[di],cx
inc si
add di,2
mov cl,0
jcxz quit
jmp short s
;现场恢复
quit:
pop di
pop si
pop dx
pop cx
pop ax
ret
code ends
end start |