| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
实验10-1 
 
 assume cs:code  
 
data segment  
    db 'Welcome to masm!', 0  
data ends  
 
code segment  
start:  
    mov dh, 8        ; 从第8行开始显示  
    mov dl, 3        ; 从第3列开始显示  
    mov cl, 2        ; 字体颜色为绿色  
    mov ax, data  
    mov ds, ax  
    mov si, 0        ; 字符串的首地址  
    call show_str  
    mov ax, 4c00H  
    int 21H  
      
show_str:  
    push ax  
    push bx  
    push bp  
    push cx  
    push si  
    push di  
    push es  
      
    mov bl, cl            ; 字体颜色存在bl中  
    mov ax, 0b800H  
    mov es, ax            ; 显示缓冲区的段地址存在es  
    mov ax, 0a0H  
    mul dh                ; 计算第n行的首地址  
    mov bp, ax            ; 将第n行的首地址存在bx  
    mov ax, 2  
    mul dl                ; 计算第n列的偏移地址  
    mov di, ax            ; 将第n列存在di  
ctom:  
    mov ch, 0             ; 判断是否到字符串结尾  
    mov cl, [si]  
    jcxz exit             ; 结尾则结束  
    mov es:[bp][di], cl   ; 存储字符  
    inc di  
    mov es:[bp][di], bl   ; 存储字符属性  
    inc si  
    inc di  
    jmp short ctom  
exit:  
    pop es  
    pop di  
    pop si  
    pop cx  
    pop bp  
    pop bx  
    pop ax  
    ret  
code ends  
end start 
 
 
 
 
 |   
 
 
 
 |