“地址 0x500 是 BIOS 使用的最后一个地址”是 Wikipedia
——

“00000000-000003FF 实模式 IVT(中断向量表)”是 osdev.org 在 BIOS 内存映射上的文章所说的。

那么你能告诉我为什么 NASM 将我的 .com 文件的堆栈指针指向 0x3FF 而我的指令指针从 0x7C00 开始吗​​?对我来说,SP 最直观的地方是在 0x7C00 下方。

最佳答案

简单的答案是引导扇区有一个有效的(可能很小)堆栈,该堆栈被 BIOS 使用。



满意的答案是 3FFh 是某些 BIOS 的有效堆栈位置。在这种情况下,它是 IVT 的下部这一事实是因为 BIOS 不使用这些中断向量。这不是 secret 。

关于assembly - 为什么我的引导加载程序的堆栈段在 0x3FF(实模式 IVT 结束)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2738027/

10-11 22:39
查看更多