显卡内存和一般的内存一样可以存储数据,它的每个地址都对应着画面上的像素,可以利用这一机制在画面上绘制出五彩缤纷的图案。VRAM 分布在内存分布图上好几个不同的地方。这是因为不同的画面模式的像素数也不一样,不同的画面模式可以使用的内存也不一样。
32位模式下可使用的内存容量远远大于1MB。CPU的自我保护功能(识别出可疑机器语言并进行屏蔽)在16位下不能用,但在32位下能用。
通过BIOS 获取键盘状态并保存状态信息:
- 开始导入C语言
这一部分在32位模式下,程序的前半部分使用汇编语言编写,后半部分使用C语言编写,使用汇编程序调用C语言程序bootpack.c。
ccl是C语言编译器,可以将C源程序编译成汇编语言源程序,由作者根据gcc改造而来,而gcc是以gas汇编语言为基础,输出的是gas汇编语言源程序。
Gas2nask 将gas汇编程序转化为nas源程序,之后使用nask.exe 将bootpack.nas生成obj文件,obj2bim将目标文件和别的目标文件相连接,并存入一些交换信息,bim是作者设计的一种文件格式,是一个二进制镜像文件。Bim2hrb针对不同的操作系统进行必要的加工,比如加上识别用的文件头或者压缩。
- 实现HLT
使用汇编语言写一个函数,函数名io-hlt,将输出格式设置为WCOFF模式,以便与bootpack.obj链接。
之后使用bootpack.c调用io_hlt,运行结果同样是黑屏。