操作系统实验

编程入门 行业动态 更新时间:2024-10-24 17:25:01

<a href=https://www.elefans.com/category/jswz/34/1769955.html style=操作系统实验"/>

操作系统实验

一、实验主要内容

1、内容1:分割源文件
经过前几次的程序编写现在我们的bookpack.c程序已经很长了,所以我们需要就将其进行切割成几个部分以便于后续代码管理,分别是graphic.c、dsctbl.c和bootpack.c三个部分。这三个部分依次是关于画图的处理、以及关于GDT、IDT的处理以及其他部分的处理。
分割源文件的优点和缺点如下:

分割之后如果graphic.c也想使用naskfunc.nas函数的话,就必须加上void io_out8(int port,int data)函数声明。因为分割之后,编译时程序是不知道有bootpack.c的存在的,虽然这些都已经写在了bootpack.c函数中了。在修改了bootpack.c文件后,也要对Makefile文件进行相应的修改,相应的流程为:

其中makefile文件的内容与前几天的编译方法一致,增加了如下部分:

2、内容2:整理Makefile
虽然之前bootpack.c文件已经分割好了,变得简洁了许多,但是相比较而言,Makefile文件却变得十分繁琐亢长。因为有些指令都做的是相同的事情,但如果每次添加源文件都需要增加很多类似的编译规则就会变得很麻烦,因此需要利用一般规则,将雷同的独立的文件生成规则,归纳为一般规则。

将以上6个独立的文件生成规则,归纳为两个一般的规则。

因为Make.exe首先会寻找普通的生成规则,如果没找到,那么就尝试使用一般规则。即使一般规则和普通的生成规则发生冲突,也不会有什么问题。因为这时候,普通生成规则的优先级是要大于一般规则的优先级的。
3、内容3:整理头文件
由于各个源文件都需要重复声明类似于void io_out8这种函数,导致我们的总代码行数增加,如果想要更加精简的话,那么首先就是要将重复的部分删去。然后可以将之前大部分的重复部分全部归纳到bootpack.h文件。

.h文件大概如图所示。在这个文件中,不仅罗列了函数的定义,还在注释中写明了函数的定义是在哪一个源文件中,这样的话,如果想要修改函数定义的话,只需要看一下该文件就知道函数文件在哪个源文件中。
想要在编译的时候,每个源文件都能够使用相应的函数和变量,只需要在开头加上# include “bootpack.h"即可。当编译器读到这一行时,,就会将这一行替换成所指定文件的内容,然后再进行编译。这样bootpack.h的所有内容就会间接的写到graphic.c中。同理可以在其他文件中增加上这一行。
4、内容4:意犹未尽

更多推荐

操作系统实验

本文发布于:2024-02-26 23:06:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1704311.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:操作系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!