Buscar

UNIDADE 16 - Microprocessador comercial, funcionamento e conjunto de instruções

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Microprocessador comercial: 
funcionamento e conjunto de instruções
APRESENTAÇÃO
Historicamente, sistemas microprocessados são utilizados desde a década de 1940, quando eram 
executadas funções específicas utilizando-se conjunto de válvulas. Com o passar do tempo e 
com a evolução do semicondutor, foram surgindo alguns circuitos integrados dedicados a 
algumas funcionalidades. Foi então que, no início da década de 1970, surgiu o primeiro 
microprocessador Intel, conhecido como Intel 4004, com o propósito de gerenciar uma 
calculadora.
Nesta Unidade de Aprendizagem, você conhecerá uma evolução do microprocessador 4004, 
denominado Intel 8086, que tem sua arquitetura de 16 bits, sendo vastamente utilizado no 
mercado atual.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Identificar a arquitetura básica de um microprocessador Intel.•
Descrever a operação de barramento multiplexado do microprocessador Intel.•
Relacionar os grupos de instruções de um microprocessador Intel.•
DESAFIO
Em um sistema de automação para estacionamentos, deseja-se apresentar o número de vagas 
livres em um espaço que apresenta 16 vagas. Para isso, utilizam-se sensores óticos que, quando 
a vaga está ocupada, demonstram nível lógico baixo e, quando a vaga está livre, nível lógico 1. 
Os dados desses sensores são passados de forma serial para o microprocessador Intel 8086 e 
armazenados em um registrador de 16 bits, nomeado NÚMERO.
Escreva um código em assembly que trate esse registrador de 16 bits e apresente o número de 
vagas livres em um registrador nomeado RESULT.
INFOGRÁFICO
As Unidades de Execução (EU) são responsáveis por processar as instruções; é nessas unidades 
que estão presentes os recursos para decodificação e execução das tarefas. Uma EU é composta 
por registradores de dados ou de propósito geral, ponteiros, registradores de estados ou flags, 
barramento de dados de 16 bits e pela unidade lógica e aritmética, ao passo que a Unidade de 
Interface de Barramento (BIU) é designada a fazer a intermediação entre a EU e os barramentos 
de dados e de endereços do meio externo. Além disso, é capaz de controlar a transmissão de 
sinais de endereços, dados e controle, gerenciando, assim, a sequência de busca e execução de 
instruções. Para isso, é composta por 5 registradores de 16 bits, uma fila de armazenamento de 
até 4 bytes de instruções e um sistema com endereçamento de 20 bits a partir de registradores de 
16 bits. 
Neste Infográfico, são apresentados, em um diagrama de blocos, os registradores contidos no 
Intel 8086, mostrando de forma gráfica a dinâmica do sistema digital e as suas interligações.
Conteúdo interativo disponível na plataforma de ensino!
CONTEÚDO DO LIVRO
Cada microprocessador apresenta suas características particulares, o que define suas devidas 
aplicações. É importante conhecer cada detalhe do microprocessador que será utilizado em seu 
sistema, para que você possa utilizar seus recursos de forma mais precisa. Os detalhes 
construtivos são apresentados na folha de dados do dispositivo.
Leia o capítulo Microprocessador comercial: funcionamento e conjunto de instruções, do 
livro Sistemas digitais. Nele, você verá uma interpretação da folha de dados do Intel 8086 e terá 
um descritivo básico das funcionalidades de cada recurso.
Boa leitura.
SISTEMAS 
DIGITAIS 
Ruahn Fuser
Microprocessador 
comercial: funcionamento 
e conjunto de instruções
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Identificar a arquitetura básica de um microprocessador Intel.
  Descrever a operação de barramento multiplexado do microproces-
sador Intel.
  Relacionar os grupos de instruções do microprocessador Intel.
