您当前的位置:首页 > 计算机 > 编程开发 > Other

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

时间:11-21来源:作者:点击数:
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
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