MICROPROCESSADORES E MICROCONTROLADORES



Documentos relacionados
MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

2.5 - Instruções Lógicas do ULA

Experiência 1 -Introdução ao Módulo Didático MC-1 e Instruções de Transferência de Dados

Símbolos e abreviaturas utilizadas na descrição das instruções

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

MICROPROCESSADORES E MICROCONTROLADORES Parte 1

Estrutura Básica de um Computador

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

Arquitetura de Computadores

Solução Lista de Exercícios Processadores

Elementos Físicos do SC e a Classificação de Arquiteturas

14/3/2016. Prof. Evandro L. L. Rodrigues

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

ELE Microprocessadores I. AULA 12 Arquitetura do Microprocessador Interface com as memórias

FACULDADE LEÃO SAMPAIO

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PROF. DEJAIR PRIEBE

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS -

Organização e Projeto de Computadores

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

MICROPROCESSADORES E MICROCONTROLADORES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Introdução a Tecnologia da Informação

Aula 10 Microcontrolador Intel 8051 Parte 1

Componentes de um Computador Típico

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

ARQUITETURA DE COMPUTADORES. Nível da Lógica Digital. Prof.: Agostinho S. Riofrio

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

COMPUTADOR. Adão de Melo Neto

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

Processador. Processador

Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

Conjunto de Instruções e Modelos de Arquiteturas

Organização de Computadores Aula 05

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

SSC512 Elementos de Lógica Digital. Memórias. GE4 Bio

Curso Técnico de Nível Médio

Componentes de um computador Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial MICROCONTROLADORES PROFESSOR FLÁVIO MURILO

Organização de Computadores

Conjunto de Instruções e Modelos de Arquiteturas

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

MICROPROCESSADORES E MICROCONTROLADORES Parte 1

1. Sistemas de numeração e códigos 23

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Prof. Leonardo Augusto Casillo

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Introdução à Organização de Computadores. Aula 8

INFORMÁTICA (NCINF) CONCEITOS BÁSICOS DE HARDWARE

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

Prof. Gustavo Oliveira Cavalcanti

MICROCOMPUTADORES. Professor Adão de Melo Neto

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

Aula 14 Funcionamento de Processadores (Visão específica)

2. A influência do tamanho da palavra

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

Hardware. Componentes Básicos e Funcionamento

Unidade Central de Processamento UCP (CPU)

UCP 8051 (parte 02) Professor Adão de Melo Neto

- Arquitetura de sistemas digitais- Cap 2 Arquitetura de computadores

COMPUTADOR. Adão de Melo Neto

Hardware. Informática

COMPUTADOR 2. Professor Adão de Melo Neto

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

PSI3441 Arquitetura de Sistemas Embarcados

SSC0611 Arquitetura de Computadores

Arquitetura de Computadores. Arquitetura de Computadores 1

4.3 - DMA & Chipset. CEFET-RS Curso de Eletrônica. Profs. Roberta Nobre & Sandro Silva. e

2. A influência do tamanho da palavra

Prof. Sandro Wambier

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Modelo de Von Neumann: conceito do programa armazenado

INTRODUÇÃO: MICROCONTROLADORES

Organização e Arquitetura de Computadores INTRODUÇÃO

Sistemas de Computação Hardware. Sistema Central Periféricos

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Estrutura de um computador digital. Gustavo Queiroz Fernandes

ELE Microprocessadores I

Organização de Computadores I

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA PRINCIPAL CAPÍTULO 4. Cristina Boeres

Instalação e Manutenção de Computadores Sandra Silva

Capítulo 3 Organização Interna de um Computador

Microcontrolador 8051:

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Roteiro. Sistemas de Computação Hardware. Sistema Central Periféricos

Organização de Memórias

Transcrição:

MICROPROCESSADORES E MICROCONTROLADORES Microprocessador8085 José Wilson Lima Nerys jwilson@eee.ufg.br Goiânia, 2009 1 1 Microprocessador 8085

Evolução de Conhecimentos até Microprocessadores 2 2 Microprocessador 8085

Materiais Elétricos Estudo de materiais isolantes, condutores e semicondutores características. P N Junção PN Diodo P P N P N Transistores de Junção PNP e NPN N P N 3 3 Microprocessador 8085

Eletrônica Aplicações de Diodos e Transistores retificadores, amplificadores, ceifadores, filtros, multivibradores biestáveis. 4 4 Microprocessador 8085

Sistemas Digitais Sistemas de numeração e códigos binários. Portas Lógicas. Álgebra Booleana. Circuitos lógicos combinacionais. Codificadores, decodificadores, multiplexadores e demultiplexadores. Aritmética binária. Circuitos lógicos seqüenciais (contadores e registradores). Flip-flop Porta NAND 5 5 Microprocessador 8085

Contadores Registradores Flip-flops Microprocessador Somadores Codificadores Decodificadores 6 6 Microprocessador 8085

Estrutura Básica de Um Computador 7 7 Microprocessador 8085

CPU 8 8 Microprocessador 8085

Microprocessador É a CPU de um computador construído num único Circuito Integrado. Contém essencialmente a unidade de controle, a unidade lógica e aritmética e registradores. Precisa de periféricos tais como memória e unidade de entrada e saída, para a formação de um sistema mínimo. CPU Registradores Memória Unidade Controle ULA Unidade de Entrada e Saída 9 9 Microprocessador 8085

Microcontrolador Computador completo construído num único Circuito Integrado. Os microcontroladores são normalmente utilizados para aplicações específicas. Eles contêm normalmente portas seriais, portas de entrada e saída paralelas, timers, contadores, controles de interrupção, memórias RAM e ROM. CPU Registradores Unidade Controle ULA Memória Unidade de Entrada e Saída 10 10 Microprocessador 8085

Funções Básicas do Computador: Processamento de dados (ex.: execução de uma adição ou de uma função lógica); Armazenamento de dados (ex.: armazenamento temporário na memória RAM, Disco, DAT, etc.); Movimentação de dados (comunicação com mundo exterior: teclado, monitor, impressora); Controle (controle das funções anteriores). 11 11 Microprocessador 8085

CPU - Central Processing Unit - Unidade Central de Processamento (UCP). É responsável por buscar e executar instruções na memória e também pelo controle do computador. Memória - Local para armazenamento de dados e programas. I/O - Unidade Entrada (Input) e Saída (Output): Promove a movimentação de dados entre o computador e o ambiente externo. 12 12 Microprocessador 8085

Unidade Central de Processamento (CPU) Control Unit - Unidade de Controle (UC) - tem por função básica o controle das demais unidades da CPU. ALU (Aritmetic and Logic Unit) - Unidade Lógica e Aritmética (ULA) - realiza funções básicas de processamento de dados (adição, subtração, funções lógicas, etc.). Registers - Registradores - São usados para o armazenamento interno da CPU. Existem diversos registradores na CPU e o principal deles é chamado de Acumulador. 13 13 Microprocessador 8085

Memória De um modo geral a memória do computador contém: N palavras de tamanho fixo: cada palavra está vinculada a um endereço único) Linhas de controles, sendo as principais: read leitura write escrita 14 14 Microprocessador 8085

Memória RAM Permite a leitura e a gravação de dados. Memória Dinâmica (DRAM) Baixa densidade, mas lenta. Capacitores com circuitos com atualização de dados - refresh. Memória estática (SRAM) Alta densidade. Rápida. Baseada em Flip-flops. Memória CACHE - Pequena quantidade de memória RAM estática (SRAM) usada para acelerar o acesso à memória principal (RAM dinâmica). Quando há necessidade de transferir dados da (para) memória dinâmica, estes são antes transferidos para a memória cache 15 15 Microprocessador 8085

