编写操作系统的第一步,就是让自己写在软盘上的系统自启动
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。
开启虚拟机
效果