Microprocessador - modos de endereçamento 8086

As diferentes maneiras em que um operando de origem é denotado em uma instrução são conhecidas como addressing modes. Existem 8 modos de endereçamento diferentes na programação do 8086 -

Modo de endereçamento imediato

O modo de endereçamento no qual o operando de dados faz parte da própria instrução é conhecido como modo de endereçamento imediato.

Exemplo

MOV CX, 4929 H, ADD AX, 2387 H,  MOV AL, FFH

Registrar modo de endereçamento

Isso significa que o registro é a fonte de um operando para uma instrução.

Exemplo

MOV CX, AX   ; copies the contents of the 16-bit AX register into  
             ; the 16-bit CX register),  
ADD BX, AX

Modo de endereçamento direto

O modo de endereçamento no qual o endereço efetivo da localização da memória é escrito diretamente na instrução.

Exemplo

MOV AX, [1592H], MOV AL, [0300H]

Registrar modo de endereçamento indireto

Este modo de endereçamento permite que os dados sejam endereçados em qualquer local da memória por meio de um endereço de deslocamento mantido em qualquer um dos seguintes registros: BP, BX, DI e SI.

Exemplo

MOV AX, [BX]  ; Suppose the register BX contains 4895H, then the contents  
              ; 4895H are moved to AX 
ADD CX, {BX}

Modo de endereçamento baseado

Neste modo de endereçamento, o endereço de deslocamento do operando é dado pela soma do conteúdo dos registros BX / BP e deslocamento de 8 bits / 16 bits.

Exemplo

MOV DX, [BX+04], ADD CL, [BX+08]

Modo de endereçamento indexado

Neste modo de endereçamento, o endereço de deslocamento dos operandos é encontrado adicionando o conteúdo do registrador SI ou DI e deslocamentos de 8 bits / 16 bits.

Exemplo

MOV BX, [SI+16], ADD AL, [DI+16]

Modo de endereçamento baseado em índice

Neste modo de endereçamento, o endereço de deslocamento do operando é calculado somando o registro de base ao conteúdo de um registro de índice.

Exemplo

ADD CX, [AX+SI], MOV AX, [AX+DI]

Com base indexada com modo de deslocamento

Neste modo de endereçamento, o deslocamento dos operandos é calculado adicionando o conteúdo do registrador base. Um índice registra conteúdo e deslocamento de 8 ou 16 bits.

Exemplo

MOV AX, [BX+DI+08], ADD CX, [BX+SI+16]