Considere o seguinte: quando a Intel desenvolveu CPUs para PCs após o 8088 original, elas não excluíram nenhum recurso existente, mas sim "acrescentaram" recursos adicionais. É por isso que você tem processadores SSE4 + multigigahertz de 8 núcleos e 64 bits que ainda inicializam no modo 8088 de 640KB de 16 bits, caso você ainda queira executar o DOS.
Muitas coisas são assim no hardware do PC; placas gráficas são um excelente exemplo. VGA é um recurso adicional acoplado a EGA, CGA e MDA, e as GPUs modernas ainda são inicializadas e parecem com uma placa VGA, completa com suporte a modo de texto, até que o driver ative os recursos avançados.
Antigamente, quase tudo, exceto a placa de vídeo, usava portas de E / S padronizadas. A RAM da placa de vídeo estava conectada ao A000: 0000 até AFFF: FFFF, dependendo da quantidade de RAM no cartão, além de ter portas de E / S específicas às quais também respondia. A unidade de disquete usava o DMA para transferir dados do disco para a RAM.
Assim, quando o seu PC com BIOS é inicializado, grande parte do hardware está recriando o antigo IBM 5150 PC, até que algumas outras portas sejam tocadas (geralmente quando o driver é carregado e inicializado), o que elimina os dispositivos. compatibilidade e no modo "nativo".
Idealmente, há apenas um IRQ atribuído a um dispositivo. O teclado é IRQ 1, então a CPU pode assumir que qualquer interrupção do IRQ 1 é o teclado, e pode então ler as portas de E / S apropriadas para obter o código de teclas.
Google "IBM 5150 BIOS Disassembly" ou "IBM 5150 BIOS Source Code". A IBM incluiu o código-fonte no BIOS original em um de seus manuais técnicos. É fascinante ler, vai te ensinar muito e vai responder muitas de suas perguntas.