第一天
第一个实验:用二进制写一个显示helloworld的“操作系统”
使用工具:
1、HxD-二进制编辑器
2、qumu模拟器
下载了HxD – 二进制编辑器
编辑好了书上的二进制程序
helloos0.img
然后按照书上写了bat脚本。
Install脚本:用来制作系统启动盘
Run脚本,用来启动qumu模拟器运行。
不过其中install脚本无法运行,可能是win10系统可能不太兼容。
第二个实验:通过汇编写一个显示helloworld的“操作系统”
使用工具:
nask.exe:NASM编译器改编的编译器,提高了优化能力,NASM用于编译适合操作系统的软件,而不适合用于编译操作系统
代码直接使用作者的helloos.nas,编译了汇编代码得到helloos.img
相关汇编指令:
DB:DB 指令是 “data byte” 的缩写,也就是往文件里直接写入 1 字节的指令。
RESB:RESB 指令是 “reserve byte” 的缩写,如果想要从现在的地址开始空出 10 个字节来,就可以写成 RESB 10
DW/DD:它们分别是 “data word” 和 “data double-word” 的缩写。 word 的意思是 “单词”,但在计算机汇编语言的世界里,word 指的是 “16 位” 的意思,也就是 2 个字节。“double-word” 是 “32 位 “的意思,也就是 4 个字节。
; 注释命令
相关概念(解释见书):
FAT12格式
启动区
IPL:initial program loader
启动(boot)
部分学习知识:
软盘的第一个扇区被称为启动区,512字节就是一个扇区。
计算机会检查第一个扇区的最后两个字节,如果最后两个字节不是0x55 AA,计算机会认为这张软盘上没有所需的启动程序。
由于启动区太小,放不下操作系统,所以一般放的是加载操作系统的程序放在启动区中。所以也称启动区为IPL。不过启动区名称要是任意8字节字符串。
总结:
第一天直接用IPL执行了显示hello world程序(先后用二进制和汇编写的)。
标签:word,操作系统,启动,二进制,30,扇区,---,字节 From: https://www.cnblogs.com/hy227/p/17279632.html