assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:
mov dh,0
mov dl,0
mov cl,00000010b
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
;功能:在指定位置,用指定颜色,显示一个用0结束的字符串
;参数:(dh)=行号(0~24),(dl)=列号(0~79),(cl)=颜色,ds:si指向字符串的首地址
;返回:无
show_str:
push dx
push cx
push si
push es;指向显存段地址0b800h
push bx;指向列
push di;指向行
mov si,0
mov ax,0b800h
mov es,ax
;得到起始行列,di表示行,bx表示列
mov al,160
mul dh
mov di,ax
mov bh,0
add dl,dl; 偶数位对应ASCII码
mov bl,dl
mov dl,cl
s:
mov ch,0
mov cl,[si]
jcxz ok
mov es:[di][bx],cl
mov es:[di][bx+1],dl
add si,1
add bx,2
jmp short s
ok:
pop si
pop cx
pop dx
pop es
pop bx
pop ax
ret
code ends
end start
实验10.1|show_str
最新推荐文章于 2021-05-25 00:37:47 发布