Memória ROM (Read-Only Memory) Memória que permite apenas a leitura, ou seja, as suas informações são gravadas pelo fabricante uma única vez (no caso do tipo PROM) e após isso não podem ser alteradas ou apagadas, somente acessadas. Alguns tipos de memória ROM: PROM (Programmable Read-Only Memory) Podem ser escritas com dispositivos especiais mas não podem mais ser apagadas. EPROM (Erasable Programmable Read-Only Memory) Podem ser apagadas pelo uso de radiação ultravioleta permitindo sua reutilização. EEPROM (Electrically Erasable Programmable Read-Only Memory) O seu contéudo pode ser modificado eletricamente. Memória FLASH São semelhantes às EEPROMs, porém mais rápidas e de menor custo. 16 16 Microprocessador 8085

Unidade de Entrada e Saída (I/O) Há divisão de meio interno (barramento do computador) e meio externo (linhas de acesso a periféricos); Constituído de M Portas (cada uma das interfaces aos periféricos: impressoras, mouse, scanner, vídeo, etc.). Cada uma das portas está vinculada a um endereço ou a uma faixa única de endereços; Envia sinais de interrupção para a CPU. 17 17 Microprocessador 8085

Barramento Meio físico usado para o transporte de um conjunto de sinais digitais usados para comunicação entre o processador, a memória e o meio externo. Barramento de sistema - barramento específico para a comunicação entre o processador e a memória Para a comunicação com os periféricos os três tipos mais comuns de barramento são: barramento ISA, barramento PCI e barramento AGP 18 18 Microprocessador 8085

Barramento ISA (Industry Standard Architecture) originado no IBM PC na versão de 8 bits aperfeiçoado no IBM PC AT / slots de 8 e 16 bits transferência de dados grupos de 8 ou 16 bits / clock de 8 MHz fax/modem, placas de som e placas de rede 19 19 Microprocessador 8085

Barramento PCI (Peripheral Component Interconnect) Desenvolvido pela Intel em 1992 Processador Pentium Taxa de transferência de até 132 MB/s com 32 bits Opera com 32 ou 64 bits Suporte para o padrão PnP (Plug and Play) Clock é geralmente de 33 MHz Placa de vídeo, placa de som, placa de rede, modem, adaptadores USB 20 20 Microprocessador 8085

Barramento PCI - X (PCI Express) O barramento PCI-X é uma extensão do barramento PCI voltado para o mercado de servidores de rede. Opera com 64 bits Clock de até 133 MHz Taxa de Transferência de 533 MB/s a 4.266 MB/s 21 21 Microprocessador 8085

Barramento AGP (Accelerated Graphics Port) Desenvolvido pela Intel - aumentar a taxa de transferência entre a CPU e a placa de vídeo melhorando o desempenho de operação com gráficos Incorporado à CPU de processadores Pentium II mais modernos. Principal vantagem: Uso de maior quantidade de memória para armazenamento de texturas para objetos tridimensionais Alta velocidade no acesso a essas texturas para aplicação na tela 22 22 Microprocessador 8085

Placa Mãe 23 23 Microprocessador 8085

Definições Básicas de Microprocessadores 24 24 Microprocessador 8085

Índice de Desempenho de Processadores O aumento de desempenho (velocidade de processamento) de processadores gira em torno: Aumento de clock Aumento do número interno de bits Aumento do número externo de bits Redução do número de ciclos para executar cada instrução Aumento da capacidade e velocidade da memória cache Execução de instruções em paralelo 25 25 Microprocessador 8085

MIPS - Millions of Instructions Per Seconds (Milhões de Instruções Por Segundo): É uma unidade de desempenho do microprocessador. FLOPS - FLOating point instructions Per Seconds (Instruções com Ponto Flutuante Por Segundo). É também uma unidade de desempenho do microprocessador. Indica a capacidade de trabalhar com números decimais. Representação em Ponto Fixo - Sistema numérico no qual o ponto está implicitamente fixo (à direita do digito mais a direita). Representação em Ponto Flutuante - Sistema numérico no qual um número real é representado por um par distinto de numerais: uma mantissa (ou significante) e um expoente. Possibilita representação de números fracionários. 26 26 Microprocessador 8085

Bit Abreviatura para Binary Digit, ou, Dígito Binário. Pode assumir valor 0, que corresponde a tensão O V, ou 1, que representa normalmente uma tensão de 5 V ou 3,3 V. Byte Conjunto de 8 bits. É a unidade básica de dados nos computadores, que também utilizam alguns múltiplos de 8, tais como 16 bits (Word) e 32 bits (Dword). 27 27 Microprocessador 8085

Set de Instruções Conjunto de Instruções - Conjunto de Mnemônicos (siglas que fazem lembrar uma ação) que representam todas as instruções do processador. Cada processador possui o seu set de instruções particular. O microprocessador 8085 possui 74 instruções. BIOS Basic Input/Output System É o conjunto mínimo de instruções necessárias para a inicialização do computador. Também gerencia o fluxo de dados entre o sistema operacional do computador e os dispositivos periféricos conectados. 28 28 Microprocessador 8085

Alguns Exemplos de Aplicação de Microprocessadores e Microcontroladores Microcomputadores, Calculadoras, Relógios Digitais, Controle de Fornos Micro-ondas, Lavadora de Roupas, Video Games e outros brinquedos, Controle de Motores, Controle de Tráfego, Alarmes e Sistemas de Segurança, Telefone Celular. 29 29 Microprocessador 8085

Alguns Exemplos de Projetos Finais Implementados Usando Microcontroladores na EEEC Controle Escalar de Motor de Indução, Controle de Motor de Corrente Contínua, Sistema de Controle de Portão Eletrônico, Sistema de Controle de Acesso ao Laboratório, Sistema de Controle de Presença em Sala de Aula (Diário Eletrônico), Sistema de Controle de Umidade e Temperatura de uma Sala, Sistema de Monitoramento de Batimentos Cardíacos, Sistema de Monitoramento de Temperatura e Umidade de Estufas, Sistema de Controle de Acesso a Estacionamentos, Sistema de Monitoramento de Tarifação de Telefone, Sistema de Controle para Centrífugas de Apiários, Sistema de Suporte para Deficientes Visuais. 30 30 Microprocessador 8085

Sistemas de Numeração 31 31 Microprocessador 8085

Sistema Posicional Sistema não Posicional 32 32 Microprocessador 8085

Sistema Posicional Sistema não Posicional 33 33 Microprocessador 8085

Sistema Binário - O sistema binário é o sistema de numeração que o computador entende. Utiliza 2 dígitos: 0 e 1 ou (OFF e ON) ou (0V e 5V) ou (0V e 3,3V). Exemplo: 1 1 0 0 1 0 1 1 2 1 o dígito: Armazena o equivalente a 2 0 (1). No ex.: 1 2 0 2 o dígito: Armazena o equivalente a 2 1 (2). No ex.: 1 2 1 3 o dígito: Armazena o equivalente a 2 2 (4). No ex.: 0 2 2 8 o dígito: Armazena o equivalente a 2 7 (128): No ex.: 1 2 7 A soma destas parcelas resulta no seguinte equivalente decimal: 1 + 2 + 0 + 8 + 0 + 0 + 64 + 128 = 203 10 34 34 Microprocessador 8085

No sistema binário a ponderação é dada pelo número 2 elevado à potência representada pela coluna, sendo que a 1 a coluna é 0, a segunda coluna é 1 e assim sucessivamente. 1 kbyte = 2 10 = 1.024 bytes 1 Mbyte = 2 10 x 2 10 = 1.048.576 bytes = 1.024 kbytes; 1 Gbyte = 2 10 x 2 10 x 2 10 = 1.073.741.824 bytes = 1.024 Mbytes 35 35 Microprocessador 8085

Sistema BCD (Binary-Coded Decimal) O Sistema BCD é o sistema em que se combina o sistema binário e o sistema decimal. É utilizado como formato de saída de instrumentos. Utiliza 2 dígitos: 0 e 1 que são dispostos em grupos de 4 dígitos, utilizados para representar um dígito decimal (número 0 até 9). A representação de um número maior que 9 deve ser feita por outro grupo de 4 bits, com a ponderação dada pelo sistema decimal. Exemplo: 973 10 = 1001 0111 0011. Note a diferença entre este valor e o valor do número binário 1001 0111 0011 2 = 2419 10 36 36 Microprocessador 8085

