2025年4月3日 星期四 乙巳(蛇)年 正月初四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Other

自己动手写一个操作系统——MBR(2)

时间:11-21来源:作者:点击数:16
CDSY,CDSY.XYZ

前言

上篇文章《自己动手写一个操作系统——MBR(1)》,我们使用 dd 生成了一个 512 字节的镜像,并用 vim 将其最后两个字节修改成了 55 AA,以此来完成了 MBR 的构建。这种办法终归上不了台面,而且还需要手动操作,无法纳入自动化编译工程中。今天,我们就介绍另外一种办法来完成这件事情。

代码

首先,编写一份汇编代码 mbr.S

  • .global _start
  • _start:
  • jmp _start
  • .org 0x1fe
  • .byte 0x55, 0xAA

Makefile

  • OUTPUT=output
  • all: clean
  • as --32 -o ${OUTPUT}/mbr.o mbr.S # 汇编
  • ld -m elf_i386 ${OUTPUT}/mbr.o -o ${OUTPUT}/mbr.elf # 链接
  • objcopy -O binary ${OUTPUT}/mbr.elf ${OUTPUT}/mbr.bin # elf --> bin
  • dd if=${OUTPUT}/mbr.bin of=${OUTPUT}/mbr.img conv=notrunc # bin --> img
  • clean:
  • -rm ${OUTPUT}/*
  • run:
  • qemu-system-i386 -daemonize -m 128M -drive file=${OUTPUT}/mbr.img,index=0,media=disk,format=raw \
  • #-s -S

然后执行 make 就 OK 了。

检查一下

在这里插入图片描述

org

org 的功能是告诉编译器:“嘿,老兄,你帮我把后面所有数据(指令和数据)的地址以 xxxx 为起始开始编吧”。

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