Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.

  1. Formato e Tamanho de instruções
  2. Tamanho das instruções
  3. Formato das instruções
  4. Formato 3,4 e 6 bytes
  5. Tabelas W, MOD, R/M e REG

Nesta parte do tutorial, vamos ver, de forma superficial, o tamanho das instruções e o significados de seus campos compostos de bits.

O usuário/programador não precisa se preocupar com as informações mostradas abaixo, sendo apresentadas de forma complementar apenas.

Em relação ao tamanho de uma instrução do 8086, suas instruções que variam de 1 até 6 bytes. Nessas instruções, os bytes são lidos, da esquerda para direita, e seus bits, da direita para esquerda, como mostrado nas tabelas abaixo:

1 Byte
Byte 0
7...0
2 Bytes
Byte 1 Byte 0
7...0 7...0
4 Bytes
Byte 0 Byte 1 Byte 2 Byte 3
7...0 7...0 7...0 7...0
6 Bytes
Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5
7...0 7...0 7...0 7...0 7...0 7...0

Dependendo da instrução, seus bits possuem significado, indicando modo de endereçamento, tamanho de registradores e outros. Abaixo seguem exemplos para instruções de tamanhos 1 e 2 bytes.

As instruções com apenas 1 byte possuem operandos implícitos podem ou não ter campos de bits com informações sobre registradores ou flags, por exemplo.

Tab. 1: Instrução 1 Byte
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Instrução

Nas instruções de 2 bytes, o primeiro byte armazena dados sobre a instrução e tamanho do registrador. O segundo byte armazena informações sobre o registrador e modo de endereçamento. Abaixo, exemplos de instruções que trabalham com registradores e memória.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Instrução W
Tab. 2: Instrução de 2 Byte - Registrador/Registrador
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 1 REG R/M
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Instrução W
Tab. 2: Instrução de 2 Byte - Registrador/Memória
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
MOD REG R/M
  1. 18/02/2025 - revisão 1 - ajustes pontuais
  2. 01/11/2024 - versão inicial