Introdução
Um microprocessador é caracterizado por um sistema digital formado 
por um conjunto de transistores, subdividido em alguns blocos deno-
minados recursos básicos, tais como: registradores, unidade lógica e 
aritmética (ULA) e contadores para controle de endereços. Capaz de 
realizar instruções por meio de uma notação legível de código de má-
quina, esse sistema pode ser classificado como um chip programável. Ele 
aceita algoritmos em diferentes linguagens de programação por meio 
de compiladores específicos.
Na década de 1970, foi criada uma calculadora a partir do chip Intel 
4004 de 4 bits, primeiro sistema eletrônico a utilizar um microprocessador 
comercial. O Intel 4004 foi construído com 2.300 transistores, com um 
barramento de 4 bits e capacidade para endereçar 640 bytes de memória. 
Ele trabalhava a 740 kHz e era capaz de realizar até 92 mil instruções por 
segundo. Atualmente, os microprocessadores estão presentes na maioria 
dos dispositivos eletrônicos, como televisores, notebooks, videogames, 
sistemas automotivos e controladores para automação industrial.
U N I D A D E 4 
C08_Sistemas_Digitais.indd 1 23/08/2018 15:31:15
Neste capítulo, você vai estudar o dispositivo Intel 8086, que é uma 
evolução do Intel 4004 e vem sendo muito utilizado em sistemas ele-
trônicos. Para isso, você vai ver alguns detalhes do dispositivo, como 
arquitetura básica e recursos disponíveis, barramentos de fluxo de in-
formações e microinstruções.
Arquitetura básica do Intel 8086
Também conhecida como arquitetura x86, a organização dos processadores da 
família 8086 foi baseada na arquitetura CISC (Complex Instruction Set Com-
puter ou computador com conjunto complexo de instruções). A organização do 
hardware que realiza os processos pode ser subdividida em duas partes bem 
defi nidas: EU (Execution Unit ou unidade de execução) e BIU (BUS Interface 
Unit ou unidade de interface de barramento). 
Unidade de execução
Essa unidade é responsável por processar as instruções. Nela estão presentes 
os recursos para decodifi cação e execução das tarefas. Ela é composta por 
registradores de dados ou de propósito geral, ponteiros, registradores de 
estados ou fl ags, barramento de dados de 16 bits e unidade lógica e aritmética.
Registradores de dados ou propósito geral
A unidade de execução possui quatro registradores de 16 bits que podem ser 
utilizados nas operações lógicas e aritméticas. Tais registradores podem ser 
utilizados com 16 ou 8 bits, pois são subdivididos da seguinte forma.
  AX: conhecido como “acumulador”, é utilizado em operações aritmé-
ticas e lógicas, em instruções de entrada/saída, conversões, etc. Pode 
ser dividido em dois registradores de 8 bits com acesso independente: 
AH, o byte mais significativo, e AL, o byte menos significativo.
  BX: conhecido como “base”, é utilizado para referenciar posições de 
memória, gerenciamento de tabelas, etc. Pode ser dividido em dois 
registradores de 8 bits com acesso independente: BH, o byte mais 
significativo, e BL, o byte menos significativo.
  CX: conhecido como “contador”, é utilizado como índice em operações 
de repetição, podendo ser incrementado ou decrementado. Pode ser 
Microprocessador comercial: funcionamento e conjunto de instruções2
C08_Sistemas_Digitais.indd 2 23/08/2018 15:31:15
dividido em dois registradores de 8 bits com acesso independente: CH, 
o byte mais significativo, e CL, o byte menos significativo. O CL pode 
ser visto como um contador de 8 bits.
  DX: conhecido como “dados”, é utilizado em operações aritméticas 
e lógicas, em instruções de entrada/saída, conversões, etc. Pode ser 
dividido em dois registradores de 8 bits com entrada independente: DH, 
o byte mais significativo, e DL, o byte menos significativo.
Em alguns casos, o DX é utilizado como uma extensão do AX para armazenar valores de 
32 bits. Por exemplo, no caso de instrução de multiplicações, é possível armazenar um 
resultado de 32 bits pode meio de AX concatenado com DX. Outro exemplo é o caso 
de divisão em que o DX é utilizado para armazenar o resto da operação. Além disso, o 
DX também pode ser utilizado para especificar o endereço de portas de entrada/saída.
PonteirosA unidade de execução possui quatro registradores de 16 bits que são utilizados 
como ponteiros para indicar algum local de uma memória específi ca ou o 
acesso aos dados no segmento da pilha. Veja a seguir.
  SP (Stack Pointer): é o apontador de pilha. É o índice que aponta para 
