
操作系统是怎样炼成的!
文章平均质量分 80
x12143
个人爱好
展开
-
系统引导代码
;##########################################################################; 这是一段引导程序,本程序是将加载程序加载至 9000:0100 处,; 并将控制权转移到加载程序。; 本代码使用 NASM 进行编译。;###############################################原创 2010-03-23 14:00:00 · 2139 阅读 · 2 评论 -
第一章 引导程序 第一天 耐心的准备
第一章 引导程序我们马上进入正题!开机!启动!等等,我们的操作系统是怎么开始运行的呢?这个问题一定是你马上就想知道的吧!第一天 耐心的准备所有计算机开机后,即打开电源,首先是BIOS的自检等等,确保每个必要的部件都能正常工作,这个过程我就不再详述了,反正与我们的工作没多大关系。BIOS在找到你的计算机可以进行启动的管道时,就将控制权转移。例如:我们现在大多数电脑都有这几种常原创 2010-04-08 08:25:00 · 874 阅读 · 0 评论 -
第二天 开始执行我们的程序
第二天 开始执行我们的程序 我们先看一段代码。 ; 文件名:boot_A.asm ;########################################################################## org 07c00h ; Boot 状态, Bios 将把 Boot Sector 加载到 0:7C00 处并开始执行 [bits 16] ; 定义以下代码原创 2010-04-08 08:34:00 · 809 阅读 · 0 评论 -
第四天 找到加载文件,引导成功
第一章 引导程序第四天 找到加载文件,引导成功今天再讲一个子程序,这个程序的功能为:给定一个簇号,查找在FAT区该簇号对应的值,即下一簇号。在我们读取文件数据时要经常用到,所以把它做为一个子程序。这个子程序的流程如下:1、 准备一块内存,用于临时存放读取FAT区的数据,不小于1024 byte;2、 计算簇号对应FAT区开始处的总偏移量,同时保存簇号奇偶标志,以备后面取原创 2010-04-12 13:42:00 · 1054 阅读 · 3 评论 -
第三天 能读取软盘了!
第三天 能读取软盘了!先介绍一个BOIS磁盘服务中断:INT 13H。因为我们只需要读软盘数据,所以只重点介绍2号读扇区子功能。参数:AH 功能号=02HAL 需要读取的扇区数CH 起始磁道数CL 起始扇区数DH 盘面号DL 驱动器号ES:BX 目标地址,读取出数据保存到内存的地址。返回值:当CF=0时,操作成功。AH=0,AL为已读取的扇区数。操作失败时A原创 2010-04-08 17:21:00 · 1070 阅读 · 0 评论 -
关于后续...
Boot.bin引导扇区代码生成后,应该就是加载模式的代码了,加载模块主要功能是加载一些必要的数据,如:中英文字体字库、内核代码等等,到底是在保护模式下进行加载还是在加载后再进入保护模式,应该讲都是可以的,如果之前加载数据可以用bios中断来实现,如果进入保护模式后再加载,那么要完善保护模式下的时钟中断与软盘中断、软盘驱动后才能实现,这样的话,加载代码与内核代码就重复了,或者是被分割。进入保护原创 2010-05-28 17:27:00 · 443 阅读 · 1 评论