零基础编写操作系统系列——电脑自启动hello world

编写操作系统的第一步,就是让自己写在软盘上的系统自启动

ps:本次程序运行在虚拟机上

开发工具(评论留邮箱发)

第一步

新建一个文件夹,为了方便起见,就为project1吧
在该文件夹里新建一个文本文件,改变它的扩展名为.nas,这里就为my_hello.nas吧
将开发工具复制到这个文件夹中:
一个是!cons_nt.bat
另一个是nask.exe

第二步

编写汇编代码

;hello-os
;TAB=4
;以下这段是标准FAT12格式软盘专用代码
 DB 0xeb,0x4e,0x90
 DB "HELLOIPL" ;启动区的名称可以是任意的字符串(8byte)
 DW 512  ;每个扇区的大小为512byte
 DB 1  ;簇的大小为1sector
 DW 1  ;FAT起始位置
 DB 2  ;FAT个数
 DW 224  ;根目录的大小
 DW 2880  ;该磁盘大小
 DB 0xf0  ;磁盘种类
 DW 9  ;FAT的长度
 DW 18  ;1个磁道18个扇区
 DW 2  ;磁头数
 DD 0  ;不使用分区
 DD 2880  ;重写一次磁盘的大小
 DB 0,0,0X29  ;
 DD 0xffffffff  ;
 DB "HELLO-OS   " ;磁盘名称11byte
 DB "FAT12   " ;磁盘格式名称8byte
 RESB 18  ;空18byte
 ;程序主题
  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 "hello world qian"
 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

第三步

将汇编代码变成执行文件。
打开!cons_nt.bat
输入命令nask.exe my_hello.nas my_hello.img

第四步

运行代码
建立一个虚拟机这里我用的是VMware Workstation,没有的小伙伴可以上网上下载或者评论区留言

建立一个软盘
在这里插入图片描述
使用软盘映像文件选择刚刚生成的my_hello.img。

开启虚拟机

效果
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值