次のスニペット コードは、JOS の A20 を有効にします。私を混乱させる問題があります。「$0xdf」はコマンドであり、データではありません。コマンド ポートであるポート 0x64 に送信する必要があります。実際には、データ ポートである 0x60 にポートします。ここでは、2 つの方法 (方法 3.1 と方法 3.2) が存在します: http://www.brokenthorn.com/Resources/OSDev9.html
だから、私の質問は: なぜ最後に 0x60 (outb %al, %0x60) に移植するのですか?
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