标签: assembly x86 boot mbr as86
BIOS将控制权传递给从MBR加载的代码时,第一条指令似乎是
jmpi go, BOOTSEG
其中go是下一条指令之前的另一个标签,而BOOTSEG是0x07c0。执行该指令的原因似乎是,当BIOS传递控制权时,段寄存器被设置为零,并且该指令将段寄存器设置为适当的值(在这种情况下为0x07c0)。
我的问题是:为什么将段寄存器设置为该值? jmp指令按预期执行的事实表明,加载的MBR代码可以很好地执行而无需更改段值。如果不进行此细分更改,会发生什么?