我正在研究一个简单操作系统的源代码(简单但真实的,实际上可以在x86计算机上运行),而且我不确定在控制台监视器上发送和显示字符的过程。 / p>
在发送字符的例程的源代码中,我看到一些内联汇编执行I / O操作(inb / outb)。但是,如何将字符(ASCII值)转换为位图(颜色值数组,例如黑白像素,实际上显示监视器屏幕上的字符)。我无法在OS源代码中找到从字符到位图的任何形式的映射。将ascii值转换为像素数组的过程是否在OS中不会发生?是否有硬件设备,如VGA芯片,负责这个?哪一个?
答案 0 :(得分:1)
如果使用图形模式,系统(或BIOS)必须将其转换为像素并将其发送到图形适配器(主要是通过将像素复制到映射的图形内存)。 如果使用文本模式,则将字符和颜色属性发送到图形适配器(主要是通过将它们复制到映射的图形内存)。
在16位实模式下,图形存储器映射到段a000h,文本存储器映射到b000h或b800h。 在32位保护模式下,图形存储器从地址a0000h开始映射,文本存储器从地址b8000h开始映射