我正在开发一个用于学习目的的小型引导加载程序。是否有任何关于 bios 中断调用所需的(免费)堆栈大小的规范/信息?
问问题
663 次
4 回答
1
在进入中断处理程序之前,所有寄存器与远返回地址一起被推入堆栈,将寄存器大小相加并添加存储返回地址所需的空间以获得最小堆栈大小。
请注意,如果您在中断处理程序中将更多数据推入堆栈,您将需要更多空间
于 2010-01-20T20:32:05.183 回答
0
从http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf(第 3 页上的“调用约定”)看来,BIOS 调用最多可以使用 1024 字节的堆栈空间。我的谷歌搜索没有出现任何其他来源。
于 2010-01-20T20:30:05.420 回答
0
简单的答案是 BIOS 在加载引导扇区之前用于进行中断调用(包括 int 13h 以从 USB 闪存驱动器加载引导扇区)的堆栈足以供引导扇区使用。
令人高兴的答案是 BIOS 中断(除了较新的膨胀 PCI)被设计为在最小空间内执行,因此无需在引导扇区中设置堆栈。
于 2010-08-26T21:55:46.953 回答