O endereçamento de memória é feito a partir dos registos de segmento e registos de deslocamento (offset).
Como já foi referido, os registos internos do 8086 são todos de 16 bits e, como também já sabemos, com 16 bits conseguimos apenas endereçar 216 bytes, ou seja 64 Kbytes. Para endereçar 1 MByte foi necessário recorrer a uma técnica designada por segmentação e que consiste no seguinte: em vez de um registo, são utilizados dois registos. Um desses registos aponta para um valor de memória chamado base do segmento, enquanto o outro determina o deslocamento em relação a essa base num valor máximo de 64 Kbytes.
Os registos que são a base do segmento são os registos de segmento e os registos que determinam o deslocamento do endereço em relação a essa base chamam-se registos de deslocamento.
Existem 4 registos de segmento, são eles:
Os registos de deslocamento trabalham associados aos registos de segmento.
Um endereço representado a partir de dois valores de registos
tem o nome de endereço lógico. O endereço físico
ou endereço real é calculado a partir desse endereço
lógico, deslocando o valor de base do endereço, 4 bits para a
esquerda, e somando ao resultado o valor do deslocamento.
Exercícios: