美文网首页
day1引导程序

day1引导程序

作者: 柯基是只dog | 来源:发表于2018-11-30 14:44 被阅读0次

    x86的机器在通电后内存是干净的,这时候就必须有一个初始程序提供加载等一些工作,这个就是bios了,bios一般写在芯片里,具有断电也能持久存储的性质。bios提供了硬件的驱动,以中断形式提供服务。以软盘启动为例,bios会把软盘第一个扇区内容读到内存的0x7c00处(这是规定,0地址开始的地方存着中断表等bios需要的东西),然后cpu就开始从0x7c00开始执行了。所以写一个引导程序就必须把我们的代码写到软盘的第一扇区中,因为一个扇区只有512K,而且最后两个字节必须是0xaa55结尾。那么我们的代码就必须在这规定的大小内完成。

    今天完成的只是完成一个1.44M软盘的制作,并写一个在屏幕上输出helloworld的程序写到软盘的第扇区。

    软盘制作命令:

    1. 创建一张1.44M空白软盘镜像
    dd bs=1024 if=/dev/zero of=yourname.img count=1024
    2. 把boot.bin内容写到第一扇区
    dd if=boot.bin of=yourname.img bs=512 count=1 conv=notrunc
    

    运行环境:bochs

    代码:https://github.com/Corgidog/kernel/tree/master/asm/day1

    运行步骤

    make
    bochs -f bochsrc.bxrc
    

    相关文章

      网友评论

          本文标题:day1引导程序

          本文链接:https://www.haomeiwen.com/subject/bvrhcqtx.html