编程: 在屏幕中间分别显示绿色,绿地红色,白底蓝色的字符串 ‘welcome to masm!’。
内存地址空间中,B8000H~BFFFFH共32KB的空间(DOS的显存),为80x25彩色字符模式的显示缓冲区。向这个地址空间写入数据,写入的内容将立即出现在显示器上。
在80x25彩色字符模式下,显示器可以显示25行,每行80个字符,每个字符可以用256种属性(背景色、前景色、闪烁、高亮等组合信息)。
一个字符在显示缓冲区占两个字节,分别存放字符的ASCII码和属性。80x25模式下,一屏的内容在显示缓冲区共占4000个字节。
显示缓冲区分为8页,每页4KB,显示器可以显示任意一页的内容。一般情况下,显示第0页的内容。也就是说通常情况下,B8000H~B8F9FH中的4000个字节的内容将出现在显示器上。
在一页的显示缓冲区中
偏移00009F对应显示器上的第1行(80个字符占160个字节,09F=159,0159共160个字节);
偏移0A013F对应显示器上的第2行;1DF对应显示器上的第3行;
偏移140
…
偏移F00~F9F对应显示器上的第25行。
在一列的显示缓冲区中
0001单元对应显示器上的第1列;03单元对应显示器上的第2列;
02
0405单元对应显示器上的第3列;9F单元对应显示器上的第80列。
…
9E
在显示缓冲区中,偶地址存放字符,奇地址存放字符的颜色属性。
属性字节的格式:
| 二进制位置 | 含义 |
|---|---|
| 7 | BL闪烁 |
| 6 | R背景 |
| 5 | G背景 |
| 4 | B背景 |
| 3 | I高亮 |
| 2 | R前景 |
| 1 | G前景 |
| 0 | B前景 |
例如,显示器的0行0列显示红底高亮闪烁绿色的字符串’ABCDEF’,红底高亮闪烁绿色的属性字节为,
11001010B = CAH
代码如下:
|
结果如图:
