Win知识 - 程序是怎样跑起来的——文字及图片的显示机制

简介: Win知识 - 程序是怎样跑起来的——文字及图片的显示机制

让我们一起来看一下显示器显示文字及图形的机制。如果用一句话来简单地概括该机制,那就是显示器中显示的信息一直存储在某内存中。该内存称为VRAM(Video RAM)。在程序中,只要往VRAM中写入数据,该数据就会在显示器中显示出来。实现该功能的程序,是由操作系统或BIOS提供,并借助中断来进行处理的。


在MS-DOS时代,对大部分计算机来说,VRAM都是主内存的一部分。例如PC-9801这种机型的计算机,主内存地址A0000地址以后是VRAM区域。如果用程序往VRAM内存地址中写入数据,文字及图形就可以显示出来。不过,文字和图形的颜色最多只能有16种。这是因为VRAM的内存空间太小了(图11-11(a))。


image.png

image.png


图11-11 VRAM中写入的数据被显示在显示器上


在现在的计算机中,显卡等专用硬件中一般都配置有与主内存相独立的VRAM和GPU(Graphics Processing Unit,图形处理器,也称为图形芯片)。这是因为,对经常需要描绘图形的Windows来说,数百兆的VRAM是必需的。而为了提升图形的描绘速度,有时还需要专用的图形处理器(图11-11(b))。但不管怎样,内存VRAM中存储的数据就是显示器上显示的信息,这一机制是不变的。


用软件来控制硬件听起来好像很难,但实际上只是利用输入输出指令同外围设备进行输入输出的处理而已。中断处理是根据需要来使用的选项功能,DMA则直接交给对应的外围设备即可。由此可见,对程序员来说,其实并不困难。


虽然计算机领域的新技术在不断涌现,但计算机能处理的事情,始终只是对输入的数据进行运算,并把结果输出,这一点是不会发生任何变化的。不管程序内容是什么,最终都是数据的输入输出和运算。本章介绍的开启和停止蜂鸣器的程序,就是一个很好的例子。而无论是计算机还是程序,其实都很简单。


目录
相关文章
|
4月前
|
算法 定位技术 C语言
【python实操】软件安装进展提示进度条如何实现的?如何设置窗体拉伸?如何获取输入框内容?
【python实操】软件安装进展提示进度条如何实现的?如何设置窗体拉伸?如何获取输入框内容?
48 0
|
2月前
火山中文编程 -- 载入窗口
火山中文编程 -- 载入窗口
12 0
|
2月前
|
Linux 索引
Linux中使用selenium截图的文字变为方框的解决方案
Linux中使用selenium截图的文字变为方框的解决方案
37 1
|
4月前
微信小游戏制作工具中文字设置的粗体不显示,怎么解决?
微信小游戏制作工具中文字设置的粗体不显示,怎么解决?
37 1
|
8月前
|
Web App开发 文字识别 JavaScript
强大的实况文本功能,直接复制图片上的文字(macOS)
用OCR软件,是很多人的选择。我曾经也给大家推荐过“天若OCR”软件,还有朋友在用吗?
192 0
|
前端开发
前端hook项目pc总结笔记-截屏程序出现放大或者缩小
前端hook项目pc总结笔记-截屏程序出现放大或者缩小
60 0
前端hook项目pc总结笔记-截屏程序出现放大或者缩小
运行主程序后无法显示图形化界面的原因及其解决方法(拼图小游戏)
在定义完GameJFrame、LoginJFrame和RegisterJFrame方法后,如果要调用该方法内的成员变量,要使用this关键字,而不是像在测试类中新建对象后直接调用新的对象,这样的话由于我们调用的方法是不含参数的,如果new了一个对象会被放到堆内存中,数据也在堆内存中,所以无法访问到
178 0
运行主程序后无法显示图形化界面的原因及其解决方法(拼图小游戏)
PS的标题栏以选项卡方式打开名字太长,导致切换标题的时候不方便,如何缩短标题栏?
Q:如图:PS的标题栏以选项卡方式打开名字太长,导致切换标题的时候不方便,如何缩短标题栏?
348 0
PS的标题栏以选项卡方式打开名字太长,导致切换标题的时候不方便,如何缩短标题栏?
关于 qml开发中使用Image元素切换图片闪黑屏 的解决方法
关于 qml开发中使用Image元素切换图片闪黑屏 的解决方法
关于 qml开发中使用Image元素切换图片闪黑屏 的解决方法
Mac系统下的改变终端文件定位(带图讲解)
Mac系统下的改变终端文件定位(带图讲解)
229 0
Mac系统下的改变终端文件定位(带图讲解)