30天自制操作系统第一天helloos2

helloos2

准备工作

编辑代码

; hello-os
; TAB=4

; 以下这段是标准FAT12格式软盘专用的代码

		DB		0xeb, 0x4e, 0x90
		DB		"HELLOIPL"		; 启动区的名称可以是任意的字符串
		DW		512				; 每个扇区(sector)的大小(必须为512字节)
		DB		1				; 簇(cluster)的大小(必须为1个扇区)
		DW		1				; FAT12的起始位置(一般从第一个扇区开始)
		DB		2				; FAT的个数(必须为2)
		DW		224				; 根目录的大小(一般设成224项)
		DW		2880			; 该磁盘的大小(必须是2880扇区)
		DB		0xf0			; 磁盘的种类(必须是0xf0)
		DW		9				; FAT的长度(必须是9扇区)
		DW		18				; 1个磁道(track)有几个扇区(必须是18)
		DW		2				; 磁头数(必须是2)
		DD		0				; 不使用分区,必须是0
        DD      2880            ; 重写一次磁盘大小
		DB		0,0,0x29		; 意义不明,固定
		DD		0xffffffff		; (可能是)卷标号码
		DB		"HELLO-OS   "	; 磁盘的名称(11字节)
		DB		"FAT12   "		; 磁盘格式名称
		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		;两个换行
		DB		"hello, world"
		DB		0x0a			;换行
		DB		0

		RESB	0x1fe-$			; 填写0x00,直到 0x001fe

		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

以上代码保存为helloos.nas并存放在helloos2文件夹内。

编译与运行

  • 在tolset文件夹中新建子文件夹helloos2;
  • 复制 tolset 文件夹中子文件夹z_new_w中,!cons_9x.bat和!cons_nt.bat文件到helloos2文件夹内;
  • 打开记事本输入以下代码,并另存为asm.bat且放在helloos2文件夹内:
..\z_tools\nask.exe helloos.nas helloos.img
  • 同上,打开记本输入以下代码,并保存为run.bat且放在helloos2文件夹内:
copy helloos.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\make.exe -C ..\z_tools\qemu
  • 以上,文件都准备好了,下面开始运行。
    1. 点击运行!cons_nt.bat,出现如下界面:
      在这里插入图片描述
    2. 在打开的命令行程序中输入 asm 并回车(这里的nask.exe win7的还可用,win10完全不兼容,如果有高手看到的话,请@阿龙_LAMW我也想学会啊!!!)并生成helloos.img文件:
      在这里插入图片描述
    3. 接着输入 run 并回车输出以下界面:
      在这里插入图片描述
  • 接下来使用VMware-Workstation运行。
    1. 创建虚拟机
      在这里插入图片描述
      因为大多所以就在这里一一发了,直接上链接:https://blog.csdn.net/zl18206208825/article/details/104118226
      2.运行虚拟机,会输出以下界面
      在这里插入图片描述
      好了,以上是30天自制操作系统第1天helloos2,请大家多多支持!!!
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值