我们知道BIOS中断(INT)0x19,它搜索引导签名(0xAA55)。如果找到,则加载并执行我们的引导加载程序0x7C00。
我的问题:为什么是0x7C00?是什么原因 ?如何通过某些方法对其进行评估?
答案 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