Os segmentos de memória do 8086 são armazenados/acessados pelos registradores de 16-Bits de segmento:
CS, DS, ES e SS. Esses, em conjunto com indexadores e ponteiros são utilizados formar endereços de memória para
acessar variáveis, estruturas de dados, arrays e outros.
Tab. 2: Registradores de Segmento
Registrador |
Descrição |
|
CS |
Code Segment |
Segmento de Código |
DS |
Data Segment |
Segmento de Dados |
ES |
Extra Segment |
Segmento Extra |
SS |
Stack Segment |
Segmento de Pilha |
CS
O registrador CS, armazena o ponteiro base para o segmento que contém o código do programa. Esse registrador é
utilizado em conjunto com IP para obter o endereço da instrução corrente para "formar o contador de programa"
como em outros processadores.
DS
O Data Segment, armazena o endereço base para o segmento que contém dados, variáveis e outros recursos. O DS
é utilizado em conjunto com os registradores BX, BP, SI e DI.
ES
O ES, segmento extra, é um registrador que armazena o endereço de um segmento que é definido pelo usuário.
Algumas instruções fazem uso do ES para movimentação de dados, por exemplo.
SS
O registrador Stack Segment armazena o endereço da base da Stack(Pilha) do 8086. O SS é utilizado em conjunto
com BP ou SP para acessar informações na pilha.
A atribuição ou movimentação de endereços nos registradores de segmentação só pode ser realizada mediante
outro registrador AX, BX, CX ou DX onde um endereço é carregado previamente.