0

好的,我只是试图理解有助于访问 1Mb 以上内存的代码。我正在下面写所需的代码段。我会写我理解的,我只需要确认我理解的是否正确(我是自学操作系统)。提前致谢

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将设置 A20 门的数据,这最终将允许我们访问 1Mb 以上的内存。

我的理解对吗?如果不是,请在正确的地方纠正我。

4

0 回答 0