Um gerenciador de partida precisa ser executado em um ambiente muito básico e precisa configurar muito material próximo de hardware. Nos velhos tempos, também o espaço em disco para (pelo menos uma parte) do gerenciador de inicialização foi limitado. Portanto, faz sentido programar pelo menos a inicialização em assembler onde você tem controle total do hardware e acesso a todas as instruções da CPU.