o topo da pilha utilizada para armazenar endereços da memória de 
programa quando o código é desviado a partir de uma interrupção ou 
uma chamada de função.
  BP (Base Pointer): é o apontador de base. É utilizado para endereça-
mento de memória, indexando o endereço inicial de uma tabela que 
será manipulada pela CPU. Geralmente é utilizado em conjunto com a 
SS e permite acesso de dados dentro do segmento de pilha.
  SC (Source Index): é o índice fonte. É utilizado em conjunto com o 
DS para realizar endereçamento indireto, ou seja, pode apontar para a 
origem de dados que se deseja movimentar.
  DI (Destination Index): é o índice destino. É utilizado em conjunto 
com o ES para realizar endereçamento indireto, ou seja, pode apontar 
para o destino dos dados que serão movimentados.
3Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 3 23/08/2018 15:31:15
A utilização dos ponteiros SI e DI em conjunto facilita a movimentação de dados 
sequenciados entre posições fonte, indicadas por SI, e destino, indicadas por DI. Os 
ponteiros são muito utilizados em operações com strings.
Registrador de estado ou flags
Também conhecido como PSW (Program Status Word), possui um registrador 
de 16 bits, utilizado como bits individuais que indicam propriedades do sistema. 
Veja a organização do registrador de estado na Figura 1.
Figura 1. Organização do registrador de estado.
Fonte: Adaptada de Carvalho (2000, documento on-line).
A seguir, você pode ver o significado das flags.
  X: não utilizado e geralmente inicializado como zero.
  OF (Overflow Flag): é o erro de transbordamento. Indica um estouro 
na capacidade de um registrador:
 ■ 1 = houve erro de transbordamento;
 ■ 0 = não houve erro de transbordamento.
  DF (Direction Flag): é a flag de direção. Indica a direção em que as 
operações com os registradores SI e DI estão sendo realizadas:
 ■ 1 = os registradores SI e DI estão sendo decrementados;
 ■ 0 = os registradores SI e DI estão sendo incrementados.
  IF (Interrupt Flag): é a flag de interrupção. Indica se as interrupções 
estão habilitadas:
 ■ 1 = interrupções habilitadas;
 ■ 0 = interrupções desabilitadas.
  TG (Trap Flag): é a armadilha. Utilizada para depuração de programas, 
colocando o chip em modo de debug:
 ■ 1 = indica que após a próxima instrução ocorrerá uma interrupção. 
A própria interrupção limpa essa flag;
 ■ 0 = caso contrário.
Microprocessador comercial: funcionamento e conjunto de instruções4
C08_Sistemas_Digitais.indd 4 23/08/2018 15:31:15
  SG (Sign Flag): é a flag de sinal. Indica se o resultado de uma operação 
é positivo ou negativo em termos de aritmética de complemento de 2 
(a operação dessa flag é dependente de OF):
 ■ 1 = resultado negativo;
 ■ 0 = resultado positivo.
  ZF (Zero Flag): é a flag de zero. Indica se o resultado da última operação 
lógica ou aritmética é igual a zero:
 ■ 1 = igual a zero;
 ■ 0 = diferente de zero.
  AF (Auxiliar Carry Flag): é a flag de carry auxiliar. Utilizada em 
instruções com códigos BCD:
 ■ 1 = quando ocorre um carry ou “vai um” do bit 3 para o bit 4 em 
uma operação de soma, ou o não empréstimo do bit 4 para o bit 3 
em uma subtração;
 ■ 0 = caso contrário.
  PF (Parity Flag): é a flag de paridade. Indica um número par de números 
1 no byte inferior do resultado de alguma operação lógica ou aritmética:
 ■ 1 = número par;
 ■ 0 = número ímpar.
  CF (Carry Flag): é a flag de “vai um”. Indica que em uma operação 
de soma ou subtração sobrou um bit. Na soma, o bit é definido como 
“vai um”; na subtração, como “empréstimo”. Também é utilizada em 
algumas instruções de rotação e deslocamento, quando o último bit do 
registrador possui nível lógico 1:
 ■ 1 = nível lógico do bit sobrando deve ser tratado;
 ■ 0 = não houve necessidade de tratamento na operação.
