Por ser um processador de 16-bits, o tamanho máximo de dados processados, em registrador ou memória,
possui a mesmo quantidade em bits, 16-bits, exceto pelas instruções de divisão e multiplicação que utilizam dois
registradores de 16-bits como resultado.
O tamanho dos registradores e seus respectivos tamanho em bits podem ser revistos na tabela abaixo:
Tab. 1: Registradores de uso geral
8-bits |
8-bits |
16-Bits |
AH |
AL |
AX |
BH |
BL |
BX |
CH |
CL |
CX |
DH |
DL |
DX |
Para o 8086, e outros processadores, um valor 16-bits é chamado de word. Um valor de 32-bits é chamado de
doubleword.
Para trabalhar com nibbles, valores de 4-bits, é necessário utilizar instrução de deslocamento, rotação e
outras instruções do mesmo grupo.
Abaixo uma representação simples dos tamanhos de dados mencionados acima para valores em memória. Os valores
separados por (...), representam as suas respectivas posições de bits.
Word
Byte 1 |
Byte 0 |
7...0 |
15...8 |
Doubleword
Word 1 |
Word 0 |
15...0 |
31...25 |
Como o barramento de endereços para acessar dados na memória do 8086 é de 20-bits, os endereços de
memória formados com os registradores de segmento, indexadores e ponteiros são armazenados como doublewords.
Tab.2: Endereço
SEGMENTO |
: |
OFFSET |
Word 0 |
|
Word 1 |
O 8086 possui algumas instruções que trabalham com valores 32-Bits, porém, essas apenas armazenam dados.
Operações aritméticas em 32-bits, por exemplo, devem ser realizadas por meio de words.
Quando operações 8-bits são realizadas, o byte mais significativo de um dos registradores Ax~DX não são
afetados, exceto quando instruções aritméticas são utilizados.
As operações em 32-Bits estão disponíveis apenas nos processadores 80386, 80486 ou superiores.
Os valores 16-bits ou words, em memória, são armazenados utilizando o forma de armazenamento Little Endian.
Esse forma será visto mais adiante.