自制操作系统(二)

    现在呢,大致流程写在下面:
    首先,编写汇编代码,代码文件名为MyOS.asm,所有代码大致如下:

; 下面是标准FAT12格式软盘专用代码
DB 0xeb, 0x4e, 0x90
DB "MyOS_IPL" ; 启动区名称,必须8字节
DW 512 ; 每个扇区必须为512字节
DB 1 ; 蔟必须为1个扇区
DW 1 ; FAT的起始位置必须为1
DB 2; FAT的个数必须为2
DW 224 ; 根目录大小必须为224
DW 2880; 该磁盘的大小必须为2880扇区
DB 0xf0 ; 磁盘的种类,必须是0xf0
DW 9 ; FAT的长度必须为9
DW 18 ; 1个磁道有几个扇区必须为18
DW 2 ; 磁头数必须是2
DD 0 ; 不使用分区,必须是0
DB 0,0,0x29 ; 意义不明,固定
DD 0xffffffff ; 可能是卷标号码
DB "MyOS_SoDisk" ; 磁盘的名称,必须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 "HellloWorld"
DB 0x0a ; 换行
DB 0
times 510 - ($-$$) DB 0 ; 填写0,直到0x001fe
DB 0x55, 0xaa ; 必须保证第510字节(0x1fe)开始的地方是55 AA
; 以下是启动区以外部分的输出
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432

解释见注释,然后下载nasm编译器,加入系统路径后,执行:

nasm MyOS.asm -o MyOS.img

生成的MyOS.img即为系统镜像文件,然后下载Virtual Box,安装打开。

选择新建,设置好名称和存储路径,类型选择other,版本为Other/unknown,点击下一步,设置好内存后,选择不添加虚拟硬盘:

完成后,打开设置面板,点击存储,删掉控制器IDE,然后点击下面添加按钮->添加软盘控制器,新建一个控制器:

然后点击控制器后面的添加按钮,出现如下提示框,选择“选择磁盘”:

然后将上面制作好的MyOS.img选择进去,启动虚拟机,出现如下画面表示成功运行:




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值