Unidade de interface de barramento
Essa unidade faz a intermediação entre a EU e os barramentos de dados e de 
endereços do meio externo. Além disso, é capaz de controlar a transmissão 
de sinais de endereços, dados e controle, gerenciando a sequência de busca e 
execução de instruções. Para isso, é composta por cinco registradores de 16 
bits, uma fi la de armazenamento de até 4 bytes de instruções e um sistema 
que faz o endereçamento de 20 bits a partir de registradores de 16 bits. Você 
pode conhecer melhor tais recursos a seguir.
5Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 5 23/08/2018 15:31:15
Registradores de segmentos
São registradores de 16 bits utilizados para endereçamento de memória, tanto 
para instruções quanto para dados e pilhas. Os segmentos são blocos de me-
mória endereçáveis de 64 Kbytes. Durante a execução de um procedimento, 
há ao menos quatro segmentos ativos, descritos a seguir.
  CS (Code Segment): é o segmento de código. Endereça o segmento 
onde estão as instruções que serão executadas pela CPU.
  SS (Stack Segment): é o segmento de pilha. Endereça o segmento 
reservado à pilha para gerenciamento de chamadas de sistema.
  DS (Data Segment): é o segmento de dados. Endereça o segmento onde 
estão os dados que são manipulados pela CPU.
  ES (Extra Segment): é o segmento de dados extras. Endereça um seg-
mento extra para dados. É geralmente utilizado para manipulação de 
tabelas e strings.
Ponteiros
Essa unidade possui um registrador de 16 bits dedicado a trabalhar junto ao 
program counter.
  IP (Instruction Pointer): é o ponteiro de instruções. É utilizado em 
conjunto com o CS para saber o endereço da próxima instrução a ser 
executada. É automaticamente incrementado em função do tamanho 
em bytes da instrução executada, de modo a apontar sempre para a 
instrução seguinte.
Fila de instruções
Essa unidade possui uma fi la com seis registradores de 16 bits para armazenar 
instruções que serão executadas pela CPU. É esse recurso que permite o 
pipeline durante a execução do programa.
Unidade de geração de endereços
É uma unidade que transforma os endereços contidos nos registradores de 
segmentos de 16 bits em valores de 20 bits. Esse circuito faz a interface entre 
os circuitos internos e externos do sistema.
Microprocessador comercial: funcionamento e conjunto de instruções6
C08_Sistemas_Digitais.indd 6 23/08/2018 15:31:16
Dinâmica do barramento multiplexado
A BIU realiza a interface entre os sinais de dados, endereços e controle in-
ternos e os periféricos externos ao componente. Porém, para trabalhar com 
uma quantidade de pinos reduzida, o Intel 8086 possui um barramento que 
utiliza os mesmos pinos para endereço e dados. Para entender melhor como 
funciona o barramento multiplexado, você deve primeiro observar quais são 
os pinos disponíveis para essa função. Na Figura 2, a seguir, você pode ver a 
disposição física dos pinos.
Figura 2. Pinos do Intel 8086.
Fonte: Adaptada de Intel (1990, documento on-line).
Pinos de dados e endereços do barramento multiplexado
Os pinos de dados e endereços são compartilhados para enviar e receber 
informações conforme a confi guração do pino ALE.
7Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 7 23/08/2018 15:31:16
  AD15 – AD0: esses pinos são o barramento multiplexado propriamente 
dito. Eles integram os 16 bits que transportam os dados e os endereços.
  A19 – A16: esses pinos transportam os 4 bits restantes do endereço. Porém, 
eles têm uma segunda função: indicar o status em algumas operações.
  : transporta um sinal que indica que os dados contidos nos 8 
bits mais significativos do barramento são dados válidos.
Pino 
Esse pino tem a importante função de defi nir o modo de operação do proces-
sador.Existem dois modos de operação, como você pode ver a seguir.
  Modo mínimo: o processador gera todos os sinais de controle para 
o barramento multiplexado (HLDA, WR, M/IO, DT/R, DEN, ALE e 
INTA), além de possuir uma entrada de controle denominada HOLD. 
Você vai conhecer melhor todos esses sinais de controle adiante.
  Modo máximo: o processador não gera os sinais de controle, que devem 
