回答編集履歴

1

メモリエリアに関して追記

2016/08/25 11:57

投稿

maisumakun
maisumakun

スコア145184

test CHANGED
@@ -1,4 +1,4 @@
1
- CPUが0xffff0から実行する理由は、「ブート時に必要なコードをできるだけメモリ上位に置いて、(1MB時代の)下位のメモリを使うじゃまにならないようにするため」です。最近のx64 CPUでも、起動時は**16ビットモード**で起動しますので、この位置はそのままとなっています。なお、x86では0x0~0x3ffが割り込みベクタとなっているので、実行には使えません。
1
+ CPUが0xffff0から実行する理由は、「ブート時に必要なコードをできるだけアドレスエアの上位に置いて、(1MB時代の)下位のメモリを使うじゃまにならないようにするため」です。最近のx64 CPUでも、起動時は**16ビットモード**で起動しますので、この位置はそのままとなっています。なお、x86では0x0~0x3ffが割り込みベクタとなっているので、実行には使えません。また、MS-DOS時代には「640KBの壁」と呼ばれたように、ふつうのメモリとして使えるのは下位640KBだけで、残りの384KBにBIOSとかハードウェアのI/O領域などが置かれていました(EMSやUMBなど、隙間をメモリとして使うこともありましたが)。
2
2
 
3
3
 
4
4