Sistema Octal - O Sistema Octal é baseado nos mesmos princípios do decimal e do binário, apenas utilizando base 8. Utiliza 8 dígitos: 0 a 7. Exemplo: 3207 8 1 o dígito: Armazena o equivalente a 8 0 (1). No ex.: 7 8 0 2 o dígito: Armazena o equivalente a 8 1 (8). No ex.: 0 8 1 3 o dígito: Armazena o equivalente a 8 2 (64). No ex.: 2 8 2 4 o dígito: Armazena o equivalente a 8 3 (512). No ex.: 3 8 3 O equivalente decimal é: 7 + 0 + 128 + 1536 = 1671 10 37 37 Microprocessador 8085

Sistema Hexadecimal - O Sistema Hexadecimal é baseado nos mesmos princípios do decimal e do binário, apenas utilizando base 16. Utiliza 16 dígitos: 0 a 9, A, B, C, D, E, F. Exemplo: 20DH ou 20Dh ou 20D 16 1 o dígito: Armazena o equivalente a 16 0 (1). No ex.:13 16 0 2 o dígito: Armazena o equivalente a 16 1 (16). No ex.: 0 16 1 3 o dígito: Armazena o equivalente a 16 2 (256). No ex.: 2 16 2 O equivalente decimal é: 13 + 0 + 512 = 525 10 38 38 Microprocessador 8085

Conversão de Base O sistema hexadecimal é mais fácil de trabalhar que o sistema binário e é geralmente utilizado para escrever endereços. Na conversão de hexadecimal para binário, cada dígito hexadecimal é convertido em 4 dígitos binários equivalentes. Exemplo: 7 D 3 F 16 = 0111 1101 0011 1111 2 Na conversão de binário para hexadecimal, cada grupo de 4 dígitos binários é convertido em 1 dígito hexadecimal equivalente. Ex.: 1010000110111000 2 = 1010 0001 1011 1000 2 = A 1 B 8 16 39 39 Microprocessador 8085

Conversão de Base Representação: r 2 r 1 r 0 Valor hexadecimal correspondente a 1234: 4D2h 40 40 Microprocessador 8085

Conversão de Base (algoritmo genérico) A divisão termina quando o quociente é zero Se q 0 = 0 Valor = q 0 B+ r 0 = 0.B + r 0 = r 0 Se q1 = 0 Valor = q 0 B+ r 0 q 0 = q 1.B + r 1 = 0.B + r 1 = r 1 ou, Valor = r 1.B+ r 0 Representação: r 1 r 0 Se q2 = 0 Valor = q 0 B+ r 0, q 0 = q 1.B + r 1 q 1 = q 2.B + r 2 = 0.B + r 2 = r 2 Valor = r 2 B 2 + r 1 B + r 0 Representação: r 2 r 1 r 0 41 41 Microprocessador 8085

Representação de números positivos e negativos 42 42 Microprocessador 8085

Valor Simétrico de um Número Número binário: a = (complemento de 1 de a) + 1 = = complemento de 2 de a = 2 n a Número decimal: a = (complemento de 9 de a) + 1 = = complemento de 10 de a = 10 n a 43 43 Microprocessador 8085

Subtração Usando Adição Número binário: a b = a + (complemento de 2 de b) a b = a + (2 n b) Exemplo para um número binário de 4 dígitos: a 1 = a + (2 4 1) = a + (10000 0001) = a + 1111 a 3 = a + (2 4 3) = a + (10000 0011) = a + 1101 Se a = 1001 (9 10 ) a 1 = 1001 0001 = 1000 a 3 = 1001 0011 = 0110 ou a 1 = 1001 + 1111 = 1 1000 (despreza-se o quinto dígito) a 3 = 1001 + 1010 = 1 0110 (número é de 4 dígitos) 44 44 Microprocessador 8085

Subtração Usando Adição Número decimal: a b= a + (complemento de 10 de a) a b = a + (10 n b) Exemplo para um número decimal de 2 dígitos: a 1 = a + (10 2 1) = a + (100 1) = a + 99 a 3 = a + (10 2 3) = a + (100 3) = a + 97 Se a = 94 a 1 = 94 1 = 93 a 3 = 94 3 = 91 ou a 1 = 94 + 99 = 1 93 (despreza-se o terceiro dígito) a 3 = 94 + 97 = 1 91 (o número é de 2 dígitos) 45 45 Microprocessador 8085

Operações Aritméticas no Microprocessador Adição Adição direta Subtração Adição com o complemento de 2 Multiplicação Várias adições Divisão Várias adições com complemento de 2 46 46 Microprocessador 8085

Arquitetura, Características e Princípio de Funcionamento 47 47 Microprocessador 8085

Características Barramento de endereços: 16 bits Barramento de dados: 8 bits Capacidade de endereçamento de memória: 64 kb (65.536) Registradores internos: 8 bits e 16 bits Número de transistores: 6500 Velocidade de clock: 5 MHz Capacidade de processamento: 0,37 MIPS 48 48 Microprocessador 8085

Microprocessador 8085 Entrada do gerador de clock interno Saída e Entrada serial Entradas para pedidos de interrupção Sinal de reconhecimento de pedido de interrupção enviado por INTR Linhas utilizadas para dados e para endereços 49 49 Microprocessador 8085

Microprocessador 8085 Alimentação (5V) e Terra (Address Latch Enable) Permite ao hardware externo distinguir os dados dos endereços e é concebido para ser usado como sinal de clock para um latch que captura os endereços. Indicam o estado em que se encontra o 8085: Retenção (0 0) Escrita (0 1) Leitura (1 0) Interrupção (1 1) Linhas exclusivas para endereços. Parte mais significativa do endereço 50 50 Microprocessador 8085

Microprocessador 8085 Permite reinicializar o 8085. O contador de programa vai para 0000h Entrada para geração de estados de espera (wait states) Sinais do Barramento de Controle Saída que indica aos periféricos a reinicialização do 8085 Entrada de pedido de utilização de barramento para acesso direto à memória Saída que indica ao periférico que o barramento está disponível 51 51 Microprocessador 8085

Microprocessador 8085 IO/M, RD\ e WR\ Sinais do Barramento de Controle IO-M\ WR\ RD\ Significado Exemplo 0 0 - Escrita em memória STA 2100H 0-0 Leitura de memória LDA 2100H 1 0 - Escrita em E/S OUT 80H 1-0 Leitura de E/S IN 80H - - - Operação interna INR A 52 52 Microprocessador 8085

Arquitetura do 8085 53 53 Microprocessador 8085

Arquitetura do 8085 54 54 Microprocessador 8085

Princípio de Funcionamento LOAD CLOCK ENABLE A B LOAD CLOCK LOAD CLOCK ENABLE C D ENABLE LOAD CLOCK ENABLE 55 55 Microprocessador 8085

Princípio de Funcionamento CARREGA (LOAD) D Q HABILITA SAÍDA (OE) Chave 3 estados Entrada X CLK Flipflop Saída Y Linha do barramento CARREGA (LOAD) HABILITA SAÍDA (OUTPUT ENABLE) (OE) COMENTÁRIO 0 0 Registradores isolados do barramento. Barramento flutuando 0 1 Transfere dados do registrador para o barramento 1 0 Carrega o registrador com os dados do barramento 56 56 Microprocessador 8085

Princípio de Funcionamento 57 57 Microprocessador 8085

Princípio de Funcionamento MOV D,A LOAD CLOCK ENABLE A = 10H B LOAD CLOCK LOAD CLOCK ENABLE C D D = 10 H ENABLE LOAD CLOCK 58 ENABLE 58 Microprocessador 8085

Sistema Mínimo CPU 8085 59 59 Microprocessador 8085

Frequência de Clock CLK Ciclo de Clock f = clock f cristal 2 8085A: f cristal = 500 khz a 3,125 MHz 8085A-2: f cristal = 500 khz a 5 MHz Exemplo: Se f cristal = 2 MHz f clock = 1 MHz T clock = 1 µs 60 60 Microprocessador 8085

