码迷,mamicode.com
首页 > 其他好文 > 详细

《操作系统真象还原》ELF文件

时间:2020-01-16 23:52:06      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:指令   组成   控制   cpu   sgd   操作   elf文件   内容   flag   

  下面是第五章部分内容的收获。

用C语言编写内核

  一直以来我们都是用汇编语言编写程序的,但接下来我们或许很少用汇编语言编写代码了,大多数都是使用C语言。为什么要这样呢?书上的解释我看的不是很懂,只能结合书上谈谈我的见解,个人觉得有两个原因:

  汇编语言编写代码较高级语言来说还是麻烦很多的,毕竟大家试试就知道了,一句C语言代码,可能要几句汇编语言代码才能与之对应。那有人说CPU能执行C语言代码吗,当然不,CPU最终执行的是机器指令,也就是由0和1组成的机器指令。所以肯定需要一个东西将C语言转换为机器指令,这个东西就是编译器,我们平常用的GCC编译器就是用做这个用途。所以有了编译器,我们编写代码就方便了很多,简简单单几句C语言代码就能完成N句机器指令完成的工作,因此为何不用C语言呢。

  除了编写难度的问题,另一个点就是像执行lgdt,sgdt等一些特权指令,或者对eflag或者crX控制寄存器等具体某个寄存器进行读写,一般只能通过汇编语言才能做到,因为C语言并不会直接提供对偏底层数据(寄存器)的操作。而接下来的大多功能都不需要使用上面提到的功能,所以单靠C语言和编译器就能达到我们的需求了。

编写简单的内核

  占个位,明天再写

《操作系统真象还原》ELF文件

标签:指令   组成   控制   cpu   sgd   操作   elf文件   内容   flag   

原文地址:https://www.cnblogs.com/thougr/p/12203650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!