2017-01-08 6 views
-2

私は教育目的で実験的なOSをアセンブリ言語で開発しています。 BIOSから読み出し専用メモリを読み込み、それを格納することは可能ですか?このための割り込みはありますか?それは保護されていますか?アセンブリ言語(BIOS)でBIOS-ROMにアクセス

+2

なぜこれをオペレーティングシステムで実行したいですか?あなたはあなたの質問にもっと文脈を与えることができますか? –

+0

これはあなたを助けるでしょう。私は毎日これを投稿するような気がします。 [Ralph Brown's Interrupt List](http://www.ctyme.com/rbrown.htm))。 –

答えて

6

はい、LinuxやWindowsなどの保護モードOSの下にコードがない場合(ブートモードなど)、ROM BIOSコンテンツを読み取ることは可能です。その時、ROM BIOSの内容は0x000F0000アドレスのメモリにあります.IBM PCシステムのアーキテクチャmemory mapを見てください。したがって、必要なものすべてをメモリからコピーすることができます。

次の質問は、データの保存方法です。 BIOS int 13h low-level disk access functionsを使用してデータをディスクに保存できます。しかし、これらの機能は非常に低レベルであり、ファイルアクセスレベルではなくディスクデータアクセスレベルで機能するため、あまり便利ではありません。したがって、ファイルにデータを書き込むには、独自のファイル作業ルーチンを作成する必要があります。

学習用のROM BIOSコンテンツが必要な場合は、BIOSダンプユーティリティを使用することができます。多くのものがあります。

+0

私は実際に* x86メモリマップ*(あなたの発明ではなく、あなたのせいではない)のような表現を見たくありません。これは、システムとCPUアーキテクチャの用語を組み合わせたものです。 x86 CPUには、$ F0000でROMを使用する必要はありません。これは、元の* IBM PCシステムアーキテクチャーによって課された規約で​​す。 – tofro

+0

私は同意します。このレイアウトは、IBM PCアーキテクチャのメモリレイアウトを反映しています。それを修正します。 – SergeyLebedev