Ciclos de Clock, de Máquina e de Instrução Ciclo de Instrução Ciclo de Instrução Ciclo de Máquina 1: M1 Ciclo de Máquina 2 : M2 CLK Estados T1 T2 T3 T4 T1 T2 T3 Ciclo de Busca Ciclo de Execução Ciclo de Execução 61 61 Microprocessador 8085

Diagrama de Temporização M1 M2 CLK Estados T1 T2 T3 T4 T1 T2 T3 ALE PC FORA PC+1 PC INST IR PC FORA PC+1 PC INST IR A15-A8 PC H PC H AD7-AD0 PC L INST PC L INST 62 62 Microprocessador 8085

Diagrama de Temporização M1 M2 T1 T2 T3 T4 T1 T2 T3 PC FORA PC+1 PC INST IR SBE PC FORA PC+1 PC INST IR A15-A8 PC H PC H AD7-AD0 PC L INST PC L INST ALE RD\ WR\ IO-M\ 63 63 Microprocessador 8085

Diagrama de Temporização ADD B e MOV B,A M1 M2 T1 T2 T3 T4 T1 T2 T3 ADD B PC FORA PC+1 PC INST IR B TMP SBE A+TMP A MOV B,A PC FORA PC+1 PC INST IR A TMP A15-A8 PC H PC H AD7-AD0 PC L INST PC L INST ALE RD\ WR\ IO-M\ 64 64 Microprocessador 8085

Ciclo de Busca de ADD B: Princípio de Funcionamento T1: Contador de Programa (PC) é ativado. Endereço atual é colocado no barramento de 16 bits. O sinal ALE é o trigger para a transferência dos endereços de PC para o barramento. PC Endereço Barramento Endereço ROM ALE RD\ M\ CLK T1 65 65 Microprocessador 8085

Ciclo de Busca de ADD B: Princípio de Funcionamento T2: Na descida do sinal de clock o PC é incrementado em 1. Barramento disponível para outras operações. PC = PC + 1 CLK T1 T2 66 66 Microprocessador 8085

Ciclo de Busca de ADD B: Princípio de Funcionamento T3: Leitura do código da instrução (ROM). O código é transferido para o barramento. Bloco IR (Registrador de Instrução) carrega a instrução vinda da ROM. Instrução é decodificada no Decodificador ROM Código Barramento Código IR RD\ ENABLE LOAD M\ CLK T1 T2 T3 67 67 Microprocessador 8085

Ciclo de Execução de ADD B: T4: Conteúdo de B é transferido para o barramento Princípio de Funcionamento Conteúdo do barramento é transferido para um registrador temporário e, depois para a unidade lógica e aritmética B Dados Barramento Dados TEMP ENABLE LOAD CLK T1 T2 T3 T4 68 68 Microprocessador 8085

Princípio de Funcionamento Ciclo de Busca de MOV B,A e Execução de ADD B: T1: Contador de Programa (PC) é ativado. Endereço atual é colocado no barramento de 16 bits. O sinal ALE é o trigger para a transferência dos endereços de PC para o barramento. PC Endereço Barramento Endereço ROM ALE ALE RD\ M\ CLK T1 T2 T3 T4 T1 M2 69 69 Microprocessador 8085

Princípio de Funcionamento Ciclo de Busca de MOV B,A e Execução de ADD B: T2: Na descida do sinal de clock o PC é incrementado em 1. Barramento disponível finalizar a instrução ADD B. TEMP PC = PC + 1 ENABLE ULA TEMP+A Barramento A TEMP+A ENABLE LOAD CLK T1 T2 T3 T4 T1 M2 70 T2 M2 70 Microprocessador 8085

Ciclo de Busca de MOV B,A: Princípio de Funcionamento T3: Leitura do código da instrução (ROM). O código é transferido para o barramento. Bloco IR (Registrador de Instrução) carrega a instrução vinda da ROM. Instrução é decodificada no Decodificador ROM Código Barramento Código IR RD\ ENABLE LOAD M\ CLK T1 T2 T3 T4 T1 M2 T2 M2 71 T3-M2 71 Microprocessador 8085

Princípio de Funcionamento Ciclo de Execução de MOV B,A: T4: Conteúdo de A é transferido para o barramento Conteúdo do barramento é transferido para um registrador temporário e, depois para o registrador B, no estado T2 da próxima instrução. A Dados Barramento Dados TEMP ENABLE LOAD CLK T1 T2 T3 T4 T1 T2 T3 T4 72 Microprocessador 8085 72

Formato das Instruções 73 73 Microprocessador 8085

Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 ADD B PC FORA PC+1 PC INST IR B TMP SBE A+TMP A ADD B Adiciona o conteúdo de B ao conteúdo do Acumulador A Instrução de 1 byte End Instrução/ Dado Código xxxx H 1o byte OPCODE End ADD B Instrução/ Dado Código xxxx H ADD B 80 H 74 74 Microprocessador 8085

Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 MOV B,A PC FORA PC+1 PC INST IR A TMP SBE TMP B MOV B,A Copia o conteúdo do Acumulador A no registrador B Instrução de 1 byte End Instrução/ Dado Código xxxx H 1o byte OPCODE MOV B,A End Instrução/ Dado Código xxxx H MOV B,A 47 H 75 75 Microprocessador 8085

Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 MVI reg, byte PC FOR A PC+1 PC INST IR X PC FOR A PC+1 PC byte reg MVI reg,byte Carrega o registrador reg com valor byte Instrução de 2 bytes End Instrução/Dado Código xxxx H 1o byte OPCODE MVI reg, byte End Instrução/Dado Código xxxx H MVI A, 5DH 3E H xxxx + 1 2o byte Dado xxxx + 1 5D H 76 76 Microprocessador 8085

Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 ADI byte PC FORA PC+1 PC INST IR X PC FORA PC+1 PC byte TMP ADI byte Adiciona o byte ao conteúdo do Acumulador A Instrução de 2 bytes End Instrução/Dado Código xxxx H 1o byte OPCODE M3 T1 T2 T3 SBE A+TMP A ADI byte End Instrução/Dado Código xxxx H ADI 5DH C6 H xxxx + 1 2o byte Dado xxxx + 1 5D H 77 77 Microprocessador 8085

Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 LOAD adr PC FORA PC+1 PC INST IR X PC FORA PC+1 PC Byte L Z M3 T1 T2 T3 PC FORA PC+1 PC Byte H W M4 T1 T2 T3 WZ FORA M WZ A LOAD adr Carrega no Acumulador o conteúdo do endereço adr Instrução de 3 bytes LOAD adr End Instrução/Dado Código xxxx H 1o byte OPCODE End Instrução/Dado Código xxxx H LOAD 2030H 3A H xxxx + 1 2o byte Dados L xxxx + 2 3o byte Dados H xxxx + 1 xxxx + 2 30 H 20 H 78 78 Microprocessador 8085

Diagramas de Temporização e Formato das Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 STA adr PC FORA PC+1 PC INST IR X PC FORA PC+1 PC Byte L Z M3 T1 T2 T3 PC FORA PC+1 PC Byte H W M4 T1 T2 T3 WZ FORA A M WZ STA adr Transfere conteúdo do Acumulador para o endereço adr Instrução de 3 bytes STA adr End Instrução/Dado Código End Instrução/Dado Código xxxx H 1o byte OPCODE xxxx H STA 2030H 32 H xxxx + 1 2o byte Dados L xxxx + 2 3o byte Dados H xxxx + 1 xxxx + 2 30 H 20 H 79 79 Microprocessador 8085

Outras Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 INR reg PC FOR A PC+1 PC INST IR Reg TMP SBE ULA reg INR reg Incrementa em 1 o conteúdo do registrador reg INR C Opcode: 0C H M1 M2 T1 T2 T3 T4 T1 T2 T3 DCR reg PC FOR A PC+1 PC INST IR Reg TMP TMP +1 ULA SBE ULA reg DCR reg Decrementa em 1 o conteúdo do registrador reg DCR B Opcode: 05 H 80 80 Microprocessador 8085

