Processadores Intel 64 começam, após o reset, em um estado associado ao modo real do Intel 8086 — uma condição de inicialização, não uma emulação completa do chip. A explicação oficial da Intel sobre o X86S descreve essa herança; ela também ajuda a entender por que o firmware e a inicialização de outros núcleos ainda lidam com etapas de compatibilidade antigas.
O que significa iniciar em modo real
Modo real é o estado de execução associado ao modelo de endereçamento do Intel 8086. Na conta convencional, o processador combina um segmento deslocado quatro bits à esquerda com um deslocamento: (segmento << 4) + deslocamento. Esse modelo de 16 bits corresponde a um espaço nominal de 1 MiB.
O endereço de busca após o reset dos processadores x86 modernos é outra coisa. Adam Conway, do XDA Developers, relata que os manuais de Intel e AMD indicam o endereço FFFFFFF0h, perto do limite de 4 GiB, e descreve a base oculta especial do segmento de código nesse estado. A conta convencional de segmento e deslocamento, portanto, não descreve por si só esse primeiro acesso. A Intel afirma que seus projetos Intel 64 saem do reset no mesmo estado que o 8086; a reportagem de Conway também cita a documentação da AMD sobre a entrada inicial em modo real. A análise de Conway registra ainda que o firmware avança rapidamente para modos posteriores.
Isso não significa que o UEFI elimine o comportamento de reset do processador. UEFI define a interface de firmware e o caminho de inicialização; não substitui, por si só, o estado em que a CPU começa. Em uma máquina com UEFI, o carregador do sistema operacional também não precisa executar em modo real, embora o firmware parta do estado de reset e faça a transição.
Os segmentos guardam mais do que seus valores visíveis
Os registradores de segmento têm seletores visíveis e atributos internos que não aparecem nesses valores. A explicação técnica da OS/2 Museum detalha que carregar um segmento pode atualizar o seletor e a base oculta, enquanto limites e atributos podem continuar refletindo descritores carregados anteriormente. Por isso, modo real não é simplesmente uma CPU moderna reproduzindo por completo o funcionamento do 8086: o estado interno dos segmentos torna a transição entre modos mais sutil.
Essa diferença importa ao alternar entre modo protegido e modo real. Em uma discussão sobre um caso específico em QEMU, o participante nullplan, no OSDev.org, explicou que um salto distante sozinho não limpa os atributos de segmento retidos. A resposta recomenda carregar descritores de código e dados de 16 bits ainda em modo protegido antes de concluir a transição. A discussão técnica trata daquele problema de sistema operacional experimental, não de uma receita universal.
Por que a partida de outros núcleos preserva código de 16 bits
Na inicialização tradicional de um núcleo adicional, o processador recebe primeiro um sinal INIT e depois um SIPI, que aponta para o código de início abaixo de 1 MiB. O núcleo de aplicação começa em modo real e executa uma rotina de transição antes de entrar nos modos usados pelo sistema operacional. É uma tarefa distinta da inicialização do núcleo principal pelo firmware.
Os rastreamentos de Adam Conway mostram essa dependência em contextos concretos. Em um teste com QEMU e OVMF, ele identificou 18 endereços distintos de instruções em modo real no caminho comum do firmware antes da mudança para modo protegido. Em outro teste, com Linux 6.18 e dois núcleos virtuais no QEMU, contou 67 instruções de 16 bits na rotina de inicialização do segundo núcleo. Os números correspondem a testes diferentes, não a uma medida universal. Conway também identificou, na compilação 10.0.28000.3086 do Windows 11, as rotinas HalpRMStub, HalpPMStub e HalpLMStub associadas às transições de modo.
O que o X86S teria mudado
Em 2023, a Intel propôs o X86S, uma arquitetura x86 somente de 64 bits. O desenho previa que a CPU começasse diretamente em modo paginado de 64 bits e substituiria a inicialização tradicional de outros núcleos baseada em SIPI por um mecanismo de 64 bits.
| Projeto de inicialização | Estado inicial | Partida de núcleos adicionais |
| x86 documentado atual | Estado de reset associado ao 8086, com início em modo real | INIT seguido de SIPI; o núcleo adicional começa em código de modo real abaixo de 1 MiB |
| X86S proposto | Início direto em modo paginado de 64 bits | Mecanismo de 64 bits proposto para substituir a partida baseada em SIPI |
Uma arquitetura sem esses modos precisaria substituir as etapas de transição e os mecanismos de inicialização que dependem deles. A Intel também descreveu um compromisso de longa data com a compatibilidade de software; para sistemas operacionais legados de 64 bits, a proposta previa suporte por virtualização. Em dezembro de 2024, a empresa confirmou que decidiu não levar o X86S adiante após receber contribuições do ecossistema.