TA的每日心情 | 开心 2018-10-31 14:26 |
---|
签到天数: 18 天 [LV.4]偶尔看看III
高级会员
- 积分
- 1019
|
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
|
|