实验9 绿字、绿底红字、白底蓝字显示字符串'welcome to masm!'
实验9 绿字、绿底红字、白底蓝字显示字符串'welcome to masm!'
完整源码
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0B800H
mov es,ax
mov di,0
mov bx,38H
mov cx,10H
s0: mov si,0AA0H
mov al,ds:[di]
mov es:[si+bx+0],al
mov al,02H
mov es:[si+bx+1],al
add si,160
mov al,ds:[di]
mov es:[si+bx+0],al
mov al,24H
mov es:[si+bx+1],al
add si,160
mov al,ds:[di]
mov es:[si+bx+0],al
mov al,71H
mov es:[si+bx+1],al
add bx,2
inc di
loop s0
mov ax,4c00H
int 21H
code ends
end start
代码说明
-
目前的代码:满足属性要求,但是不满足居中显示。
-
代码执行过程:每次访问一个字符,写三行,设置不同的属性。
- 访问与写入字符
访问单个字符
mov al,ds:[di]
设置字符ASCII码 [行+列+低位放ASCII码]
mov es:[si+bx+0],al
设置属性
mov al,02H
设置字符属性 [行+列+高位放属性]
mov es:[si+bx+1],al
0 - 否定:不闪烁、没红、没绿、没蓝、不高亮
1 - 肯定:闪烁、有红、有绿、有蓝、高亮
神奇的BUG
参考