現在、オペレーティングシステムの開発をしています。
これまでこの質問に対する回答で記述されているブートローダーを使用して開発を進めてきました。
しかし、このブートローダーはメモリマップの0x9000にカーネルをロードしています。
これだと0x9000~0xA0000までしかメモリを使用することができません。
開発中のカーネルはこのメモリサイズを超えてしまったため、起動できなくなってしまいました。
通常、カーネルはメモリの0x100000以降に配置するそうです。
osdev.orgなどOS開発のサイトを見ても説明ばかりでどのように実装していいのかわかりませんでした。
A20の有効化、GDTの初期化などをした上でカーネルを0x100000にロードするブートローダーを作成するにはどうすればいいでしょうか?
回答よろしくお願いします。