커널 튜토리얼을 참조하고 커널을 설정하려고합니다. 나는 그것을 전혀 설명하지 않는 튜토리얼에서 익숙하지 않은 코드를 발견했다. 그것은 내가 말한거야 코드 매핑 년대 16 IRQs (0-15)
32-47
위치 ISR에 :IRQ 매핑 설정
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);
}
outportb()
에 대한 코드는 다음과 같다,하지만 난 이미 어떻게 그 일을 분명히 이해 있습니다
void outPortB(unsigned short port, unsigned char data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (port), "a" (data));
}
I을 이것은 보호 모드에서 x86 아키텍처에 있음을 언급해야합니다. 이 소스 코드는 정상적으로 작동하고 그것이하는 일을 이해하지만 어떻게하는지 이해하지 못합니다. 누군가가 나에게 여기에서 일어나는 일을 설명 할 수 있나요? 그래서 내가 이것을 확장해야 할 경우에 대비해서 내가하고있는 일을 알 수 있습니까?
와우, 그게 내가 필요한 것입니다. 고마워요! –