80x25彩色字符模式
80x25彩色字符模式下显示缓冲区的结构:
在内存地址空间中,B8000H~BFFFFH共32KB的空间,为80x25彩色字符模式的显示缓冲区。往这个地址空间中写入数据,写入的内容会立即出现在显示器上
在80x25彩色字符模式下,显示器每行可以显示80个字符,可以显示25行。所以称为80x25,彩色字符模式是因每个字符可以有256种颜色属性(背景色,前景色,闪烁,高亮等)
这样一个字符需要占用一个字节的数据+一个字节的颜色属性(256种即8位,即一个字节),低位字节存储字符的ASCII码,高位字节存储字符的颜色属性。
一个字符需要占2字节内存,一屏幕共80x25=2000个字符,占用4000字节, 所以B8000H~BFFFFH共32KB的空间共可以存放8页的彩色字符数据。
一般情况下显示第一页的字符数据,即B8000H~B8F9FH中的4000个字节存放的彩色字符将显示在屏幕上。
一行共80个彩色字符,即160个字节:
B8000H~B809FH 对应显示器第1行
B80A0H~B813FH 对应显示器第2行
B8140H~B81DFH 对应显示器第3行
。。。
B8F00H~B8F9FH 对应显示器第25行
一个彩色字符占2字节,一行80个彩色字符占160个字节即10H:
00~01 对应显示器上第1列
02~03 对应显示器上第2列
04~05 对应显示器上第3列
.。。。
9E~9F 对应显示器上第80列
颜色属性的格式:
颜色属性占1个字节即8位:
7 6 5 4 3 2 1 0
含义 BL R G B I R G B
闪烁 (456- 背景) 高亮 (012-前景)
R-红 G-绿 B-蓝
可以按位设置不同的属性字节,配出各种不同的前景色和背景色:
红底绿字 01000010B,16进制显示为42H
(第7位闪烁,不需要所以为0,第6位背景红色需要设为1,第5位不需要0.。。。。)
例: 在显示器0行0列显示红底高亮闪烁绿色的字符串’ABCDEF':
①按位设置颜色属性为: 11001010B,16进制显示为CAH
②ABCDEF对应的ASCII码分别为 41H,42H,43H,44H,45H,46H
③显示器的0行0列对应的内存地址为 B8000H,6个彩色字符占用12个字节,即应写在B8000~B800BH内存空间中
显示缓冲区中的内容为:
00 01 02 03 04 05 06 07 08 09 0A 0B ...
B800:0000 41 CA 42 CA 43 CA 44 CA 45 CA 46 CA ...
(闪烁效果需要在全屏DOS方式下才能看到)
80x25彩色字符模式的更多相关文章
- [SAP ABAP开发技术总结]以二进制、字符模式下载文件
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Debian字符模式下修改显示分辨率
Debian字符模式下修改显示分辨率 一.准备工具 a) Git apt-get install git 二.获取屏幕修改辅助软件 a) 创建临时文件 mkdir /tmp/screenModify ...
- SwingBench 字符模式压测最佳实践
之前写过<使用SwingBench 对Oracle RAC DB性能 压力测试>,使用的是最基础直观的图形模式,已经可以满足大多数需求. 但是在有些场景下,图形模式可能本身消耗资源过大,尤 ...
- [笔记]Go语言在Linux环境下输出彩色字符
Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例: fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, & ...
- Linux字符模式下如何设置/删除环境变量
Linux字符模式下设置/删除环境变量方法: bash下 设置:export 变量名=变量值 删除:unset 变量名 csh下 设置:setenv 变量名 变量值 删除:unsetenv 变量名 h ...
- systemctl服务------字符和图像界面切换systemctl set-default multi-user.target systemctl isolate multi-user.target #当前立即进入字符模式 [root@room4pc09 桌面]# systemctl isolate graphical.target #当前立即进入图形模式
查看服务运行状态 [root@room4pc09 桌面]# systemctl status crond #查看服务运行状态 ● crond.service - Command Scheduler L ...
- 字符模式console usb串口安装centos
黄色部分是使用console口安装centos需要使用text模式,可以参考前文,同时镜像路径也是需要指定的,来自/dev/sda4 U盘 setparams 'Install CentOS 7' l ...
- python识别图片生成字符模式
此python文件来自D7哥, 放在这里备份. 用法 python3 PIL\&argparse.py 1.jpg -o test.txt --width 300 --height 300 p ...
- linux用字符模式修改权限
-rw-r--r-- tt.htm 从第二个字符起rw是说用户apple有读.写权,没有运行权,接着的r--表示用户组users只有读权限,没有运行权,最后的r--指其他人 (others)只有读权 ...
随机推荐
- 团体程序设计天梯赛L3-010 是否完全二叉搜索树 2017-03-24 16:12 29人阅读 评论(0) 收藏
L3-010. 是否完全二叉搜索树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 将一系列给定数字顺序插入一个初始为空的二叉搜 ...
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”.为了提高热点代码的 ...
- kafka搜索介绍
kafka详解 https://blog.csdn.net/liubenlong007/article/details/55211196##1 1.2 Kafka诞生 Kafka由 linked- ...
- 配置hive环境以及mysql配置后必须做
1.先在主节点上安装阿里云配置(看别的文档) 2.把需要的两个jar包加入进来(放到hadoop用户目录下面即可即/home/hadoop/) mysql-connector-java-5.1.47. ...
- CentOS7安装confluenceWIKI并破解汉化
关闭防火墙和selinux 开始搭建Wiki前,需要下载一些软件包. wget https://www.atlassian.com/software/confluence/downloads/bi ...
- Linq实战 之 DataSet操作详解
Linq实战 之 DataSet操作详解 一:linq to Ado.Net 1. linq为什么要扩展ado.net,原因在于给既有代码增加福利.FCL中在ado.net上扩展了一些方法. 简单一 ...
- Android-广播发送与接收(Java代码中订阅)
Android四大组件之一广播,使用的也比较多,广播可大致分为两种,一种是Android系统区域的广播,是由系统指令发出,例如:点亮屏幕广播,开机过程中的一些广播 省略…, 然而还有一种广播就是我们自 ...
- 【python】@property装饰器
Python内置的@property装饰器可以把类的方法伪装成属性调用的方式.也就是本来是Foo.func()的调用方法,变成Foo.func的方式.在很多场合下,这是一种非常有用的机制. class ...
- 使用st link v2向stm32下载和调试程序
st官网 正版ST-link/V2引脚定义和注意事项 分为ST-LINK/V2和ST-LINK/V2-ISOL两种型号 是STM8和STM32微控制器(MCU)系列的在线调试器和编程器(还是下载器.仿 ...
- hihocoder1580 Matrix
题目链接:(vjudge)戳我 从今天开始不咕咕地填坑啦 考虑一般的求最大子矩阵和...我们一般都是DP,或者直接上悬线法递推. 下面附一个DP的代码: #include<iostream> ...