ser gerados por outro processador que trabalha em conjunto. Ou seja, 
esse modo é utilizado para sistemas que contam com coprocessadores.
Pinos de controle
Os pinos de controle servem para gerenciar as operações realizadas por dis-
positivos externos. Cada pino possui funções específi cas, descritas a seguir.
QS0 (ALE)
No modo mínimo, assume o address latch enable (endereço habilitado). Já no 
modo máximo, representa queue status 0 (estado da fi la 0). 
  Modo mínimo:
 ■ ALE = 1 — indica que o barramento multiplexado está sendo usado 
para transportar um endereço;
 ■ ALE = 0 — caso contrário.
  Modo máximo:
 ■ QS0 — é utilizado junto ao QS1 para indicar o estado da fila em 
bytes na entrada da EU.
Microprocessador comercial: funcionamento e conjunto de instruções8
C08_Sistemas_Digitais.indd 8 23/08/2018 15:31:16
No modo mínimo, assume o data transmit/receive (transmissão e recepção 
de dados). Já no modo máximo, representa a linha de status S1.
  Modo mínimo:
 ■ = 1 — indica que o processador está transmitindo dados;
 ■ = 0 — indica que o processador está recebendo dados.
  Modo máximo:
 ■ — é utilizado junto ao e ao para indicar qual operação 
está sendo executada.
No modo mínimo, assume o write (escrita). Já no modo máximo, representa 
locked (trancado).
  Modo mínimo:
 ■ = 1 — caso contrário;
 ■ = 0 — indica que o processador está executando uma operação 
de escrita.
  Modo máximo:
 ■ = 1 — caso contrário;
 ■ = 0 — indica que outros processadores não devem tentar 
tomar o barramento de sistema pois o 8086 não atenderá a uma 
solicitação HOLD.
 
No modo mínimo, assume o memory/InputOutput (memória/EntradaSaída). 
Já no modo máximo, representa a linha de status S2. 
  Modo mínimo:
 ■ = 1 — indica que as linhas de endereço se referem ao espaço 
de endereçamento de memória;
 ■ = 0 — indica que as linhas de endereço se referem ao espaço 
de endereçamento de I/O.
  Modo máximo:
9Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 9 23/08/2018 15:31:16
 ■ — é utilizado junto ao e ao para indicar qual operação 
está sendo executada.
No modo mínimo, assume o data enable (dados habilitados). Já no modo 
máximo, representa a linha de status S0. 
  Modo mínimo:
 ■ — indica que o barramento está sendo utilizado para transportar 
dados ou status.
  Modo máximo:
 ■ — é utilizado junto ao e ao para indicar qual operação 
está sendo executada.
RD
Conhecido como read (leitura), indica que o processador está executando 
uma operação de leitura.
READY
Em português, ready signifi ca “pronto”. Indica que o processador já pode 
concluir uma operação de leitura ou escrita. Pode ser usado para solicitar à 
CPU um tempo de espera para executar toda a operação.
Os barramentos são normalmente utilizados para interconectar vários periféricos, 
oferecendo assim uma carga considerável. As CPUs são projetadas para fornecer, pelo 
barramento, um tipo de sinal específico, não possuindo alta capacidade de corrente. 
Logo, para suportar as intercomunicações entre dispositivos, são necessários ampli-
ficadores de correntes intermediários denominados drivers, que fornecem a corrente 
necessária para a CPU entregar seus sinais ao barramento, e receivers, utilizados para 
retirar os sinais do barramento. Para linhas bidirecionais, são utilizados um driver e um 
receiver, conjunto denominado transceiver.
Microprocessador comercial: funcionamento e conjunto de instruções10
C08_Sistemas_Digitais.indd 10 23/08/2018 15:31:16
Pinos de arbitragem do barramento
Os pinos de controle servem para gerenciar as operações realizadas por dis-
positivos externos. Cada pino possui funções específi cas, como você pode 
ver a seguir.
RQ0/GT0 (HOLD)
No modo mínimo, assume o hold (manter) e permite que um periférico controle 
o barramento. Quando habilitado, todos os sinais de controle são confi gurados 
como alta impedância. Já no modo máximo, representa request/grant (solicitar/
conceder) e funciona de forma bidirecional, com a função de conceder ou 
solicitar o controle do barramento.
RQ1/GT1 (HLDA)
No modo mínimo, apresenta a resposta para a solicitação de HOLD. Já no modo 
máximo, representa request/grant (solicitar/conceder) e funciona de forma 
bidirecional, com a função de conceder ou solicitar o controle do barramento.
Além dos pinos de controle do barramento multiplexado, 
existem alguns poucos que não foram devidamente apre-
sentados nesta seção. O datasheet do microprocessador Intel 
8086 apresenta todos os elementos descritos de forma sucinta 
e prática. Vale a pena conferir no link ou código a seguir.
https://goo.gl/Nkga2c
Microinstruções assembly
A microinstrução do Intel 8086 é baseada em arquitetura CISC, como você 
já viu. Dessa forma, as microinstruções podem assumir tamanhos variados. 
A seguir, você vai conhecer alguns detalhes da programação em linguagem 
de montagem do 8086.
11Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 11 23/08/2018 15:31:17
Sintaxe assembly
Alguns pontos são importantes para um melhor entendimento durante a exe-
cução de programas em linguagem assembly. Veja: 
  A linguagem assembly não é case-sensitive, ou seja, não diferencia letra 