Outras Instruções M1 M2 T1 T2 T3 T4 T1 T2 T3 INR M PC FORA PC+1 PC INST IR HL FORA M HL TMP + 1 TMP ULA M3 T1 T2 T3 HL FORA ULA M HL INR M Incrementa em 1 o conteúdo da posição de memória apontada pelo par HL 81 81 Microprocessador 8085

Modos de Endereçamento e Grupos de Instruções 82 82 Microprocessador 8085

Modos de Endereçamento Imediato MVI A,03H ADI 15 H Direto LDA 2010 H JMP 2005 H Por Registrador MOV A,B ADD B Indireto por Registrador MOV M,A 83 83 Microprocessador 8085

Grupos de Instruções Grupo de Transferência de Dados Grupo Aritmético MOV A,B MVI A,03H ADI 15 H, SUB C, INR A Grupo Lógico ANA B (A and B) ORA C (A or C) Grupo de Desvio JMP 2005 H, JNZ 2000H Grupo de Controle, Pilha, Entrada/Saída 84 PUSH PSW IN Porta 84 Microprocessador 8085

Exemplos Imediato + Transferência de Dados MVI A,03H M1 M2 T1 T2 T3 T4 T1 T2 T3 MVI reg, byte PC FOR A PC+1 PC INST IR X PC FOR A PC+1 PC byte reg MVI reg,byte Carrega o registrador reg com valor byte 85 85 Microprocessador 8085

Exemplos Registrador + Grupo Aritmético INR reg M1 M2 T1 T2 T3 T4 T1 T2 T3 INR reg PC FOR A PC+1 PC INST IR Reg TMP SBE ULA reg INR reg Incrementa em 1 o conteúdo do registrador reg 86 86 Microprocessador 8085

Exemplos Indireto por Registrador + Grupo de Controle, Pilha, Entrada/Saída INR M M1 M2 T1 T2 T3 T4 T1 T2 T3 INR M PC FORA PC+1 PC INST IR HL FORA M HL TMP + 1 TMP ULA M3 INR M Incrementa em 1 o conteúdo da posição de memória apontada pelo par HL T1 T2 T3 HL FORA ULA M HL 87 87 Microprocessador 8085

Registrador de Flags 88 88 Microprocessador 8085

Registrador F: Registra o estado da última operação realizada na ULA Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 S Z AC P CY 89 89 Microprocessador 8085

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 S Z AC P CY Flag de Sinal: Assume valor 0 para número positivo (bit 7 = 0) e 1 para negativo (bit 7 = 1) Flag de Zero: Assume valor 0 para número diferente de zero e 1 para número igual a zero. Flag Auxiliar de Carry: Assume valor 1 quando há transporte do Bit 3 para o Bit 4 90 90 Microprocessador 8085

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 S Z AC P CY Flag de Paridade: Assume valor 1 quando há uma quantidade par de dígitos 1no acumulador. Assume valor 0 quando há uma quantidade ímpar. Flag de Carry: Assume valor 1 quando há transporte do Bit 7 para o bit 8 (O Bit 8 é fora do acumulador) 91 91 Microprocessador 8085

