0

我正在研究一个简单操作系统的源代码(简单但真实,可以在 x86 计算机上实际运行的操作系统),我不确定字符发送到控制台监视器并显示在控制台监视器上的过程。

在发送字符的例程的源代码中,我看到一些内联程序集执行 I/O 操作(inb/outb)。但是,字符(ASCII 值)如何转换为位图(颜色值数组,例如黑白像素,实际上在监视器屏幕上显示字符)。我在操作系统源代码中找不到从字符到位图的任何形式的映射。在操作系统中不会发生将 ascii 值转换为像素数组的过程吗?是否有硬件设备(例如 VGA 芯片)负责此操作?哪一个?

4

1 回答 1

1

如果使用图形模式,系统(或 bios)必须将其转换为像素并将其发送到图形适配器(主要通过将像素复制到映射的图形内存)。如果使用文本模式,则将字符和颜色属性发送到图形适配器(主要是通过将它们复制到映射的图形内存中)。

在 16 位实模式下,图形内存映射到 a000h 段,而文本内存映射到 b000h 或 b800h。在 32 位保护模式下,图形内存从地址 a0000h 开始映射,文本内存从地址 b8000h 开始映射

于 2015-03-08T16:22:38.353 回答