Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2076473
  • 博文数量: 519
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 3985
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-29 14:05
个人简介

只问耕耘

文章分类

全部博文(519)

文章存档

2016年(1)

2013年(5)

2011年(46)

2010年(220)

2009年(51)

2008年(39)

2007年(141)

2006年(16)

我的朋友

分类:

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:\>

阅读(2123) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~