>> Tecnologia Eletrônica >  >> Telefones >> Viva-voz de Conferência

Espaço de Endereçamento de um Sistema de 16 Bits: 64 KiB Explicados

Um sistema com **endereços de 16 bits** pode gerar 216 endereços únicos = **65.536 (64 KiB)**. Cada endereço tipicamente referencia **um byte** (8 bits), então o espaço de memória diretamente endereçável é **64 KB**.

Divisão do Espaço de Endereçamento

Intervalo (Hex)Intervalo (Decimal)TamanhoUso Típico (Modo Real 8086/8088 Clássico)
00000–0FFFF0–65.53564 KiBEspaço de endereçamento total
00000–003FF0–1.0231 KiBTabela de Vetores de Interrupção (IVT) — 256 vetores × 4 bytes
00400–004FF1.024–1.279256 BÁrea de Dados da BIOS (BDA)
00500–7FFFF1.280–524.287~512 KiB***Memória Convencional** (apps DOS, TSRs, drivers) — *na verdade limite 640 KiB
80000–9FFFF524.288–655.359128 KiBVideo RAM (VGA: A0000–BFFFF), Option ROMs (C0000–DFFFF), BIOS Extension
A0000–FFFFF655.360–1.048.575384 KiBUpper Memory Area (UMA) — System BIOS (F0000–FFFFF), Adaptadores

*Nota: Endereçamento *segmentado* de 16 bits (segmento:offset) permite endereços físicos de 20 bits (1 MiB) no 8086/8088. Endereçamento plano puro de 16 bits = 64 KiB.

Segmentação: Rompendo a Barreira dos 64 KiB

O 8086 usa **Segmento:Offset** (16 bits cada) → Endereço Físico = (Segmento × 16) + Offset. Isso resulta em **endereçamento de 20 bits (1 MiB)**.

  • Code Segment (CS):IP → Busca de instrução.
  • Data Segment (DS):SI/DI → Acesso a dados.
  • Stack Segment (SS):SP → Operações de pilha.
  • Extra Segment (ES):DI → Operações de string, ponteiros far.

Segmentos sobrepostos permitem múltiplas janelas de 64 KiB no espaço de 1 MiB.

Técnicas de Gerenciamento de Memória (Além de 1 MiB)

  • EMS (Expanded Memory Spec / LIM 4.0): Páginas de 16 KiB comutadas por banco na janela UMA (page frame). Até 32 MiB (80386+).
  • XMS (Extended Memory Spec): HIMEM.SYS gerencia >1 MiB no 286+ (modo protegido). VCPI/DPMI para DOS extenders.
  • Paging (386+): Páginas de 4 KiB, page tables, registrador CR3 → 4 GiB virtual (32-bit).
  • Segmentação (Modo Protegido): Tabelas de descritores (GDT/LDT), seletores, anéis de privilégio (0–3).

Contexto Moderno

  • MCUs de 16 bits (MSP430, AVR, PIC24, STM32F0): Plano 64 KiB ou bancado (MSP430X = 20-bit, 1 MiB).
  • Bootloaders / Firmware: Frequentemente rodam em modo real 16-bit inicialmente (x86 BIOS, UEFI CSM).
  • DOS / Retrocomputação: Ainda relevante para legado embarcado, emuladores, educação.

Conclusão: Barramento de endereços de 16 bits = espaço byte-endereçável de 64 KiB. Segmentação, banking e paging são os hacks históricos para escapar dele. 64-bit moderno = 264 bytes (16 EiB) — efetivamente infinito por enquanto.