《30天⾃制操作系统》笔记(01)——hello bitzhuwei's OS!
最初的OS代码 1 ; hello-os 2 ; TAB=4
3
4 ORG 0x7c00 ; 指明程序的装载地址 5
6 ; 以下这段是标准FAT12格式软盘专⽤的代码 7
8 JMP entry 9 DB 0x90
10 DB \"HELLOIPL\" ; freeparam 启动区的名称可以是任意的字符串(8字节)11 DW 512 ; 每个扇区(sector)的⼤⼩(必须为512字节)12 DB 1 ; 簇(cluster)的⼤⼩(必须为1个扇区)13 DW 1 ; FAT的起始位置(⼀般从第⼀个扇区开始)14 DB 2 ; FAT的个数(必须为2)
15 DW 224 ; 根⽬录的⼤⼩(⼀般设成224项)16 DW 2880 ; 该磁盘的⼤⼩(必须是2880扇区)17 DB 0xf0 ; 磁盘的种类(必须是0xf0)18 DW 9 ; FAT的长度(必须是9扇区)
19 DW 18 ; 1个磁道(track)有⼏个扇区(必须是18)20 DW 2 ; 磁头数(必须是2)21 DD 0 ; 不使⽤分区,必须是022 DD 2880 ; 重写⼀次磁盘⼤⼩
23 DB 0,0,0x29 ; 意义不明,固定24 DD 0xffffffff ; (可能是)卷标号码
25 DB \"HELLO-OS \" ; freeparam 磁盘的名称(11字节)26 DB \"FAT12 \" ; 磁盘格式名称(8字节)27 RESB 18 ; 先空出18字节28
29 ; 程序核⼼30
31 entry:
32 MOV AX,0 ; 初始化寄存器33 MOV SS,AX34 MOV SP,0x7c0035 MOV DS,AX36 MOV ES,AX37
38 MOV SI,msg39 putloop:
40 MOV AL,[SI]
41 ADD SI,1 ; 给SI加142 CMP AL,043 JE fin
44 MOV AH,0x0e ; 显⽰⼀个⽂字45 MOV BX,15 ; 指定字符颜⾊46 INT 0x10 ; 调⽤显卡BIOS47 JMP putloop48 fin:
49 HLT ; 让CPU停⽌;等待指令50 JMP fin ; ⽆限循环51
52 msg: ; 信息显⽰部分
53 DB 0x0a, 0x0a ; 换⾏2次
DB \"hello, bitzhuwei's OS!\" ; freeparam55 DB 0x0a ; 换⾏56 DB 057
58 RESB 0x7dfe-$ ; 填写0x00,直到0x001fe59
60 DB 0x55, 0xaa61
62 ; 以下是启动区以外部分的输出63
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0065 RESB 4600
66 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0067 RESB 146943202helloos.nas
虚拟机加载helloos.img下载(),解压。
将\"OS\\projects\\01_day\\helloos1\"⽂件夹复制到\"OS\olset\"⽂件夹下,如下图所⽰。
进⼊\"OS\olset\\helloos1\"⽂件夹,删除\"helloos.nas\"⽂件,然后将上表中的\"02helloos.nas\"内容保存到此处,并重命名为\"helloos.nas\"。(即更新helloos.nas⽂件的内容)
双击\"!cons_9x.bat\"(若后续操作失败,则双击\"!cons_nt.bat\"重试),在弹出的命令⾏窗⼝中输⼊\"asm\",回车;然后输如\"run\",回车。之后你就可以看到QEMU这个虚拟机加载启动了(以helloos.nas为源代码⽣成的)helloos.img这个及其简单的操作系统,如下图所⽰。
真机加载helloos.img刚刚是⽤虚拟机启动的helloos.img这个操作系统,下⾯介绍如何⽤物理机器加载启动之。
制作启动盘
⾸先,准备⼀个U盘,保证⾥⾯的数据你都不需要了。
然后,下载⼀个UltraISO软件。运⾏之,打开刚刚⽣成的helloos.img,如下图所⽰。然后,使⽤菜单项\"启动-写⼊硬盘映像…\",如下图所⽰。
在弹出的窗⼝中,确定\"硬盘驱动器\"中选中的是你准备好的U盘,然后点击\"写⼊\"按钮,稍候即可,如下图所⽰。
真机启动
刻录成功了,就是说启动盘做好了。下⾯就重启电脑,然后选择从U盘启动,你就可以看到真机启动helloos.img了。除了⼀些细节不同外,和虚拟机加载helloos.img的情况基本⼀致。
总结以后继续编写OS⽤虚拟机测试⽐较⽅便。操作系统的hello world就算完成了。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务