Quatro Modos da Linhagem 8086/80286/80386+
O 8086 corre apenas em Modo Real. Os seus sucessores adicionaram modos; o 80386+ suporta todos os quatro. Compreendê-los clarifica a evolução x86.
1. Modo Real (Nativo 8086)
- Endereçamento: 20-bit (segmento:offset → físico = segmento×16 + offset). Limite 1 MB.
- Registos: 16-bit (AX, BX, CX, DX, SI, DI, BP, SP, IP, FLAGS, CS, DS, ES, SS).
- Proteção: Nenhuma. Qualquer código acede a qualquer memória, I/O, interrupção.
- Uso: DOS, BIOS, bootloaders, OSes 16-bit. Padrão no reset.
2. Modo Protegido (80286+)
- Endereçamento: 24-bit (286) → 32-bit (386+) endereços lineares via tabelas descritoras (GDT/LDT/IDT).
- Segmentação: Segmentos têm base, limite, privilégio (DPL 0–3), tipo (código/dados/sistema).
- Paginação (386+): Páginas 4 KB, CR3 page directory, memória virtual, demand paging.
- Anéis de Privilégio: Ring 0 (kernel), Ring 3 (user). Imposição por hardware.
- Multitarefa: Troca de tarefas por hardware (TSS) ou scheduler software.
- Entrada: PE=1 no CR0 (386) / MSW (286); carregar GDT, IDT, jump far para flush pipeline.
3. Modo Virtual 8086 (V86) (386+)
- Conceito: Múltiplas "máquinas virtuais" Modo Real dentro do Modo Protegido.
- Cada Tarefa V86: Tem próprio espaço endereçamento virtual 1 MB, IVT virtual, hardware virtual.
- Trapping: Instruções privilegiadas (CLI, STI, IN, OUT, INT) fazem trap para Ring 0 monitor (VMM/host DPMI).
- Uso: Caixas DOS no Windows 3.x/9x/NTVDM, DOSEMU, EMM386.
4. Modo Gestão de Sistema (SMM) (386 SL / 486+)
- Gatilho: Pino SMI# (hardware) ou trap I/O SMI.
- Contexto: Guarda estado completo CPU em SMRAM (memória oculta).
- Código: Handler SMI BIOS/UEFI — gestão energia, térmico, controlo hardware, atualizações firmware.
- Transparente: Invisível a OS/aplicações; retorna via RSM.
Resumo Transições de Modo
| De → Para | Mecanismo | Gatilho Típico |
| Reset → Real | Hardware | Power-on / RESET# |
| Real → Protegido | Software (PE=1 + far jump) | Bootloader OS (Linux, Windows) |
| Protegido → V86 | Troca tarefa para V86 TSS | Host DPMI / NTVDM |
| Qualquer → SMM | Hardware SMI# | Térmico, botão power, USB legacy |
| SMM → Anterior | Instrução RSM | Saída handler SMI |
O x86-64 moderno adiciona Modo Longo (64-bit) com sub-modos compatibilidade/legado — mas os quatro acima permanecem a fundação arquitetural.