Ich befolge mehrere Tutorials und Referenzen, die versuchen, meinen Kernel einzurichten. Ich bin in einem Tutorial auf einen unbekannten Code gestoßen, der ihn nicht erklärt. Es ist Code, den ich gesagt bildet die 16 IRQs (0-15)
zu ISR Standorten 32-47
:Einrichten der IRQ-Zuordnung
void irq_remap(void)
{
outportb(0x20, 0x11);
outportb(0xA0, 0x11);
outportb(0x21, 0x20);
outportb(0xA1, 0x28);
outportb(0x21, 0x04);
outportb(0xA1, 0x02);
outportb(0x21, 0x01);
outportb(0xA1, 0x01);
outportb(0x21, 0x0);
outportb(0xA1, 0x0);
}
Der Code für outportb()
wird wie folgt, aber ich habe bereits eine klare Vorstellung von dem, was sein Tun:
void outPortB(unsigned short port, unsigned char data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (port), "a" (data));
}
I sollte erwähnen, dass dies auf x86-Architektur im geschützten Modus ist. Dieser Quellcode funktioniert gut und ich verstehe, was es tut, aber ich verstehe nicht, wie es funktioniert. Kann mir jemand erklären, was hier vor sich geht, damit ich im Falle, dass ich das weiter ausführen muss, wissen werde, was ich tue?
Wow, das ist genau das, was ich brauchte. Danke Trauben! –