0

さて、私は 1Mb を超えるメモリへのアクセスに役立つコードを理解しようとしました。以下に必要なスニペットを書いています。わかったことを書きますが、それが正しいかどうかの確認が必要です (私は独学で OS を勉強しています)。前もって感謝します

seta20.1:
  inb $0x64,%al # Wait for not busy
  testb $0x2,%al
  jnz seta20.1

  movb $0xd1,%al # 0xd1 -> port 0x64
  outb %al,$0x64

seta20.2:
  inb $0x64,%al # Wait for not busy
  testb $0x2,%al
  jnz seta20.2

  movb $0xdf,%al # 0xdf -> port 0x60
  outb %al,$0x60

最初にseta20.1、キーボード コントローラー (mkbc) からステータスを取得して、何かを書き込んでも問題ないかどうかを確認します。解放されたら0xd1、最終的に出力ポートを write に設定するバッファに書き込みます。

ではseta20.1、最初に mkbc がそれを読み取って出力ポートを設定したかどうかを確認しています。完了したら、0xdf最終的に 1Mb を超えるメモリにアクセスできるようにする A20 ゲートを設定するデータを送信します。

私の理解は正しいですか?そうでない場合は、正しい場所で私を修正してください。

4

0 に答える 0