Modos de endereçamento para o "modelo 64K" de programação do 8086

Notação:
Modos de endereçamento para o operando fonte
  Exemplo
(2 operandos)
Nome Descrição Obs Efeito
(para o exemplo)
1 mov ax,1000h Imediato(**) Operando é uma constante constante está codificada na instrução ax <= 1000h
2 mov ax, bx Registrador Operando é um registrador um dentre: ax,bx,cx,dx,si,di,sp,bp ax <= (bx)
3 mov ax, [1000h] Direto Endereço do operando codificado na instrução Operando está na memória ax <= conteúdo da memória endereçada por 1000h e 1001h (*)
4 mov ax, [bx] Indexado
ou indireto
via registrador
Endereço do operando é o conteúdo de registrador Apenas um dentre bx, bp, si, di, atuam como apontadores para o operando na memória ax <= conteúdo da memória cujo endereço está em bx (*)
5 mov ax, [bx + di] Duplamente indexado Endereço do operando é a soma dos conteúdos de dois registradores combinações possíveis: [bx+di], [bx+si], [bp+di], [bp+si] ax <= conteúdo da memória cujo endereço é dado por (bx)+(di) (*)
6 mov ax, [bx+di+1000h] Duplamente indexado com deslocamento Endereço do operando é a soma dos conteúdos de dois registradores mais uma constante combinações possíveis: acrescente uma constante às combinações acima ax <= conteúdo da memória cujo endereço é dado por (bx)+(di)+ 1000h (*)
(*) Quando o operando tem 16 bits o 8086 recupera/escreve da/na memória dois bytes consecutivos a partir do endereço do operando.
(**) Usado com freqüencia para carregar num registrador indexador o endereço de um dado associado a um rótulo:
        mov bx, tab
     - - -
tab: resb 100

Modos de endereçamento para o operando destino:

Resumo para os modos de endereçamento 3, 4, 5 e 6:

Qualquer combinação de uma, duas ou três colunas abaixo, com apenas um elemento por coluna:

  bx si
constante    
  bp di


Obs: Todos os modos de endereçamento acima aplicam-se também ao modelo geral de programação do 8086 (1 MB de endereçamento) com as seguintes restrições adicionais: (*) a instrução movsb move um byte de ds:si para es:di