为什么BIOS INT 0x19加载Bootloader为“0x7C00”?

时间:2013-03-26 01:13:28

标签: operating-system bootloader

我们知道BIOS中断(INT)0x19,它搜索引导签名(0xAA55)。如果找到,则加载并执行我们的引导加载程序0x7C00。

我的问题:为什么是0x7C00?是什么原因 ?如何通过某些方法对其进行评估?

2 个答案:

答案 0 :(得分:1)

这可能已经死了,但我会回答。

当您将段的原点设置为0x7c00时,在任何引导加载程序的开头,那么寄存器也会将地址跳转到该地址。理想情况下,如果您查看一些告诉您如何使用int 0x19命令的在线资源,他们将指导您如何跳转到另一个地址。

要解决此问题,您最好在每次跳转到新地址时将堆栈重置为0.

答案 1 :(得分:1)

可能是因为MBR(通过BIOS)已加载到内存中的0x7c00地址中,然后int 0x19在扇区0x7c00上搜索了MBR扇区签名0xAA55

大约0xAA55:

不是校验和,而是更多的签名。它确实提供了一些简单的方法 证明存在某些MBR。

0xAA55也是一种交替的位模式:1010101001010101

通常用于帮助确定您是在小端还是小端 big-endian系统,因为它将显示为AA55或55AA。一世 怀疑这是将其放在MBR末端的原因之一。

大约0x7c00:

访问此网站(这可能有助于您找到答案):https://www.glamenv-septzen.net/en/view/6