show_str 这个子程序向外提供了接口,使得我们使用时不用考虑显存的关系.为编程提供了方便.
data segment
db 'Hello Zouziwen!', 0
data ends
code segment
assume cs:code, ds:data
start:
mov dh, 20 ;dh存放行号(1-25)
mov dl, 8 ;dl存放列号(1-80)
mov cl, 02h ;cl中存放颜色属性
mov ax, data
mov ds, ax
mov si, 0
c2:call show_str
mov ax, 4c00h
int 21h
show_str:
push cx
push si
dec dh
mov al,dh
mov bl,160
mul bl
mov bx,ax
mov al,2
mul dl
sub ax,2
add bx,ax ;地址对应的数据到了bx寄存器
mov ax,0b800H
mov es,ax
mov ah,cl
xor ch,ch
xor si,si
xor bp,bp
c1: ;循环把字符放到显存中
mov cl,[bp]
jcxz ok
mov al,cl
mov es:[bx+si],ax
inc bp
add si,2
jmp c1
ok:
pop si
pop cx
ret
code ends
end start