masm 显示字符的子程序

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  


你可能感兴趣的:(assembly)