Existem vários emuladores de máquinas virtuais que podem emular um processador x86 e periféricos. Cada um vem com um BIOS, vários deles com um BIOS de código aberto. Você deve olhar para QEMU , que opera de forma totalmente independente do host (ele pode ser executado em qualquer máquina, embora tenha mecanismos para execute mais rapidamente se a máquina emulada tiver a mesma arquitetura que o host). O QEMU vem com PC-BIOS .
Se você quiser trabalhar no modo real x86, também pode dar uma olhada no Dosbox .
O Coreboot também deve ser do seu interesse. É um BIOS de código aberto para x86.
Examinar um BIOS lhe dará algumas dicas sobre como um processador x86 inicializa, incluindo todas as peculiaridades herdadas de mais de 30 anos de história, com evolução significativa em recursos de hardware. Não é a melhor coisa para ver se o que você quer entender é como se comunicar com periféricos. Para isso, veja os drivers de dispositivo em um kernel do sistema operacional - Linux ou os mais simples, como MINIX 3 .
Eu também recomendaria dar uma olhada em outras arquiteturas de CPU, como ARM e MIPS, para que você tenha uma idéia do que é comum em interações de hardware / hardware e o que é específico para a arquitetura do PC.