雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
AT互換機の場合、搭載されているメモリ全てを好き勝手に使えるわけではない。ある特定の位置のメモリはシステムで予約されているので使ってはいけない。
じゃ、それはどこいらへん???
例によってOS-Wikiの(AT)memorymapのページからパクってきますた。
アドレス | 用途 |
0x00000000 | : RAM。AT互換機では、この部分がフル実装されていないものはない? -- ATになったのって、286マシンからでしたっけ?(こめんと欄参照) |
: | |
0x0009ffff | |
0x000a0000 | ビデオアクセス用アドレス空間 |
: | |
0x000bffff | |
0x000c0000 | ビデオBIOS? |
: | |
0x000c7fff | |
0x000c8000 | 各種カードのROMがあったりなかったり? |
: | |
0x000dffff | |
0x000d0000 | たいてい空いている |
: | |
0x000dffff | |
0x000e0000 | 拡張BIOS(ここが空いている場合もある?) |
: | |
0x000effff | |
0x000f0000 | BIOS |
: | |
0x000fffff | |
0x00100000 | RAM (これに満たない可能性もある) |
: | |
0x00efffff | |
0x00f00000 | RAMもしくはISAホール(どちらになるかはBIOSの設定などによる) |
: | |
0x00ffffff | |
0x01000000 | RAM |
: | |
メモリが尽きるまで |
- メモリが尽きたところ - 0xffffffef : PCIデバイスなどのメモリマップトI/Oに利用可能な領域
- やっぱり0xfffff000からはBIOSのミラーがあって、利用できないのかな?
- 0xfffffff0 - 0xffffffff : 386以降ではここにリセットジャンプ命令がある
ソフトウェア的用途区分
- 0x00000000 - 0x000003ff : リアルモード用INTベクタ
- もちろんこれはIDTを変更すれば変更できるが、とりあえず標準的にはこのアドレスが使われる。
- 0x00000300 - 0x000003ffはBIOS用スタック?
- 0x00000400 - 0x000004ff : BIOS用ワークエリア?
- 0x00007c00 - 0x00007dff : ブートセクタが読み込まれるアドレス
- 0x0009fc00 - 0x0009ffff : ACPI用ワークエリア(の場合がある)
- ISAホールがなければ、16bit-PCICで利用可能なメモリ領域は、0x000c8000〜0x000dffffのどこかになるでしょう。
Last-modified: 2024-01-06 (Sat) 22:39:13 (JST) (404d) by