maiúscula de letra minúscula. Uma sugestão para os códigos é usar 
letra maiúscula para o código e letra minúscula para os comentários.
  As instruções, que serão definidas a seguir, com seus respectivos mne-
mônicos e operandos, são convertidas por meio de seus opcodes (códigos 
de operações) para linguagem de máquina.
  As diretivas são auxiliares de organização. São utilizadas pelo com-
pilador e auxiliam na montagem, sempre realizando alguma tarefa 
específica, tal como: alocar espaços de memória, criar sub-rotinas, 
definir valores fixos, etc.
  Uma linha de comentário é iniciada com “;” e é utilizada para docu-
mentação durante um código. É importante inserir comentários sucintos 
que auxiliem, posteriormente, na manutenção dos algoritmos.
A declaração de uma instrução pode assumir diferentes formatos e, as-
sumindo diferentes formatos, pode ser utilizada com objetivos distintos. O 
formato base para a declaração é:
[LABEL:]
[MNEMÔNICO] [OPERANDOS] [; comentário]
A label (rótulo) é utilizada para a organização do código, e o montador a 
traduzirá posteriormente para um endereço de memória de programa.
Os operandos podem assumir zero, um ou dois valores distintos, conforme 
o mnemônico utilizado. É esse detalhe que torna o assembly com tamanhos 
de opcodes variados.
NOP ; sem operandos: não realiza nada.
DEC DX ; um operando: decrementa 1 de DX.
SUB DX, 8d ; dois operandos: subtrai 8 de DX e guarda 
o resultado em DX.
Microprocessador comercial: funcionamento e conjunto de instruções12
C08_Sistemas_Digitais.indd 12 23/08/2018 15:31:17
Já os mnemônicos são os códigos dos operadores, ou as microinstruções 
possíveis contidas no papel de dados do microprocessador. Tal linguagem 
de montagem está subdividida, no Intel 8086, em seis grupos principais: 
transferência de dados, funções aritméticas, funções lógicas, manipulação 
de strings, controle de fluxo e controle de processador. Você pode conhecer 
melhor os grupos a seguir.
Transferência de dados
Utilizada para a manipulação de dados durante um procedimento, como mover, 
desempilhar, carregar, etc.
Estrutura: 
 MOV DESTINO, FONTE
MOV D0, D1 ; move o valor contido na variável D1 para 
a variável D0. 
MOV DX, Ah ; move o valor decimal 10 para o registrador 
DX.
Funções aritméticas
São responsáveis por realizar a matemáticacom registradores. Usualmente, em mi-
croprocessadores estão disponíveis operações matemáticas com números binários.
Estrutura: 
 ADD DESTINO, FONTE
ADD D0, D1 ; soma o valor contido na variável D1 à 
variável D0 e guarda o resultado ; em D0. 
ADD DX, Fh ; soma o valor decimal 15 ao registrador DX 
e guarda em DX.
13Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 13 23/08/2018 15:31:17
Funções lógicas
São operações lógicas realizadas entre registradores. É importante tomar cui-
dado, pois tais operações são realizadas bit a bit com os valores de registradores.
Estrutura: 
NOT REGISTRADOR
NOT D0 ; inverte o valor contido no registrador 
D0. 
Manipulação de strings
São instruções dedicadas à manipulação de strings. Essas instruções são 
interligadas diretamente com os registradores de segmentos apresentados 
no item BIU.
Estrutura: 
 MOVS 
