gpt4 book ai didi

x86 - 主引导记录中有哪些汇编指令?

转载 作者:行者123 更新时间:2023-12-04 16:23:53 24 4
gpt4 key购买 nike

想知道 X86 架构上的主引导记录实际上由哪些显式汇编指令组成。感谢您提供任何见解。

欢迎使用其他架构,但这主要是针对 X86 的。

最佳答案

一个主引导记录由 512 个字节组成,最后两个字节 必须是 0x55 0xAA。剩下510个字节,分区表条目是16个字节,最多4个分区表条目,也就是64个字节。 Here是分区条目的样子。

剩下的是 446 字节的汇编代码。通常前几个字节由引导标识符记录组成,描述引导加载程序的磁盘数据,例如标识符、系统 ID,仅举几例,然后 BIOS 期望引导代码位于 0x000:0x07C00,然后它会将自身重新定位到较低的位置在内存段中。见 here有关引导加载程序的示例教程。关于它的 WikiBooks 上有详细的技术概述 here .

您唯一需要注意的是引导加载程序代码不能超过 446 字节,否则分区表会被搞砸,从而导致 BIOS 错误消息“错误。缺少操作系统'或类似的!

将引导扇区编译后的二进制文件写入磁盘通常会涉及一种困惑而危险的方式来拧紧计算机,在 Linux 下,该命令类似于:

# 假设/dev/hda1 是第一个硬盘然后...
dd if=mybootldr.bin of=/dev/hda1 bs=512 cnt=1

另一种方法涉及使用低级磁盘编辑器程序,甚至使用普通的旧 DEBUG.EXE(可在旧 MSDOS 软盘上找到),甚至使用 FreeDos .

C:\DEBUG.EXE mybootldr.bin
-W 100 0 0 1
-Q

如果我还记得,DR.DOS(数字研究 DOS)是 MS-DOS 的竞争对手,它在 DR-DOS 启动之前对引导加载程序代码使用了密码保护。

编辑:如果您真的很好奇 BIOS 如何查找 0x0000:0x7C00,请查看此链接,您可以在其中下载原始 IBM XT 的 BIOS 代码 here .

希望这可以帮助,
此致,
汤姆。

关于x86 - 主引导记录中有哪些汇编指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2142063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com