assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:mov dh,7
mov dl,2
mov cl,2
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指向字符串的首地址。
;返回:无
;应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。
show_str: push dx
push ax
push es
push bx
push si
push cx
mov cl,dh
mov ch,0
mov ax,0
jcxz a ;如果行号为0,就跳过s循环
s: add ax,0a0h
loop s ;确定显示行数,每行间隔0a0h个字节
a: mov cl,dl
jcxz a1 ;确定列数,具体步骤和行数一样,每列间隔两个字节,低字节是显示字符的ASCII码,高字节是显示字符的属性。
s0: add ax,2
loop s0
a1: mov bx,ax
mov ax,0b800h
mov es,ax
pop ax
show: mov cl,[si]
jcxz ok
mov es:[bx+1],al
mov es:[bx],cl
inc si
add bx,2
jmp short show
ok: push ax
pop cx
pop si
pop bx
pop es
pop ax
pop dx
ret
code ends
end start
王爽汇编语言——实验10-显示字符串
最新推荐文章于 2022-06-14 15:01:11 发布