只问耕耘
分类:
2010-03-18 14:52:49
本文演示如何用debug命令直接修改彩色显示器的显示缓冲区,显示彩色字符。本文输出背景属性为0000,前景属性为0010,十六进制02h, 即黑底绿字,相关命令mov al,02
说明:
B800:0000—— 2000H字 彩色显示器的显示缓冲区, 每个字中的低字节是字符的ASCII码,高字节是其属性.
背景属性:高四位 7 6 5 4
前景属性:低四位 3 2 1 0
7 6 5 4 3 2 1 0
Blink Red Green Blue Bright Red Green Blue
以下是1.txt内容:
a100
mov ax,b800
mov es,ax
mov si,122
mov di,0f00
mov cx,22
mov al,[si]
es:
mov [di],al
inc si
inc di
mov al,02
es:
mov [di],al
inc di
loop 10e
mov ax,4c00
int 21
db 'Hello World from The Video Memory!'
g
输出结果:
E:\>debug < 1.txt
-a100
0B24:0100 mov ax,b800
0B24:0103 mov es,ax
0B24:0105 mov si,122
0B24:0108 mov di,0f00
0B24:010B mov cx,22
0B24:010E mov al,[si]
0B24:0110 es:
0B24:0111 mov [di],al
0B24:0113 inc si
0B24:0114 inc di
0B24:0115 mov al,02
0B24:0117 es:
0B24:0118 mov [di],al
0B24:011A inc di
0B24:011B loop 10e
0B24:011D mov ax,4c00
0B24:0120 int 21
0B24:0122 db 'Hello World from The Video Memory!'
0B24:0144
-g
Hello World from The Video Memory!
E:\>