有了C语言这一利器后,不多多拿来用,那就太对不起前面的一系列努力了。那么怎么表现C语言的强大功能呢,如果还只是一味的在界面上输出几行字符,那太没意思,考虑到,我们的目标是做出像windows那样具备舒心的图像用户界面那样的系统,所以在这一节,我们由字符模式切换入画面模式,初步体验下,那些绚丽多彩的图像界面是如何发展而成的。

要想由字符模式转入图形模式,我们需要操作硬件,特别是向显卡发送命令,让其进入图形显示模式,就如同前面我们所做的,要操作硬件,一般需要使用BIOS调用,以下几行就是打开VGA显卡色彩功能的代码:

mov al, 0x13h

mov ah, 0x00

int 0x10

其中al 的值决定了要设置显卡的色彩模式,下面是一些常用的模式设置:

0x03, 16色字符模式

0x12, VGA图形模式, 640 * 480 * 4位彩色模式,独特的4面存储模式

0x13, VGA图形模式, 320 * 200 * 8位彩色模式,调色板模式

0x6a, 扩展VGA图形模式, 800 * 600 * 4彩色模式

我们采用的是0x13模式,其中3202008 中,最后的数值8表示的是色彩值得位数,也就是我们可以用8位数值表示色彩,总共可以显示256种色彩。

系统显存的地址是0x000a0000,当我们执行上面几句代码后,望显存地址写入数据,那么屏幕就会出现相应的变化了。

我们先看看内核的汇编代码部分(kernel.asm):

%include

linux下c语言写界面,利用C语言绘制操作系统图像界面相关推荐

  1. 利用C语言绘制操作系统图像界面

    阅读博客的朋友可以参看视频: Linux kernel Hacker, 从零构建自己的内核 有了C语言这一利器后,不多多拿来用,那就太对不起前面的一系列努力了.那么怎么表现C语言的强大功能呢,如果还只 ...

  2. linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手

    如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...

  3. linux6.8设置中文界面,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  4. kodi linux版本,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  5. linux下kodi安装目录,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  6. linux kodi 设置中文,Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面

    原标题:Linux下安装多媒体中心 Kodi 18.8 新版本并设置中文界面 来自:https://www.linuxmi.com/linux-kodi-18-8.html Kodi团队刚刚发布了XB ...

  7. c语言编译器_学C语言写自己的K语言:编译器词法分析。

    词法分析(lexical analysis),是计算机科学中将字符序列转换为记录(Token)序列化的过程.词法分析一般分手动与自动,自动是基于lex,flex词法分析器使用正则式来配置,我们这里将学 ...

  8. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  9. python使用爬虫写一个自己的翻译器(带图像界面)

    python使用爬虫写一个自己的翻译器(带图像界面)   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客,B站昵称为 ...

最新文章

  1. CSDN 星城大巡礼,长沙“科技之星”年度企业评选正式开启
  2. 苹果向求职者抛出的8大难题
  3. R语言包_reshape2
  4. java中HashMap在多线程环境下引起CPU100%的问题解决
  5. 【redis】缓存击穿、雪崩、穿透
  6. ios15之取消UITabbleViewCell的高亮效果
  7. 恢复Ext3下被删除的文件(转)
  8. php stripslashes 去除反斜线
  9. oracle:时间数据的处理
  10. PHP初级练习实战之公司留言板(原生)
  11. 使用VsCode搭建Vue开发环境
  12. java17的下载与安装
  13. 基于Python的个人博客系统设计与实现 报告+项目源码
  14. 在该系统上全局禁用了虚拟打印功能,不会为该虚拟机启用此功能。虚拟设备“serial0“”将开始断开连接。
  15. 机房温度过高应这样预防
  16. iPython清屏命令
  17. Word段落前面有黑点 Word段落黑点怎么去掉
  18. AngularJs 最新验证手机号码,成功测试通过
  19. HDU, 3579 Hello Kiki
  20. 真实案例解析OO理论与实践

热门文章

  1. vue项目PC兼容移动端
  2. Win32_SDK_非模态对话框(非模态对话框窗口的销毁,模态与非模态对比,计算器项目练习)
  3. itx机箱尺寸_【从零开始的itx装机指南】机箱篇
  4. 小小的总结一下数据采集
  5. 商标交易中商标性使用方法
  6. M301H_JL九联-Hi3798MV300-当贝纯净桌面-卡刷固件包
  7. 计算机数据应用与维修,计算机检测维修与数据恢复技术及应用(原稿)
  8. 行为日志分析思路与想法
  9. 一直以为对性能调优十分了解,直到阿里大牛到来,才知道菜是原罪
  10. c++ stl stack(FILO,容器配接器)