5

私は学習目的で小さなブートローダーに取り組んでいます。BIOS 割り込み呼び出しに必要な (無料の) スタック サイズに関する仕様/情報はありますか?

4

4 に答える 4

1

割り込みハンドラーに入る前に、すべてのレジスターがファーリターンアドレスとともにスタックにプッシュされ、レジスターのサイズを合計し、リターンアドレスを格納するために必要なスペースを追加して、最小スタックサイズを取得します。

割り込みハンドラー内でスタックにさらにデータをプッシュする場合は、さらに多くのスペースが必要になることに注意してください。

于 2010-01-20T20:32:05.183 に答える
0

簡単な答えは、ブートセクターをロードする前にBIOSが割り込み呼び出し(usbフラッシュドライブからブートセクターをロードするためのint 13hを含む)を行うために使用したスタックは、ブートセクターの使用に十分であるということです。

嬉しい答えは、BIOS割り込み(新しい肥大化したPCIを除く)は最小限のスペースで実行するように設計されているため、ブートセクターにスタックをセットアップする必要がないということです。

于 2010-08-26T21:55:46.953 に答える
0

int 0x13を使用している場合、少なくとも 4096 バイトのスタックが必要であることに気付きました。最新の BIOS にはAHCI互換の int 0x13 ハンドラが含まれていることが多く、AHCI は非常に複雑であるため、BIOS int 0x13 は多くのスタック スペースを必要とします。

完璧な世界では、BIOS に独自のスタックが必要ですが、多くの BIOS は提供されたスタックに依存しています。

于 2010-02-26T12:08:38.130 に答える
0

http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf (3 ページの「呼び出し規則」)から、BIOS 呼び出しは最大 1024 バイトのスタック スペースを使用できるようです。私のグーグルは他のソースを見つけていません。

于 2010-01-20T20:30:05.420 に答える