《30天自制操作系统》学习笔记_day03

前言:第三天的难度还是蛮大的,看了一上午理解了大概,还是好好记录,捋顺一下。

1.实现Ipl的程序装载

首先实现用ipl指示将程序(软盘内容,操作系统)装载到内存特定位置
在03_day的harrib00a中的ipl.nas添加内容的部分
在这里插入图片描述
可以看到用到了 BIOS INT 0x13中断,0x13号中断主要用来磁盘的读写,AH=0x02说明用来读盘。
具体软盘的结构可以查询学习。
AH=处理对象的扇区数
CH=柱面号
CL=扇区号
DH=磁头号
DL=驱动器号
ES:BX 这个很重要,读取到的程序的装载地址,在这里是0x8200,所以软盘中的数据会被装载到0x8200

从这里可以初步理解启动区的作用,启动区指示了读取软盘哪一部分的数据,并将数据装载到内存的什么位置。到此完成了真正IPL的制作。

在这里增加了一个试错功能,主要目的考虑到读取软盘数据时,可能会发生不能读取数据的情况,这个时候我们再试几次。得到harib00b中的ipl
在这里插入图片描述
其实主要是增加了一个判断,每尝试一次si会增加1,当si大于5也就是我们尝试了5次都失败以后才会跳到输出error信息。

2 完善IPL,读取软盘多个扇区和多个柱面。

在1中还是值读取了第2扇区,第1扇区是IPL。
第二步我们希望读取更多的软盘内容。

2.1读取18个扇区
从harib00c中的ipl我们可以看到

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值