MOVSB ; move um byte do segmento [DS:SI] para o segmento 
[ES:DI]. 
MOVSW ; move uma word do segmento [DS:SI] para o segmento 
[ES:DI].
Microprocessador comercial: funcionamento e conjunto de instruções14
C08_Sistemas_Digitais.indd 14 23/08/2018 15:31:17
Controle de fluxo
Tais instruções geralmente manipulam o program counter do processador. 
Servem para gerenciar o fl uxo do programa e realizar algumas estratégias 
de programação. Além disso, permitem a chamada de funções e o desvio da 
sequência natural da execução do programa.
Estrutura: 
 JMP DESTINO
JMP LABEL ; pula para o endereço de memória de programa 
contido em label.
JMP 00h ; pula para o vetor de reset (endereço 00h) 
do microprocessador. 
Controle de processador
Realiza algumas funções especiais para o gerenciamento do processador.
Estrutura: 
 CLC 
CLC ; essa instrução limpa a flag carry.
Para programar em assembly, é importante conhecer todas as microins-
truções do microprocessador em uso. Para isso, acesse a folha de dados do 
dispositivo e procure pelo descritivo de microinstruções para conhecer o 
restante das instruções.
15Microprocessador comercial: funcionamento e conjunto de instruções
C08_Sistemas_Digitais.indd 15 23/08/2018 15:31:17
Microprocessador comercial: funcionamento e conjunto de instruções16
C08_Sistemas_Digitais.indd 16 23/08/2018 15:31:17
CARVALHO, M. B. Os microprocessadores 8086/88: hardware. [2000?]. Disponível em: 
<http://www.telecom.uff.br/orgarqcomp/Slides/OrgComp_pt3_Hardware_8086.
pdf>. Acesso em: 21 ago. 2018.
INTEL. 8086 16-BIT HMOS microprocessor 8086/8086-2/8086-1. 1990. Disponível em: 
<https://pt.scribd.com/document/21242899/8086-Datasheet>. Acesso em: 22 ago. 2018.
Leituras recomendadas
BARRETTO, M. Microprocessadores. 2000. Disponível em: <http://engeletrica.sobral.
ufc.br/professores/marcelo/Micro/Apostila_Microprocessadores.pdf>. Acesso em: 
22 ago. 2018.
INTEL. 4004 single chip 4-BIT P-channel microprocessor. 1987. Disponível em: <http://
www.applelogic.org/files/4004Data.pdf>. Acesso em: 22 ago. 2018.
PANNAIN, R. Arquitetura do microprocessador 8086. [2000]. Disponível em: <http://www.
ic.unicamp.br/~pannain/mc404/aulas/pdfs/OBCLM2.pdf>. Acesso em: 22 ago. 2018.
WEBER, R. F. Fundamentos da arquitetura de computadores. 4. ed. Porto Alegre: Book-
man, 2012.
DICA DO PROFESSOR
Uma das funções da unidade de interface de barramentos é gerar os endereços de 20 bits, de 
acordo com a instrução a ser executada. Para cada tipo de instrução, o endereço é gerado de uma 
forma distinta e utiliza sempre registradores especiais, tais quais os que já foram vistos até o 
momento.
Na Dica do Professor, você vai encontrar, de forma detalhada, como a BIU processa cada tipo 
de instrução e cria os endereços de 20 bits para serem utilizados pelo sistema.
Conteúdo interativo disponível na plataforma de ensino!
EXERCÍCIOS
1) Sabendo-se que VAR1 e VAR2 são variáveis de 32 bits contidas nos endereços de 
memória [1024:1026] e [1028:1030], respectivamente, qual o valor contido nos 
endereços de memória [1032:1030], em decimal, no fim do trecho apresentado 
abaixo?
MOV 1026, FFh 
MOV 1024, A2h 
MOV 1030, 0Ah 
MOV 1028, F1h 
MOV R0,1026 
ADD R0,1030 
MOV 1034, R0 
MOV R0, 00h 
ADC R0 
ADD R0, 1024 
ADD R0, 1028 
MOV 1032, R0 
HLT
A) 68243.
B) 245.
C) 16452.
D) 68350.
E) 68255.
2) Sobre prefetch, analise as seguintes afirmações e assinale a correta:
A) Acontece quando o microprocessador faz tratamento prévio de dados.
B) É a prática de buscar informações pré-definidas.
C) É realizada pela EU, de forma que, quando a CPU se encontra ocupada, a EU empilha 
instruções que serão posteriormente executadas.
D) Por serem (a EU e a BIU) independentes entre si, é possível que a BIU realize o 
barramento externo para efetuar buscas prévias de instruções. Essa prática é denominada 
prefetch.
E) A fila utilizada para prefetch é conhecida como memória cache.
3) Sobre a dinâmica de trabalho do barramento multiplexado, assinale a alternativa 
correta:.
A) O mesmo barramento pode ser utilizado para enviar e receber dados para os periféricos 
externos, mas não para trabalhar com endereços. 
B) O mesmo barramento pode ser utilizado para enviar e receber endereços para os 
periféricos externos, mas não para trabalhar com dados. 
C) O mesmo barramento pode ser utilizado para enviar e receber dados e endereços para os 
periféricos externos, devendo, os sinais de controle, ser realizados de forma independente 
ao barramento.
D) O barramento multiplexado é utilizado para dados e endereços, além de possuir pinos de 
controle para funções de coprocessamento.
E) O barramento multiplexado serve para alimentação elétrica do microprocessador.
4) Sobre a Unidade de Execução (EU), analise as seguintes alternativas e assinale a 
correta:
A) É na EU que está presente a ULA (Unidade Lógica e Aritmética), responsável por todo o 
gerenciamento dos periféricos.
B) A EU apresenta registradores de segmentos que são utilizados como auxiliares em 
operações aritméticas.
C) A ULA (Unidade Lógica e Aritmética) é responsável por executar algumas instruções, 
além de fazer acesso a flags de estado.
D) O barramento principal da EU possui 20 bits e serve para trocar dados com dispositivos 
externos.
E) A EU é totalmente dependente da BIU e sempre fica ociosa, aguardando que esta forneça a 
próxima instrução.
Sobre a Unidade de Interface de Barramento (BIU), analise as seguintes alternativas 5) 
e assinale a correta:
A) A BIU é responsável por gerar o endereço de 20 bits, a fim de fazer acesso à memória 
necessária para a execução de uma instrução.
B) Os registradores de segmento são utilizados para armazenar dados de instruções que serão 
posteriormente executadas.
C) O ponteiro de instrução aponta para a função previamente executada. Dessa forma, é 
possível realizar resgate de valores perdidos.
D) Os registradores de uso geral fazem parte da BIU e servem como auxiliares na geração dos 
endereços de barramento. 
E) A BIU tem o objetivo de gerenciar a execução das instruções, fazendo sempre o controle 
de estados por meio de flags.
NA PRÁTICA
Na prática, os códigos geralmente são criados em linguagem C, por ser uma linguagem mais 
intuitiva e de fácil manipulação. Além disso, alguns ambientes de desenvolvimentos permitem 
que sejam criados programas mesclando-se a linguagem C com a linguagem assembly.
É interessante que se analise como as instruções em C são compiladas em assembly em cada 
microcontrolador. Isso proporciona ao desenvolvedor melhor controle do dispositivo e ajuda a 
criar soluções mais eficientes. Apresenta-se, então, um trecho de código muito utilizado 
em linguagem C (laço de repetição FOR ) e como ele seria compilado para a linguagem 
assembly do Intel 8086.
SAIBA +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do 
professor:
Processador CISC e RISC
Neste vídeo você verá a definição de processadores com arquitetura RISC e CISC, além de suas 
diferenças.
Conteúdo interativodisponível na plataforma de ensino!
Arquitetura do conjunto de instruções
Assista, nesta aula, as definições e características de uma arquitetura do conjunto de instruções.
Conteúdo interativo disponível na plataforma de ensino!
Datasheet do microprocessador 80c86, da Intersil
O datasheet mostra a disposição dos recursos do processador, assim como as instruções que 
podem ser utilizadas na confecção de códigos em assembly.
Conteúdo interativo disponível na plataforma de ensino!

Outros materiais