30天自制操作系统——第1天

跟着书上的过程敲了一遍,本来以为没有软盘会是一个非常大的阻碍,在买书之前也看过有人评论说,“还在用软盘,早就过时了”,之类的。不过没让我失望,作者提供了不使用软盘的办法。

这个二进制编辑器是在百度云上找到的,跟书里用到的是一样的。
然后经过一丢丢的努力
在这里插入图片描述
有了第一个成果,emmm,不错,有东西就行,有反馈就容易坚持
之后就开始用汇编语言了

;hello-os
;TAB=4

;以下这段是标准FAT12格式软盘专用的代码
	DB	0xeb, 0x4e, 0x90
	DB	"HELLOIPL"		;启动区的名称可以是任意的字符串(8字节)
	DW	512				;每个扇区的大小(必须为512字节)
	DB	1				;簇的大小(必须为一个扇区)
	DW	1				;FAT的起始位置(一般从第一个扇区开始)
	DB	2				;FAT的个数(必须为2)
	DW	224				;根目录的大小(一般设置成224项)
	DW  2880			;该磁盘的大小(必须是2880扇区)
	DB	0xf0			;磁盘的种类(必须是0xf0)
	DW	9				;FAT的长度(必须是9扇区)
	DW	18				;一个磁道有几个扇区(必须是18)
	DW  2				;磁头数(必须是2)
	DD	0				;不使用分区,必须是0
	DD	2880			;重写一次磁盘大小
	DB	0,0,0x29		;意义不明,固定
	DD	0xffffffff		;(可能是)卷标号码
	DB	"HELLO-OS   "	;磁盘的名称(11字节)
	DB	"FAT12   "		;磁盘格式名称(8字节)
	RESB  18			;先空出18字节
	
;程序主体

	DB  0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
	DB	0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
	DB	0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
	DB	0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
	DB	0xee, 0xf4, 0xeb, 0xfd
	
;信息显示部分
	DB  0x0a, 0x0a		;2个换行
	DB	"I love Xue Chen"	
	DB	0x0a			;换行
	DB	0
	
	RESB	0x1fe-$		;填写0x00,直到0x01fe
	
	DB	0x55, 0xaa

;一下是程序以外部分的输出

	DB	0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
	RESB	4600
	DB	0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
	RESB	1469432

不是很懂,emmm。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值