Exemplo de Operação e os Flags resultantes Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 1 1 1 + 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 CY = 1 Houve transporte do bit 7 para o bit 8 P = 1 Há quantidade par (2) de dígitos 1 no acumulador (O 1 do bit 8 está fora do acumulador AC = 1 Houve transporte do bit 3 para o bit 4 Z = 0 O resultado da adição é diferente de zero S = 0 O bit 7 do acumulador é zero (número positivo) S Z AC P CY 0 0 1 1 1 F = 15 H ou F = 3F H ou F = 1F H ou 92 92 Microprocessador 8085

Exemplo de Operação e os Flags resultantes Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 + 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 CY = 1 Houve transporte do bit 7 para o bit 8 P = 1 Há quantidade par (0) de dígitos 1 no acumulador (O 1 do bit 8 está fora do acumulador AC = 0 Não houve transporte do bit 3 para o bit 4 Z = 1 O resultado da adição é igual a zero S = 0 O bit 7 do acumulador é zero (número positivo) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 1 0 1 1 93 F = 45 H ou F = 6F H ou F = 4F H ou 93 Microprocessador 8085

Exemplo de Subtração Direta Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0-0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 CY = 0 Não houve empréstimo do bit 8 para o bit 7 P = 0 Há quantidade par (0) de dígitos 1 no acumulador (O 1 do bit 8 está fora do acumulador AC = 0 Não houve empréstimo do bit 4 para o bit 3 Z = 0 O resultado da adição é diferente de zero S = 0 O bit 7 do acumulador é zero (número positivo) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 0 0 0 0 F = 00 H ou F = 2A H ou F = 02F H ou 94 94 Microprocessador 8085

Exemplo de Subtração com Complemento de 2 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 1 1 1 1 1 1 1 1 + 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 Carry = 1 CY = 0 Houve transporte do bit 7 para o bit 8, mas com complemento de 2 P = 0 Há quantidade ímpar (3) de dígitos 1 no acumulador Auxiliar = 1 AC = 0 Houve transporte do bit 3 para o bit 4, mas no complemento de 2 Z = 0 O resultado da adição é diferente de zero S = 0 O bit 7 do acumulador é zero (número positivo) 95 95 Microprocessador 8085

Exemplos de Operações Condicionadas às Flags JC endereço Jump if Carry Pula para o endereço indicado se CY = 1 JNC endereço Jump if Not Carry Pula para o endereço indicado se CY = 0 JZ endereço Jump if Zero Pula para o endereço indicado se Z = 1 (resultado da última operação é igual a zero) JNZ endereço Jump if Not Zero Pula para o endereço indicado se Z = 0 (resultado da última operação é diferente de zero) 96 96 Microprocessador 8085

Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JC 200F H DA 0F 20 2007 H JMP 2002 H C3 02 20 Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JC 2000 H DA 00 20 2007 H JMP 2002 H C3 02 20 200F H HLT 76 97 97 Microprocessador 8085

Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JNC 2002 H D2 02 20 2007 H JMP 2000 H C3 00 20 98 98 Microprocessador 8085

Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JZ 2000 H CA 00 20 2007 H JMP 2002 H C3 02 20 99 99 Microprocessador 8085

Exemplos de Operações Condicionadas às Flags Endereço Mnemônico Código 2000 H MVI A,F0H 3E F0 2002 H ADI 01H C6 01 2004 H JNZ 2002 H C2 02 20 2007 H JMP 2000 H C3 00 20 100 100 Microprocessador 8085

Pilha 101 101 Microprocessador 8085

Região de memória usada para guardar endereço de retorno e valores temporários Instruções que usam a pilha: CALL RET PUSH POP Interrupções SP Endereço Mnemônico Código 2000 H LXI SP,20FFH 31 FF 20 2003 H 2004 H xxxxx xxxxx xxxxx xxxxx 20FF H 102 102 Microprocessador 8085

Transferência de dados envolve sempre um par de bytes 16 bits O byte mais significativo é sempre guardado primeiro na pilha O byte menos significativo é retirado primeiro da pilha O Ponteiro de Pilha SP aponta sempre para o topo da pilha (último valor armazenado) Registradores utilizados PSW A + Flags B B + C D D + E H H + L 103 103 Microprocessador 8085

PUSH reg16 guarda conteúdo do registrador de 16 bits na pilha 1. O valor de SP é decrementado em 1 2. O byte mais significativo é armazenado na posição SP 1 3. O valor de SP é decrementado em 1 4. O byte menos significativo é armazenado na posição SP 2 POP reg16 carrega registrador de 16 bits com conteúdo da pilha 1. O conteúdo apontado por SP é copiado para o byte menos significativo 2. O valor de SP é incrementado em 1 3. O conteúdo apontado por SP + 1 é copiado para o byte mais significativo 4. O valor de SP é incrementado em 1 104 104 Microprocessador 8085

Exemplo: A = 01 H, F = 23 H, B = 45 H, C = 67 H F A PUSH PSW Endereço da RAM 2089 208A 208B 208C 208D Conteúdo 208E 23 208F 01 2090 SP após a instrução: 208Eh Flags SP inicial: 2090h 105 PUSH B Endereço da RAM 2089 208A 208B Conteúdo 208C 67 208D 45 208E 23 208F 01 2090 SP após a instrução: 208Ch C B F A 105 Microprocessador 8085

Exemplo: A = 01 H, F = 23 H, B = 45 H, C = 67 H F A Endereço da RAM 2089 208A 208B POP B Conteúdo 208C 67 208D 45 208E 23 208F 01 2090 SP após a instrução: 208Eh 106 Endereço da RAM 2089 208A 208B POP PSW Conteúdo 208C 67 208D 45 208E 23 208F 01 2090 SP após a instrução: 2090h C B F A 106 Microprocessador 8085

Pilha Exemplo de aplicação Endereço Mnemônico Código 2000 H LXI SP,203FH 31 22 20 2003 H MVI A,20H 3E 20 2005 H PUSH PSW F5 2006 H CALL MOSTRAA CD 6E 03 2009 H POP PSW F1 200A H ADI 01H C6 01 200C H JNZ 2005 H DA 05 20 200F H JMP 2003 C3 03 20 2022 H 107 107 Microprocessador 8085

Conjunto de Instruções 108 108 Microprocessador 8085

TRANSFERÊNCIA DE DADOS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento MVI r, dado8 (r) (byte 2) 2 7 Imediato MOV r1, r2 (r1) (r2) 1 4 Registrador MOV r, M (r) ((H)(L)) 2 7 Indireto por registrador MOV M, r ((H)(L)) (r) 2 7 Indireto por registrador MVI M, dado8 ((H)(L)) (byte 2) 3 10 Indireto por registrador e imediato LXI rp, dado16 (rh) (byte 3) (rl) (byte 2) 3 10 Imediato 109 109 Microprocessador 8085

TRANSFERÊNCIA DE DADOS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento LDA addr (A) ((byte 3)(byte 2)) 4 13 direto STA addr ((byte 3)(byte 2)) (A) 4 13 direto LHLD addr SHLD addr (L) ((byte 3)(byte 2)) (H) ((byte 3)(byte 2) + 1) ((byte 3)(byte 2)) (L) ((byte 3)(byte 2)+1) (H) 5 16 direto 5 16 direto LDAX rp (A) ((rp)) 2 7 Indireto por registrador STAX rp ((rp)) (A) 2 7 Indireto por registrador XCHG (H) (D) (L) (E) 1 4 registrador 110 110 Microprocessador 8085

ARITMÉTICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas ADD r (A) (A) + ( r ) 1 4 registrador todas ADD M (A) (A) + ( (H) + (L)) 2 7 registrador todas ADI dado8 (A) (A) + (byte 2) 2 7 imediato todas ADC r (A) (A) + ( r ) + (CY) 1 4 registrador todas ADC M (A) (A) + ( (H)(L)) + (CY) 2 7 imediato por registrador todas ACI dado8 (A) (A) + (byte 2) + (CY) 2 7 imediato todas 111 111 Microprocessador 8085

ARITMÉTICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas SUB r (A) (A) ( r ) 1 4 registrador todas SUB M (A) (A) ( (H)(L)) 2 7 indireto por registrador todas SUI dado8 (A) (A) (byte 2) 2 7 imediato todas SBB r (A) (A) ( r ) (CY) 1 4 registrador todas SBB M (A) (A) ((H)(L)) (CY) 2 7 indireto por registrador todas SBI dado8 (A) (A) (byte 2) (CY) 2 7 imediato todas 112 112 Microprocessador 8085

ARITMÉTICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento INR r (r) (r) + 1 1 4 registrador INR M ((H)(L)) ((H)(L)) + 1 3 10 indireto por registrador DCR r (r) (r) 1 1 4 registrador DCR M ((H)(L)) ((H)(L)) 1 3 10 indireto por registrador Flags Afetadas Z, S, P e AC Z, S, P e AC Z, S, P e AC Z, S, P e AC INX rp (rh)(rl) (rh)(rl) + 1 1 6 registrador nenhuma DCX rp (rh)(rl) (rh)(rl) 1 1 6 registrador nenhuma DAD rp ((H)(L)) ((H)(L)) + (rh)(rl) 3 10 registrador CY DAA 1 4 registrador todas 113 113 Microprocessador 8085

Exemplo de Programa: Adição de Números de 16 bits 452 decimal (01 C4 H) + 926 decimal (03 9E H) Decimal Hexa 1 1 1 4 5 2 0 1 C 4 9 2 6 0 3 9 E 1 3 7 8 0 5 6 2 Abacus: Add 16 bits reg simples.hex Adição usando registradores simples 114 Endereço Mnemônico Código 2000 H LXI SP,203F 31 3F 20 2003 H MVI A,C4h 3E C4 2005 H MVI B,01h 06 01 2007 H MVI C,9Eh 0E 9E 2009 H MVI D,03h 16 03 200B H ADD C 81 200C H MOV L,A 6F 200D H MOV A,B 78 200E H ADC D 8A 200F H MOV H,A 67 2010 H XCHG EB 2011 H CALL MOSTRAD CD 63 03 2014 H HLT 76 114 Microprocessador 8085

Exemplo de Programa: Adição de Números de 16 bits 452 decimal (01 C4 H) Adição usando registradores duplos + 926 decimal (03 9E H) Endereço Mnemônico Código Decimal Hexa 1 1 1 4 5 2 0 1 C 4 9 2 6 0 3 9 E 1 3 7 8 0 5 6 2 2000 H LXI SP,203F 31 3F 20 2003 H LXI B, 01C4 H 01 C4 01 2006 H LXI H, 039E H 21 9E 03 2009 H DAD B 09 200A H XCHG EB 200B H CALL MOSTRAD CD 63 03 200E H HLT 76 Abacus: Add 16 bits reg duplo.hex 115 115 Microprocessador 8085

INSTRUÇÕES LÓGICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas ANA r (A) (A) (r) 1 4 registrador todas ANA M (A) (A) ((H)(L)) 2 7 indireto por registrador todas ANI dado8 (A) (A) (byte 2) 2 7 imediato todas XRA r (A) (A) (r) 1 4 registrador todas XRA M (A) (A) ((H)(L)) 2 7 indireto por registrador todas XRI dado8 (A) (A) (byte 2) 2 7 imediato todas ORA r (A) (A) (r) 1 4 registrador todas ORA M (A) (A) ((H)(L)) 2 7 indireto por registrador todas ORI dado8 (A) (A) (byte 2) 2 7 imediato todas 116 116 Microprocessador 8085

INSTRUÇÕES LÓGICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Flags Afetadas RLC RRC RAL RAR (A n+1 ) (A n ) (A 0 ) (A 7 ) (CY) (A 7 ) (A n ) (A n+1 ) (A 7 ) (A 0 ) (CY) (A 0 ) (A n+1 ) (A n ) (CY) (A 7 ) (A 0 ) (CY) (A n ) (A n+1 ) (CY) (A 0 ) (A 7 ) (CY) 1 4 CY 1 4 CY 1 4 CY 1 4 CY 117 117 Microprocessador 8085

INSTRUÇÕES LÓGICAS Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetada s CMP r (A) (r) 1 4 registrador todas CMP M (A) ((H)(L)) 2 7 indireto por registrador todas CPI dado8 (A) (byte 2) 2 7 imediato todas CMA (A) (A\) 1 4 nenhum a CMC (CY) (CY\) 1 4 CY STC (CY) 1 1 4 CY 118 118 Microprocessador 8085

INSTRUÇÕES AND E OR AND A 0 0 0 0 1 1 1 1 B 1 0 0 1 1 0 1 0 ANA B 0 0 0 0 1 0 1 0 OR A 0 0 0 0 1 1 1 1 B 1 0 0 1 1 1 0 1 ORA B 1 0 0 1 1 1 1 1 119 119 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO CMP r CPI dado8 Condição Z CY (A) = (r) 1 0 (A) > (r) 0 0 (A) < (r) 0 1 120 120 Microprocessador 8085

Exemplo: Programa que identifica o 1 O bit de um número hexadecimal de 1 dígito Endereço Mnemônico Código Hexa 2000 H LXI SP,203FH 31 3F 20 2003 H CALL LETECLA CD E7 02 2006 H ANI 01H E6 01 2008 H CALL MOSTRAA CD 6E 03 200B H JMP 2003 C3 03 20 Abacus: Identifica bit 0.hex 121 121 Microprocessador 8085

Exemplo: Programa para entrar com número de 2 dígitos pelo teclado Endereço Mnemônico Código Hexa 2000 H LXI SP,203FH 31 3F 20 2003 H CALL LETECLA CD E7 02 2006 H RLC 07 2007 H RLC 07 2008 H RLC 07 2009 H RLC 07 200A H MOV B,A 47 200B H CALL LETECLA CD E7 02 200E H ORA B B0 200F H CALL MOSTRAA CD 6E 03 2012 H JMP 2003 C3 03 20 122 Abacus: Le 2 digitos.hex 122 Microprocessador 8085

INSTRUÇÕES DE DESVIO Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas JMP addr (PC) (byte 3)(byte 2) 3 10 imediato nenhuma J condição addr Se (CCC), então, (PC) (byte 3)(byte 2) 2/3 7/10 imediato nenhuma JNZ addr JZ addr JNC addr JC addr Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 123 123 Microprocessador 8085

INSTRUÇÕES DE DESVIO Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas JPO addr JPE addr JP addr JM addr Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) Se (CCC), então, (PC) (byte 3)(byte 2) 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 2/3 7/10 imediato nenhuma 124 124 Microprocessador 8085

INSTRUÇÕES DESVIO Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas CALL addr ((SP) - 1) (PCH) ((SP) - 2) (PCL) (SP) (SP) - 2 (PC) (byte 3)(byte 2) 5 18 imediato e indireto por registrador nenhuma C condition addr ((SP) - 1) (PCH) ((SP) - 2) (PCL) (SP) (SP) - 2 (PC) (byte 3)(byte 2) 2/5 9/18 imediato e direto por registrador nenhuma RET (PCL) (SP) (PCH) (SP + 1) (SP) (SP) + 2 3 10 indireto por registrador nenhuma R condição (PCL) (SP) (PCH) (SP + 1) (SP) (SP) + 2 1/3 6/12 indireto por registrador nenhuma 125 125 Microprocessador 8085

DESVIO Mnemônico Genérico RST n PCHL Simbologia ((SP) - 1) (PCH) ((SP) - 2) (PCL) (SP) (SP) - 2 (PC) 8 * (NNN) (PCH) (H) (PCL) (L) N O de Ciclos N o de Estados 3 12 Modo de Endereçamento indireto por registrador Flags Afetadas nenhuma 1 6 registrador nenhuma 126 126 Microprocessador 8085

Exemplo: Contagem com parada programada via teclado Universidade Federal de Goiás 127 Endereço Mnemônico Código Hexa 2000 H LXI SP,203FH 31 3F 20 2003 H CALL LETECLA CD E7 02 2006 H RLC / RLC / RLC / RLC 07 07 07 07 200A H MOV B,A 47 200B H CALL LETECLA CD E7 02 200E H ORA B B0 200F H MOV B,A 47 2010 H MVI A,00H 3E 00 2012 H PUSH PSW F5 2013 H PUSH B C5 2014 H CALL MOSTRAA CD 6E 03 2017 H POP B C1 2018 H POP PSW F1 2019 H CMP B B8 201A H JZ 2003 CA 03 20 201D H INR A 3C 201E H JMP 2012 H C3 12 20 Abacus: Parada programada.hex 127 Microprocessador 8085

CONTROLE, PILHA E I/O Mnemônico Genérico PUSH rp Simbologia ((SP) - 1 (rh) ((SP) - 2 (rl) (SP) (SP) - 2 N O de Ciclos N o de Estados Modo de Endereçamento 3 12 indireto por registrador Flags Afetadas nenhuma PUSH PSW ((SP) - 1 (A) 3 12 indireto por nenhuma ((SP) - 2 (F) registrador (SP) (SP) - 2 POP rp POP PSW (rl) ((SP)) (rh) ((SP) + 1) (SP) (SP) + 2 (F) ((SP)) (A) ((SP) + 1) (SP) (SP) + 2 3 10 indireto por registrador 3 10 indireto por registrador nenhuma todas 128 128 Microprocessador 8085

CONTROLE, PILHA E I/O Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Modo de Endereçamento Flags Afetadas XTHL (L) ((SP)) 5 16 indireto por nenhuma (H) ((SP) + 1) registrador SPHL (SP) (H) (L) 1 6 registrador nenhuma IN porta (A) (dado 8 bits) 3 10 direto nenhuma OUT porta (dado 8 bits) (A) 3 10 direto nenhuma 129 129 Microprocessador 8085

CONTROLE, PILHA E I/O Mnemônico Genérico Simbologia N O de Ciclos N o de Estados Flags Afetadas EI 1 4 nenhuma DI 1 4 nenhuma HLT 1+ 5 nenhuma NOP 1 4 nenhuma RIM 1 4 nenhuma SIM 1 4 nenhuma 130 130 Microprocessador 8085

Simulador Digital e Programação Assembly 131 131 Microprocessador 8085

CONTAGEM CRESCENTE ININTERRUPTA N INICIO SP 203F H A 20 H PUSH PSW CALL MOSTRAA POP PSW A A + 1 A = 0? S Endereço Mnemônico 2000 H LXI SP,203FH 2003 H MVI A,20H 2005 H PUSH PSW 2006 H CALL MOSTRAA 2009 H POP PSW 200A H ADI 01H 200C H JNZ 2005 H 200F H JMP 2003 Abacus: Contagem.hex 132 132 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS (3 x 4) N INICIO A 00 H C 03 H A A + 04 H C C 1 C = 0? S DISPLAY A Label Volta: Mnemônico LXI SP,203FH MVI A,00H MVI C,03H ADI 04 H DCR C JNZ Volta CALL MOSTRAA HLT FIM Abacus: 3 x 4 direto.hex 133 133 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS (3 x 4) Uso de Registrador N INICIO A 00 H B 04 H C 03 H A A + B C C 1 C = 0? S DISPLAY A FIM Label Mnemônico LXI SP,203FH MVI A,00H MVI B,04H MVI C,03H Volta: ADD B DCR C JNZ Volta CALL MOSTRAA HLT Abacus: 3 x 4 registrador.hex 134 134 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS (3 x 4) Subrotina INICIO A 00 H B 04 H C 03 H CALL multi DISPLAY A HLT multi A A + B C C 1 Abacus: 3 x 4 subrotina.hex N C = 0? RET 135 S Label multi: Mnemônico LXI SP,203FH MVI A,00H MVI B,04H MVI C,03H CALL multi CALL MOSTRAA HLT ADD B DCR C JNZ multi RET 135 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 1 DÍGITO INICIO CALL LETECLA B A CALL LETECLA C A A 0 CALL multi DISPLAY A N multi A A + B C C 1 C = 0? RET Abacus: Multi 1 dígito.hex 136 S Label repete: multi: Mnemônico LXI SP,203FH CALL LETECLA MOV B,A CALL LETECLA MOV C,A MVI A,00H CALL multi CALL MOSTRAA JMP repete ADD B DCR C JNZ multi RET 136 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 8 BITS INICIO CALL LETECLA 4 x RLC C A CALL LETECLA ORA C C A 1 1 CALL LETECLA 4 x RLC E A CALL LETECLA ORA E E A D 0 CALL multi CALL MOSTRAD Abacus: Multi 2 dígitos.hex 137 Label Mnemônico LXI SP,203FH CALL LETECLA RLC RLC RLC RLC MOV C,A CALL LETECLA ORA C MOV C,A... 137 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 2 DÍGITOS Subrotina de Multiplicação multi N HL 0 HL HL + DE C C 1 C = 0? DE HL S Label multi: repete: Mnemônico LXI H,0000H DAD D DCR C JNZ repete XCHG RET RET 138 138 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 2 DÍGITOS PROGRAMA PRINCIPAL Início SP 203F H CALL Leitura CALL multi CALL MOSTRAD Label repete: Mnemônico LXI SP,2080 H CALL Leitura CALL multi CALL MOSTRAD JMP repete Multi 2 dígitos sub.hex 139 139 Microprocessador 8085

MULTIPLICAÇÃO DE 2 NÚMEROS QUAISQUER DE 2 DÍGITOS SUBROTINA DE LEITURA DOS 2 DÍGITOS LEITURA CALL LETECLA 4 x RLC C A CALL LETECLA ORA C C A 1 1 CALL LETECLA 4 x RLC E A CALL LETECLA ORA E E A D 0 RET 140 Label Leitura: Mnemônico CALL LETECLA RLC/RLC/RLC/RLC MOV C,A CALL LETECLA ORA C MOV C,A CALL LETECLA RLC/RLC/RLC/RLC MOV E,A CALL LETECLA ORA E MOV E,A MVI D,00H RET 140 Microprocessador 8085

CASOS PARTICULARES DE MULTIPLICAÇÃO MULTIPLICAÇÃO POR 16 16 = 2 4 Mnemônico Comentário RLC A = 2 RLC A = 4 RLC A = 8 RLC A = 16 141 141 Microprocessador 8085

CASOS PARTICULARES DE MULTIPLICAÇÃO MULTIPLICAÇÃO POR 10 Mnemônico Comentário RLC A = 2 MOV B,A B = 2 RLC A = 4 RLC A = 8 ADD B A = 8 + 2 = 10 142 142 Microprocessador 8085

CASOS PARTICULARES DE MULTIPLICAÇÃO MULTIPLICAÇÃO POR 7 Solução 1 Solução 2 (para 8 < 100H) Mnemônico MOV B,A Comentário B = RLC A = 2 ADD B A = 3 RLC A = 6 ADD B A = 7 Mnemônico MOV B,A Comentário B = RLC A = 2 RLC A = 4 RLC A = 8 SUB B A = 7 143 143 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y: Label Mnemônico Comentário CMP reg JNZ continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A reg... Bloco de instruções executadas, caso A = reg continua: Continuação do programa 144 144 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X Y: Label Mnemônico Comentário CMP reg JZ continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A = reg... Bloco de instruções executadas,... caso A reg continua: Continuação do programa 145 145 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Exemplo: Mostrar números de 20 H até 50H INICIO SP 2080 H A 20 H CALL MOSTRAA A = 50H? A A + 1 N S Endereço Mnemônico 2000 H LXI SP,2080H 2003 H MVI A,20H 2005 H PUSH PSW 2006 H CALL MOSTRAA 2009 H POP PSW 200A H CPI 50 H 200C H JZ 2003 H 200A H ADI 01H 200F H JMP 2005 Abacus: Aula6 6.hex 146 146 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X Y: Label Mnemônico Comentário CMP reg JC continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A < reg... Bloco de instruções executadas,... caso A reg continua: Continuação do programa 147 147 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X > Y: Label Mnemônico Comentário CMP reg JC continua JZ continua Seta flags Z e CY de acordo com resultado de A reg Pula para continua, se A < reg Pula para continua, se A = reg... Bloco de instruções executadas, caso A > reg continua: Continuação do programa 148 148 Microprocessador 8085

Exemplo: Mostrar números (da memória) maiores ou iguais a 30 H Início SP 2080 H HL 2050 H C 0A H A M H H + 1 1 N 1 A <30H? N CALL MOSTRAA C C 1 C = 0? Abacus: Maiores ou Iguais.hex 149 S Fim S Mnem. repete: pula: Mnemônico LXI SP,2080H LXI H, 2050H MVI C,0AH MOV A,M INX H CPI 30 JC pula PUSH B PUSH H CALL MOSTRAA POP H POP B DCR C JNZ repete HLT 149 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X Y: Label Mnemônico Comentário CMP reg JZ igual JNC maior Seta flags Z e CY de acordo com resultado de A reg Pula para igual, se A = reg Pula para maior, se A > reg igual:... Bloco de instruções executadas, caso A reg maior: Continuação do programa 150 150 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X < Y: Label Mnemônico Comentário CMP reg JNC maiorig Seta flags Z e CY de acordo com resultado de A reg Pula para maiorig, se A reg... Bloco de instruções executadas, caso A < reg maiorig: Continuação do programa 151 151 Microprocessador 8085

Exemplo: Mostrar números (da memória) menores ou iguais a 30 H Mnem. Mnemônico Início 1 LXI SP,2080H LXI H, 2050 H SP 2080 H HL 2050 H C 0A H A > 30H? N S repete: MVI C,0A H MOV A,M INX H CPI 30 A M MOSTRA A JZ mostra JNC pula HL HL + 1 1 C C 1 mostra: PUSH B PUSH H CALL MOSTRAA POP H Abacus: Menores-ou-iguais.hex C = 0? Fim S pula: POP B DCR C JNZ repete HLT 152 152 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y e outro se X Y: Label Mnemônico Comentário CMP reg Seta flags Z e CY de acordo com resultado de A reg JNZ diferente Pula para diferente, se A reg... Bloco de instruções executadas, caso A = reg JMP continua Pula bloco onde A reg diferente: Bloco de instruções executadas, caso A reg continua: Continuação do programa Abacus: Intervalo.hex Abacus: Menores.hex 153 153 Microprocessador 8085

INICIO Subrotina de atraso de tempo B 10 H Endereço Mnemônico N C 20 H C C 1 C = 0? S B B 1 2020 H MVI B,10 H 2022 H MVI C,20 H 2024 H DCR C 2025 H JNZ 2024 H 2028 H DCR B 2029 H JNZ 2022 H N B = 0? RET S 202C H RET Abacus: Atraso.hex 154 154 Microprocessador 8085

Tempo de atraso (supondo 1µs para cada estado) Mnemônico MVI B,10 H MVI C,20 H DCR C JNZ 2024 H DCR B JNZ 2022 H RET Instrução N o de Vezes a instrução é executada N o de Estados de cada Instrução Tempo de cada Estado (µs) Tempo Parcial (µs) MVI B 1 7 1 7 MVI C 16 7 1 112 DCR C 512 = 16x32 4 1 2048 JNZ 2024 496 = 16x31 10 1 4960 (verdadeiro) JNZ 2024 (falso) 16 = 16 x 1 7 1 112 DCR B 16 4 1 64 JNZ repete1 (verdadeiro) JNZ repete1 (falso) 15 10 1 150 1 7 1 7 RET 1 10 1 10 Tempo Total 7490 µs 7,5 ms 155 155 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y ou W = Z: Supondo uso de A = X, B = Y, C = W e D = Z Label Mnemônico Comentário continua: CMP B JZ OK MOV A, C CMP D JNZ continua Seta flags Z e CY de acordo com resultado de X Y Pula para OK, se X = Y Carrega em A valor de W. Destrói valor original Seta flags Z e CY conforme resultado de W - Z Pula para continua, se W Z OK:... Bloco de instruções executadas, caso X = Y ou W = Z Continuação do programa 156 156 Microprocessador 8085

INSTRUÇÕES DE COMPARAÇÃO E TOMADA DE DECISÃO Execução de um Bloco de Instruções se X = Y e W = Z: Supondo uso de A = X, B = Y, C = W e D = Z Label Mnemônico Comentário continua: CMP B JNZ continua MOV A, C CMP D JNZ continua Seta flags Z e CY de acordo com resultado de X Y Pula para continua, se X Y Carrega em A valor de W. Destrói valor original Seta flags Z e CY conforme resultado de W - Z Pula para continua, se W Z... Bloco de instruções executadas, caso X = Y e W = Z Continuação do programa 157 157 Microprocessador 8085