30天自制操作系统第1天 - Hello World

本文记录了自制操作系统的第一天,目标是启动虚拟机并显示文字。介绍了汇编实现,包括FAT12文件系统头部信息、程序指令的主体和信息数据部分。接着,讲解了如何将汇编程序制作成镜像文件,并在QEMU模拟器上运行,最终成功在屏幕上显示输出。
摘要由CSDN通过智能技术生成

在拖了一个月后终于开始写《30天自制操作系统》的第一天内容记录,在写本文时对应的项目已经进行到第21天运行由C编写的应用程序,但也卡在该部分暂时没有进展。

开始自制操作系统的第一天,我们的目标是要实现启动虚拟机并在屏幕上打印hello, world文字。下面就开始第一天的内容吧。

汇编实现

; 第一部分:FAT文件系统信息
  DB    0xeb, 0x4e        ; 跳转指令
  DB    0x90              ; NOP指令
  ; 略
  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        ; 两个换行
  DB    "hello, world"
  DB    0x0a              ; 换行
  DB    0

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

  DB    0x55, 0xaa

; 第四部分:启动区外的内容
  DB    0xf0, 0xff, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值