出于严格的教育目的,现代BIOS理解的字节/位的确切格式是什么?

时间:2012-12-26 20:22:43

标签: boot bios

BIOS将查看第一个扇区的前512个字节(至少在PC BIOS,AmeriTrend,PhoenixBIOS等),任何.bin文件二进制格式的字节块都将被BIOS理解,我在这里是正确的?

我只想问这一点,并且因为我想确保在仔细编写操作系统时不会犯错误。

显然,BIOS将在处理器和本机架构下执行,所以一旦我用二进制文件指示BIOS让处理器将字节移入内存,我就可以将控制转移到我的软件,然后指示处理器它下一步做什么,对吗?

我只是想知道我是否有这个权利,我向你保证这不是垃圾邮件,因为我是一个好奇的业余爱好者,拥有C / C ++,Java,C#,x86汇编和一些硬件设计经验同样。

EDIT PEOPLE:我也想知道是否有一个现代化的格式,文件或字节块,必须组装/编译BIOS才能执行,例如.bin。

2 个答案:

答案 0 :(得分:1)

正如pst评论所说,引导扇区被视为i386机器代码。 最后2个字节需要匹配一个特殊的签名(0x55AA),但我认为这就是硬性要求。

代码只是按原样加载和执行。

如果您尝试符合MBR或GPT分区规范(以便其他操作系统可以看到您的磁盘分区),还有更多内容,但这完全是另一回事。

答案 1 :(得分:0)

引导扇区没有特定的“文件格式”。 BIOS只是从引导扇区读取原始字节,然后跳转到第一条指令。它实际上只是一个“字节块”,文件扩展名(你一直提到.bin)根本不相关。