进入32位模式并导入C语言

       显卡内存和一般的内存一样可以存储数据,它的每个地址都对应着画面上的像素,可以利用这一机制在画面上绘制出五彩缤纷的图案。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,运行结果同样是黑屏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值