Baixe o app para aproveitar ainda mais
Prévia do material em texto
Microprocessadores e Microprocessadores e MicrocontroladoresMicrocontroladores Matheus W RomãoMatheus W. Romão Prof. Matheus Romão Processador 8085: ArquiteturaProcessador 8085: Arquitetura Prof. Matheus Romão Processador 8085: Configuração dos PinosProcessador 8085: Configuração dos Pinos Prof. Matheus Romão 8085: Pinos 1 e 2 8085: Pinos 1 e 2 –– Circuito de ClockCircuito de Clock •Cristal: Possui melhor estabilidade de freqüência•Cristal: Possui melhor estabilidade de freqüência. •O Flip Flop divide a frequencia por 2. Por isso , para se ter 3MHz (frequencia de clock) é necessário o uso de um cristal de 6MHz (frequencia do oscilador). •Circuito LC: É mais econômico e pode ser usado quando uma tolerância de frequencia de 10% for aceitável. •Circuito RC: Baixo custo Porém frequencia varia bastante com a temperatura•Circuito RC: Baixo custo. Porém,frequencia varia bastante com a temperatura. •Circuito de clock externo: Resistor pull-up serve para garantir níveis de tensão mínimo (4V) para nível lógico alto e máximo (0,8V) para o nível lógico baixo.Prof. Matheus Romão 8085: Pinos 3 e 36 8085: Pinos 3 e 36 –– ResetReset RESET IN (ativo em baixo), quando baixo: 1) Zera o contador de programa (0000H). 2) Dá um reset nas habilitações das interrupções e nos flip flops de HLDAnos flip-flops de HLDA. 3) Coloca em tri-state os barramentos de dado, endereço e controle (apenas enquanto Reset in estiver ativo). 4) Altera o conteúdo dos registradores internos de4) Altera o conteúdo dos registradores internos de maneira aleatória. Obs: Para garantir a reinicialização, o sinal RESET IN deve ser mantido baixo por, no mínimo, 10ms. Reset Out (ativo em alto): Indica para dispositivos externos (periféricos) quando o processador está sendo reinicializado. Este sinal fica alto enquanto RESET IN estiver baixoRESET IN estiver baixo. Circuito de RESET: Garantir que o sinal de RESET IN fique baixo por no mínimo 10ms. • Quando pressionado, o botão fecha o circuito que irá descarregar o capacitor.capacitor. • O Circuito de carga é composto pelo resistor de 75KΩ e pelo capacitor. • O diodo descarrega o capacitor quando a alimentação é cortada.Prof. Matheus Romão 8085: Pinos 4 e 5 8085: Pinos 4 e 5 –– SOD / SIDSOD / SID SID (Serial Input Data): Entrada para receber dados seriais vindos de um dispositivo externo. SOD (S i l O t t D t ) S íd iSOD (Serial Output Data): Saída que envia dados (de maneira serial) para um dispositivo externo. Prof. Matheus Romão 8085: Pinos 6 a 11 8085: Pinos 6 a 11 –– Controle de InterrupçãoControle de Interrupção Interrupção: Interromper a execução normal do microprocessador. Quando um microprocessador recebe uma interrupção, ele termina de executar a instrução em curso e passa t d i t ã ( b ti )a atender a interrupção (sub-rotina). Tipos de Interrupção: • Hardware: Causada por dispositivos periféricos. • Software: Causada pela execução de determinadas instruções.p ç ç Prof. Matheus Romão 8085: Controle de Interrupção8085: Controle de Interrupção Interrupções de Hardware: • TRAP • RST 7.5 • RST 6.5 • RST 5.5 INTR• INTR I t õ d S ft•Interrupções de Software: • RST 0 • RST 1 • RST 2• RST 2 • RST 3 • RST 4 • RST 5• RST 5 • RST 6 • RST 7 Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– ClassificaçãoClassificação • Classificação: • Mascarável ou Não mascarável: • Mascarável: São aquelas que podem ser habilitadas ou desabilitadas por instruções de software. • Não Mascarável: Estão sempre habilitadas e não podem ser desabilitadas. • Vetorada ou Não Vetorada:• Vetorada ou Não Vetorada: • Vetorada: Interrupções que possuem uma localização na memória pré determinada (fixa) para a qual o processador será desviado para tratar a rotina de interrupção. • Não Vetorada: A interrupção não tem uma localização fixa na memória para qual o processamento será desviado. O endereço da memória onde começa a rotina de interrupção é enviado com a interrupção. • Ativada por borda ou ativada por nível:Ativada por borda ou ativada por nível: • Borda: Ativadas por borda de transição (subida ou descida). • Nível: Ativadas por níveis lógicos alto ou baixo. • Baseada em prioridade: • Quando há a solicitação de duas ou mais interrupções, o processador irá atende-las conforme uma ordem deprocessador irá atende las conforme uma ordem de prioridade. Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– Interrupções Interrupções de Hardware: TRAPde Hardware: TRAP •Mais alta prioridade. •Não mascarável. •Vetorada•Vetorada. •Ativada por borda e por nível (ela precisa ir para nível alto e deverá se manter alto até que seja reconhecida Porta AND na figura abaixo) Issoreconhecida – Porta AND na figura abaixo). Isso evita falsas ativações desta prioridade em função de ruídos e/ou transientes. • Para retirar este sinal de interrupção deve-se ativar RESET IN ou o processador deve enviar um sinal interno que confirme o reconhecimento do s a te o que co e o eco ec e to do sinal de interrupção. Assim que TRAP é reconhecido: • 8085 termina de executar a instrução em curso.ç • Guarda o endereço da próxima instrução em uma pilha. • Passa a executar a partir do endereço 0024H (primeiro endereço da rotina de execução da interrupção TRAP). Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– Interrupções Interrupções de Hardware: RST 7.5de Hardware: RST 7.5 RST 7 5 (PIN 7)RST 7.5 (PIN 7) •Segunda maior prioridade. •Mascarável •Vetorada•Vetorada •Ativada pela borda de subida. •O sinal de interrupção fica ativo até que a instrução SIM (mascaramento) sejaa instrução SIM (mascaramento) seja executada ou um sinal de ACK seja gerado internamente. Assim que RST 7.5 é reconhecido:Assim que RST 7.5 é reconhecido: • 8085 termina de executar a instrução em curso. • Guarda o endereço da próxima ç p instrução em uma pilha. • Passa a executar a partir do endereço 003CH (primeiro endereço da rotina de ( execução da interrupção RST 7.5). Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– Interrupções Interrupções de Hardware: RST 6.5 e RST 5.5de Hardware: RST 6.5 e RST 5.5 RST 6 5 (PIN 8)RST 6.5 (PIN 8) •Terceira prioridade •Mascarável (instrução SIM) •Vetorada (0034H)•Vetorada (0034H) •Ativada por nível RST 5 5 (PIN 9)RST 5.5 (PIN 9) •Quarta prioridade •Mascarável (instrução SIM) •Vetorada (002CH)Vetorada (002CH) •Ativada por nível Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– Interrupções Interrupções de Hardware: INTRde Hardware: INTR INTR(PIN 10)INTR(PIN 10): •Quinta (última) prioridade •Mascarável •Não Vetorada•Não Vetorada •Ativada por nível • Interrupção de propósito geral• Interrupção de propósito geral • Pode direcionar o processador para uma subrotina localizada em um endereço arbitrário.um endereço arbitrário. Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– Interrupções Interrupções de Hardwarede Hardware Mascaramento por instrução: Ei = Enable Interrupt Di= Disable Interrupt SIM (Set Interrupt Mask)( p ) Prof. Matheus Romão 8085: Controle de Interrupção 8085: Controle de Interrupção –– Interrupções Interrupções de Hardware: INTA de Hardware: INTA Interrupt Acknowledge (PIN 11) (Reconhecimento de uma requisição(Reconhecimento de uma requisição de interrupção). •Sinal de saída ativo em nível lógico•Sinal de saída ativo em nível lógico baixo. •Indica que o microprocessador reconheceu a requisição INTRreconheceu a requisição INTR. Prof. Matheus Romão 8085: Linhas de dados/endereços: 8085: Linhas de dados/endereços:AD0 AD0 –– AD7AD7 AD0 AD7 (Pi 19 12)AD0 – AD7 (Pins 19 –12): • Multiplexado (transmissão de dados e endereços). • Bidirecional (entrada ou saída)• Bidirecional (entrada ou saída) • Durante o T1 (primeiro ciclo de máquina) A0 – A7 ficam habilitados. • Nos estados T2 e T3 os bits de• Nos estados T2 e T3 os bits de endereço serão necessários. Para retê-los é utilizado um latch de endereço juntamente com um sinalendereço juntamente com um sinal ALE (Address Latch Enable - PIN 30). •Desta forma, o 8085 pode utilizar , p AD0 – AD7 para tráfego de dados nos demais ciclos. Prof. Matheus Romão 8085: Linhas de dados/endereços: 8085: Linhas de dados/endereços: AD0 AD0 –– AD7AD7 Circuito de Latch: • 74LS373: 8 x Flip-Flops Dp p • O Sinal “Enable ALE” alto (durante T1) carrega e retêm A0-A7 na saída do 74Ls373. • Assim, A0-A7 só mudará quando “Enable ALE” ficar alto novamente. Prof. Matheus Romão 8085: Linhas de endereço: A8 8085: Linhas de endereço: A8 –– A15A15 A8 – A15 (Pins 21-28): • Unidirecional (Saída). • Transmissão dos bits de endereços mais a s ssão dos b ts de e de eços a s significativos do 8085 para a memória. • Este pinos ficam em tri-state durante HOLD e RESET. Prof. Matheus Romão 8085: 8085: DriversDrivers para barramentos.para barramentos. • Os barramentos do 8085 tem uma baixa capacidade de fornecimento/drenagem de corrente para/de dispositivos.p p • Para aumentar esta capacidade, são utilizados buffers unidirecionais e bidirecionais. Prof. Matheus Romão 8085: Sinais de Status e Controle 8085: Sinais de Status e Controle ALE ALE ‐‐ AddressAddress LatchLatch EnableEnable ALE (Pin 30): • Unidirecional (Saída). • Sinal que controla o barramento l i l d d d / dmultiplexado dados/ endereço. • ALE=1 : AD0-AD7 será o byte menos significativo do barramento de endereço. ALE 0 AD0 AD7 á b t d• ALE=0: AD0-AD7 será o barramento de dados (8 Bits). • Quando há a transição negativa de ALE, o endereço retido no latch é enviado parao endereço retido no latch é enviado para os REM localizados dentro das pastilhas de memória que serão conectadas ao 80858085. Prof. Matheus Romão 8085: Sinais de Status e Controle 8085: Sinais de Status e Controle S0, S1 e (Pins 29, 33 e 34). S0 e S1 (sinais de status) informam o tipo de operação (fetch, leitura, escrita). informa se é uma operação de I/O ou uma operação de memória. Prof. Matheus Romão 8085: Sinais de Status e Controle 8085: Sinais de Status e Controle E (PIN’s 31 e 32) -Write (ativo em baixo) : Sinal de-Write (ativo em baixo) : Sinal de controle utilizado para operações de escrita na memória ou em dispositivos de saída.dispositivos de saída. - Read (ativo em baixo) : Sinal de- Read (ativo em baixo) : Sinal de controle utilizado para operações de leitura da memória ou de dispositivos de entrada.dispositivos de entrada. E Nunca ficam baixo simultaneamente. Prof. Matheus Romão 8085: Sinais de Status e Controle 8085: Sinais de Status e Controle 74LS138 utilizado para implementar as saídas da tabela verdadetabela verdade. Prof. Matheus Romão 8085: Sinais de Status e Controle 8085: Sinais de Status e Controle ‐‐ READYREADY READY (Pin 35): • Sinal utilizado para sincronizar o 8085 di i i ifé i i lcom dispositivos periféricos mais lentos. • Ready= 0, faz o 8085 entrar no modo de (WAIT) i di di itiespera (WAIT) e indica que o dispositivo não está pronto para enviar/receber dados. • Ready=1 ocorre a transferência de• Ready=1, ocorre a transferência de dados. Prof. Matheus Romão 8085: Sinais de DMA (8085: Sinais de DMA (DirectDirect Memory Access) Memory Access) • DMA: O microprocessador transfere o controle do barramento para um CI p especializado chamado (controlador de DMA) para acelerar a transferência de dados entre o 8085 e o periférico. • Caso contrário, os dados precisam passar pelo acumulador (o que retarda a operação de transferência). • HOLD (Pin 39): • Sinal enviado pelo controlador de DMA• Sinal enviado pelo controlador de DMA. • Indica quando um controlador de DMA solicita o uso dos barramentos. l l• Ex: Intel 8257 e Intel 8237. • O controlador de DMA terá controle dos barramentos enquanto HOLD=1. Prof. Matheus Romão 8085: Sinais de DMA (8085: Sinais de DMA (DirectDirect Memory Access) Memory Access) • HLDA (Pin 38): • Sinal enviado pelo 8085 para confirmar a solicitação do controlador de DMAsolicitação do controlador de DMA. • Quando HLDA=1, os barramentos de dados, endereços, e os pinos RD, WR, IO/M são colocados em tri‐statesão colocados em tri‐state. • Quando HOLD volta para o nível baixo, HLDA também vai para baixo e o 8085 assume o controle dos barramentosassume o controle dos barramentos novamente. Prof. Matheus Romão 8085: Alimentação VCC e VSS8085: Alimentação VCC e VSS • VCC (PIN 40) e VSS (PIN 20):• VCC (PIN 40) e VSS (PIN 20): • VCC: Conecta‐se uma fonte de alimentação de 5V (tolerância de 5%). A potência dissipada pelo 8085 é menor que 1 5Wdissipada pelo 8085 é menor que 1,5W. • VSS: Terra. Prof. Matheus Romão 8085: Configuração Interrupções não usadas são aterradas para evitar sinais falsos resultantes de entradas abertas. Prof. Matheus Romão 8085: Ciclo de Instrução8085: Ciclo de Instrução Prof. Matheus Romão 8085: Ciclo de Instrução8085: Ciclo de Instrução Tf= T_Fall Tr=T_Rise Prof. Matheus Romão 8085: Ciclos de Máquina8085: Ciclos de Máquina • 8085: 7 Ciclos de Máquina Prof. Matheus Romão 8085: Ciclos de Máquina8085: Ciclos de Máquina • Notação: Prof. Matheus Romão 8085: Temporização de Sinais8085: Temporização de Sinais • ALE: Ativo durante T1 de cada ciclo de Máquina. Obs: Ciclo de Máquina 1 = 4 Estados Ciclo de Máquina 2 = 3 Estados Prof. Matheus Romão 8085: Temporização de Sinais8085: Temporização de Sinais • Byte menos significativo de endereços (AD0 – AD7): Ativo durante T1 de cada ciclo de Máquina.q Prof. Matheus Romão 8085: Temporização de Sinais8085: Temporização de Sinais Barramento de dados (D0 – D7): A transferência de dados (da memória ou I/O para 8085 ou do 8085 para memória e I/O) ocorre durante os estados T2 e T3. • No ciclo de leitura, os dados aparecerão no barramento no fim de T2, enquanto no ciclo de escrita, os dados estarão no barramento no início de T2. Isso ocorre em função do tempo de acesso à memória durante a leitura. Leitura EscritaEscrita Prof. Matheus Romão 8085: Temporização de Sinais8085: Temporização de Sinais Byte mais significativo de endereços (A8 – A15): Disponível no barramento durante os estados T1, T2 e T3 de cada ciclo de máquina. Prof. Matheus Romão 8085: Temporização de Sinais8085: Temporização de Sinais Sinais de Status (S0, S1, IO/M): Estes sinais definem o tipo de ciclo de máquina a ser executado. Eles são ativados no estado T1 de cada ciclo de máquina e ficam ativos até o final de cada ciclo. Prof. Matheus Romão 8085: Temporização de Sinais8085: Temporização de Sinais RD e WR: Estes sinais definem a direção da transferência de dados. Quando RD é ativo (baixo) os dados são transmitido da memória ou dispositivo I/O para o 8085. Quando WR está ativo (baixo), os dados são transmitidos do 8085 para a memória ou para um dispositivo I/O. Estes sinais são ativados durante os estados T2 e T3 (estados onde ocorrem a t f ê i d d d )transferência de dados). Leitura Escrita Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Busca do Busca do C.OpC.Op • Primeiro ciclo de máquina de qualquer instrução. • O conteúdo do contador de programaé colocado nas linhas de endereço e, através de um processo de leitura o código da operação (Opcode) da instruçãoatravés de um processo de leitura, o código da operação (Opcode) da instrução é lido. • A duração deste ciclo pode durar de 4 a 6 estados dependendo da instrução. Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Busca do Busca do C.OpC.Op • T1: • O 8085 coloca o conteúdo do contador de programa (PC) no barramento deO 8085 coloca o conteúdo do contador de programa (PC) no barramento de endereço. O byte mais significativo do PC é colocado nas linhas A8-A15 e o menos significativo é colocado nas linhas AD0-AD7 (que ficam ativas apenas durante T1.durante T1. • O sinal ALE (Address Latch Enable) é ativado para carregar o conteúdo de AD0-AD7 no latch antes que ele desapareça. • O 8085 gera também o sinal de status que indica o ciclo de busca do opcode. g q p Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Busca do Busca do C.OpC.Op • T2: • O byte menos significativo de endereço desaparece das linhas AD0-AD7 (embora a informação ainda esteja disponível nos latches que armazenaram esta informação)informação ainda esteja disponível nos latches que armazenaram esta informação). • É emitido um sinal para leitura da memória ( ). • A memória coloca o conteúdo do endereço acessado no barramento de dados (AD0- AD7).) •T3: • Os dados presentes no barramento de dados são carregados no registrador de instrução e a memória é desabilitada ( )e a memória é desabilitada ( ). •T4: • O 8085 decodifica o C.Op e , com base na instrução decodificada, decide se entra no estado T5 ou no estado T1 do próximo ciclo de máquina. • Instruções de um byte são executadas até T4. •T5 e T6:•T5 e T6: • Quando necessários, são utilizados para a realização de operações internas do processador exigidas pela instrução (Ex: Escrita em pilha, retorno de operações condicionais). • Ex de instrução: PCHL: O conteúdo dos registradores H (byte mais significativo) e L (byte menos significativo) são carregados no contador de programa. Prof. Matheus Romão 8085: Ciclos de Máquina – Busca do C.Op Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Leitura da memóriaLeitura da memória • Ciclo dedicado a leitura de uma memória RAM ou ROM • Este ciclo dura 3 estados (T1, T2 e T3). •T1: • O 8085 coloca nas linhas de endereço, o endereço vindo do apontador de pilha, de um par de registradores de propósito geral ou do contador de programa e ativa o sinal ALE p g p p g p g para reter o byte menos significativo de endereço. • O processador também envia o sinal de status referente ao ciclo de leitura de memória. •T2: • O 8085 envia um sinal de leitura da memória ( ) para acessar o dado contido no• O 8085 envia um sinal de leitura da memória ( ) para acessar o dado contido no endereço obtido em T1. • A memória coloca no barramento de dados (AD0-AD7) o conteúdo deste endereço. •T3: • 8085 carrega o dado presente no barramento de dados em um determinado registrador ( A,B C,D E,H ou L) e desabilita a memória ( ).Prof. Matheus Romão 8085: Ciclos de Máquina – Leitura da memória Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Escrita na memóriaEscrita na memória • Ciclo dedicado a armazenar dados em uma memória ou em uma pilha. • Este ciclo dura 3 estados (T1, T2 e T3). •T1: • O 8085 coloca nas linhas de endereço, o endereço vindo do apontador de pilha ou de ç ç p p um par de registradores de propósito geral e ativa o sinal ALE para reter o byte menos significativo de endereço. • O processador também envia o sinal de status referente ao ciclo de escrita de memória. •T2:•T2: • O 8085 coloca os dados no barramento de dados e envia um sinal para escrever na memoria (armazenar o dado) no endereço passado ( ). •T3: • O Sinal para escrita na memória é colocado em nível alto, o que desabilita a memória e encerra a operação de escrita ( ).Prof. Matheus Romão 8085: Ciclos de Máquina – Escrita na memória Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Leitura de um Leitura de um dispositivo de I/Odispositivo de I/O • Ciclo dedicado a leitura de dados de um dispositivo I/O. • Este ciclo dura 3 estados (T1, T2 e T3). • Semelhante ao ciclo de leitura da memória A diferença está no sinal de status• Semelhante ao ciclo de leitura da memória. A diferença está no sinal de status. Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Leitura de um Leitura de um dispositivo de I/Odispositivo de I/O Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Escrita em um Escrita em um dispositivo de I/Odispositivo de I/O • Ciclo dedicado a enviar dados para um dispositivo I/O. • Este ciclo dura 3 estados (T1, T2 e T3). •Semelhante ao ciclo de escrita na memória A diferença está no sinal de Status•Semelhante ao ciclo de escrita na memória. A diferença está no sinal de Status. Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Escrita em um Escrita em um dispositivo de I/Odispositivo de I/O Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Reconhecimento de Reconhecimento de um sinal de Interrupçãoum sinal de Interrupção • Ciclo dedicado a ler uma instrução vinda de um dispositivo periférico. • Teoricamente, o dispositivo pode colocar no barrramento de dados qualquer instrução após receber do processador o reconhecimento do sinal de interrupção ( )após receber do processador o reconhecimento do sinal de interrupção ( ). • Entretanto apenas as instruções RST e CALL salvam o conteúdo do contador de programa (endereço de retorno) antes de desviar o processador para a rotina de tratamento de interrupção.pç Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Reconhecimento de Reconhecimento de um sinal de Interrupção: RSTum sinal de Interrupção: RST Três ciclos de Maquina: M1: Decodifica RST • Semelhante ao ciclo de busca do C. Op. • é ativado ao i é dinvés de . •M2 e M3 são ciclos de escrita na memóriaescrita na memória para armazenar o conteúdo do PC na pilhapilha. Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– Reconhecimento de Reconhecimento de um sinal de Interrupção: CALLum sinal de Interrupção: CALL Cinco ciclos de Máquina: • A instrução CALL envia um endereço de 2 bytes onde se inicia a rotina de tratamento de interrupçãointerrupção. • Desta forma, é necessária a execução de dois ciclos de busca (um para cada byte do endereço) acompanhados de dois sinais de reconhecimento de solicitação de interrupção ( ). Estas atividades são executadas nos ciclos M2 e M3.( ) • Nos ciclos M4 e M5 o conteúdo do contador de programa é escrito (armazenado) na pilha. Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– BarramentoBarramento Inoperante Inoperante E l it õ i l d i ã l l it• Em algumas situações, os ciclos de maquina não envolvem leitura nem escrita. • Isso ocorre durante a execução das instruções DAD (que soma o conteúdo de um par de registradores ao conteúdo do par de registradores formado por HL) eum par de registradores ao conteúdo do par de registradores formado por HL) e durante a geração do C. OP para tratamento das interrupções TRAP e RST. • Para execução de DAD são necessários 10 estados sendo 4 destes utilizados• Para execução de DAD são necessários 10 estados, sendo 4 destes utilizados para busca do C. OP e os outros 6 para somar os 16 bits do par de registradores aos 16 bits do par HL. • Estes 6 estados são divididos em dois ciclos de maquinaque não envolvemEstes 6 estados são divididos em dois ciclos de maquina que não envolvem nenhuma operação na memória ou em dispositivo de I/O. Prof. Matheus Romão 8085: Ciclos de Máquina 8085: Ciclos de Máquina –– BarramentoBarramento OciosoOcioso Prof. Matheus Romão Instruções do 8085Instruções do 8085 INSTRUÇÕES do 8085INSTRUÇÕES do 8085 Prof. Matheus Romão Instruções do 8085Instruções do 8085 • Tipos: • Operações de Transferência de Dados, • Operações Aritméticas• Operações Aritméticas, • Operações Lógicas, • Operações de Salto, O õ ilh d t d íd d• Operações com pilha, de entrada e saída e de controle. Prof. Matheus Romão Instruções do 8085: Transferência de dadosInstruções do 8085: Transferência de dados • Carregam dados nos registradores • Copiam dados de um registrador para outro registradorregistrador, • Copiam dados de um registrador para a memória e vice‐versa. • Obs: Estas instruções não afetam osObs: Estas instruções não afetam os registradores de Flag. Prof. Matheus Romão Instruções do 8085: Operações aritméticasInstruções do 8085: Operações aritméticas • Adição: Números de 8 bits, conteúdo de um registrador ou o conteúdo de uma posição de memória podem ser somados ao conteúdo acumulador euma posição de memória podem ser somados ao conteúdo acumulador e o resultado fica armazenado no acumulador. • Bits de carry são armazenados no flag de carry. • Os conteúdos de dois registradores não podem ser somados diretamente. • Para somas de 16bits, são usados pares de registradores (sendo que o par HL faz a função do acumulador).HL faz a função do acumulador). • Subtração:Mesmo princípio da soma, porém o bit armazenado na flag é referente a um borrow • Incremento/Decremento: Incrementa ou decrementa o conteúdo de• Incremento/Decremento: Incrementa ou decrementa o conteúdo de qualquer registrador, posição de memória ou par de registradores. Prof. Matheus Romão Instruções do 8085: Operações LógicasInstruções do 8085: Operações Lógicas • Lógicas: AND, OR, Ex‐OR, NOT. As operações são feitas entre um número de 8bits (ou o conteúdo de um registrador, ou de uma posição dade 8bits (ou o conteúdo de um registrador, ou de uma posição da memória) e o conteúdo do acumulador. O resultado fica no acumulador. • Rotação para esquerda ou para a direita (saltos de 1 bit). • Comparação: Igualdade, maior que, menor que. Mesmo princípio das operações lógicas. Prof. Matheus Romão Instruções do 8085: Operações de SaltoInstruções do 8085: Operações de Salto • Permitem alterar a seqüência de um programa condicional ou incondicionalmente.incondicionalmente. • Essa operações são feitas por meio de instruções de salto, subrotina CALL e RETURN e por instruções de reinicialização. Prof. Matheus Romão Instruções do 8085: Operações com pilha, de Instruções do 8085: Operações com pilha, de entrada e saída e de controleentrada e saída e de controle • Operações com pilha: Permite a transferência de dados de um par de registradores para a pilha e vice‐versaregistradores para a pilha e vice versa • Operações I/O: Transferência de dados de 8 bits para a porta de entrada ou saída. • Operações de controle: Controla as operações do processador (Interrupções, halt, etc.). Prof. Matheus Romão Instruções do 8085: Elementos das instruçõesInstruções do 8085: Elementos das instruções • Código da operação: Especifica a instrução a ser executada (C. Op. Ou Opcode)Opcode) • Fonte/Destino do operando: Especifica diretamente a fonte e o destino do operando. Ex: MOV A,B = Mover conteúdo do Reg. B (fonte) para o Acc (d ti )(destino). • Endereço fonte do operando: Especifica o endereço onde será buscado o operando. • Endereço de destino do operando: Especifica o endereço de destino de um operando (Ex: Resultado de uma operação) E d d ó i i t ã I f d d ó i• Endereço da próxima instrução: Informa o endereço onde a próxima instrução deverá ser buscada. (Ex: JUMP 2000H especifica que a próxima instrução será buscada no endereço 2000H). Prof. Matheus Romão Instruções do 8085: Formato das InstruçõesInstruções do 8085: Formato das Instruções • Instruções de 1 Byte: Somente o Opcode (Ex: MOV A,B). • Instruções de 2 Bytes: Opcode + Operando (normalmente é um dado). Ex: MVI B, 02H. • Instruções de 3 Bytes: Opcode + operando+ operando (Operandos representam um endereço ou um dado de 16bits). Ex: JMP 6200H. Prof. Matheus Romão Instruções do 8085: Formato dos Opcodes • Código dos registradores/Memória:registradores/Memória: DDD: Registrador de destinog SSS: Registrador fonte DD: Par de registradores D: Direção TT: Tipo de Flag F: Status da Flag Prof. Matheus Romão Instruções do 8085: Formato dos Opcodes • Código dos registradores/Memória: DDD: Registrador de destinog SSS: Registrador fonte DD: Par de registradores D: Direção TT: Tipo de Flag F: Status da Flag Prof. Matheus Romão Formato dos Opcodes DDD: Registrador de destinoDDD: Registrador de destino SSS: Registrador fonte DD: Par de registradores D: Direção TT: Tipo de Flag F: Status da Flag Ex: Opcode MVI B emEx: Opcode MVI B em Binario e Hex.? • 0000 0110 = 06H E 3EH f l• Ex: 3EH se refere a qual operação? • MVI A • Ex: 01H se refere a qual operação? • LXI B (Load Immediate – d d d 16bit )dado de 16bits). •Ex: 5DH se refere a qual operação?operação? • MOV E, L (copiar de L para E). Prof. Matheus Romão Instruções do 8085: Formato dos Instruções do 8085: Formato dos OperandosOperandos O operando pode ser:O operando pode ser: • Endereço: 16 Bits Unsigned Integer. • Números e dados: • 8 Bits - Signed Integer. g g • Sinal : Bit mais significativo: 0= Positivo e 1=Negativo. • 8 Bits – Unsigned Integer. • BCD (Binary Coded Decimal): Os registradores podem reter dois dígitos BCD. • Caracteres: Codígo ASCII = Código alfanumérico de 7 bits. Prof. Matheus Romão Instruções do 8085: Modos de EndereçamentoInstruções do 8085: Modos de Endereçamento 1. Imediato: O operando é o próprio dado (8 ou 16 bits). No 8085 isto é indicado pela letra “I” no fim do mnemônico. • MVI; LXI 2. Direto: O operando é um endereço ; 16Bits (2 últimos Bytes da instrução). • LDA 2000H. 3. Indireto por registrador: O endereço da memória está armazenado em um par de registradores. • LDAX B = Carrega Acc com o conteúdo do par de registradores BC• LDAX B = Carrega Acc com o conteúdo do par de registradores BC. 4. Implícito: O Opcode especifica o endereço do operando. • CMA = Complemento do conteúdo do Acc• CMA = Complemento do conteúdo do Acc. 5. Por Registrador: Os operandos são registradores. • MOV A BMOV A, B. Prof. Matheus Romão Instruções do 8085: Lista de InstruçõesInstruções do 8085: Lista de Instruções • Notação: – M: Posição da memória apontada pelo par de registradores HLM: Posição da memória apontada pelo par de registradores HL – r: Registrador de 8 bits – Rp: Par de registradores (16 bits) – Rs: Registrador de origem (Source Register)Rs: Registrador de origem (Source Register) – Rd:Registrador de Destino (Destination Register) – Addr: Endereço 16 bits ou 8 bits. Prof. Matheus Romão Instruções do 8085: Lista de InstruçõesInstruções do 8085: Lista de Instruções Carrega o registrador especificado na instrução (A, B, C, D, E, H ou L) com o dado (8bits) também especificado na instrução. Instrução de 2 Bytes. Ciclos de máquina: 2 Número de estados:7 Opcodes Número de estados:7 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de InstruçõesInstruções do 8085: Lista de Instruções MVI: Move Immediate to memory Carrega o dado (especificado na instrução) no endereço da memória especificado no par de registradores HL. Instruçãode 2 Bytes. Ciclos de máquina: 3 Número de estados:10 Opcode: 36H Número de estados:10 Endereçamento: Imediato/ Indireto por registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados • MOV (Move): Copia dados (sem perda da informação da origem) 1 Entre registradores1. Entre registradores 2. Registrador para a memória 3. Memória para registrador Copia o conteúdo do registrador (reg2) em outro registrador (reg1). Reg2 e Reg1 devem ser A, B, C, D, E, H, L Obs: Mov A A = NOP (com um ciclo de máquina aObs: Mov A,A = NOP (com um ciclo de máquina a mais). Operação: reg1 ← reg2 Instrução de 1 Byte. Ciclos de máquina: 1 Número de estados:4 Endereçamento: RegistradorEndereçamento: Registrador Flags envolvidas: Nenhuma B=20H Mov A,B = Copia 20H para A Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados • MOV: Copia dados (sem perda da informação da origem) 1 Entre registradores1. Entre registradores 2. Registrador para a memória 3. Memória para registrador Copia o conteúdo do registrador (r) no endereço da memória apontado pelo par HL. Operação: (HL) r Instrução de 1 Byte. Ciclos de máquina: 2 Número de estados:7 Operação: (HL)← r Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas: Nenhuma HL 2050H B 30HHL=2050H, B=30H MOV M,B -Copiar 30H no endereço 2050H da memória Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados • MOV: Copia dados (sem perda da informação da origem) 1 Entre registradores1. Entre registradores 2. Registrador para a memória 3. Memória para registrador Copia o conteúdo da memória no endereço indicado em HL para o registrador (r). Operação: r (HL) Instrução de 1 Byte. Ciclos de máquina: 2 Número de estados:7 Operação: r ← (HL) Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas: Nenhuma HL 2050H C t úd 2050H 40HHL=2050H, Conteúdo em 2050H= 40H MOV C,M Copiar 40H no registrador C Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados Carrega o dado de 16 bits (especificado na instrução), no par de registrador (especificado na instrução). Par de registradores: BC, DE, HL ou Stack Pointer. Par é especificado pelo byte mais significativoPar é especificado pelo byte mais significativo. Rp← dado(16 bits) Instrução de 3 Bytes. Ciclos de máquina: 3 Número de estados:10 Endereçamento: ImediatoEndereçamento: Imediato Flags envolvidas: Nenhuma LXI B, 1020H Carrega 10H em B e 20H em CCarrega 10H em B e 20H em C. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados STA: Store Acumulator Direct Guarda o valor do Acumulador no endereço da memória especificado na instrução. STA: Store Acumulator Direct (address) ← A Instrução de 3 Bytes. Ciclos de máquina: 4 Número de estados:13Número de estados:13 Endereçamento: Direto Flags envolvidas: Nenhuma A= 50H STA 2000H Armazenar 50H no endereço 2000H da memória. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados LDA: Load Acumulator Direct Carregar o acumulador com o conteúdo da memória cujo endereço (16 bits) é especificado na instrução. LDA: Load Acumulator Direct A ← (address) Instrução de 3 Bytes. Ciclos de máquina: 4 Número de estados:13Número de estados:13 Endereçamento: Direto Flags envolvidas: Nenhuma (2000H)=30H LDA 2000H = Carrega 30H no Acumulador.LDA 2000H Carrega 30H no Acumulador. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados SHLD: Store H and L Direct Armazenar o conteúdo do par HL na memória. O t úd d i t d L é d d d ó i ifi d i t ã• O conteúdo do registrador L é armazenado no endereço da memória especificado na instrução. • O conteúdo de H é automaticamente armazenado no endereço seguinte da memória. (address) ← L e (address+1) ← H Instrução de 3 Bytes. Ciclos de máquina: 5 Número de estados:16 Endereçamento: DiretoEndereçamento: Direto Flags envolvidas: Nenhuma H=30H e L=60H SHLD 2500H - 60H é gravado no endereço 2500 e 30H é gravado no endereço 2501H.Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados LHLD: Load H and L Direct Armazenar o conteúdo de dois endereços consecutivos da memória nos registradores HL. O t úd d d ifi d i t ã é d L• O conteúdo do endereço especificado na instrução é armazenado em L. • O conteúdo do endereço seguinte é automaticamente armazenado em H. L ← (address) e H ← (address+1) Instrução de 3 Bytes. Ciclos de máquina: 5 Número de estados:16 Endereçamento: DiretoEndereçamento: Direto Flags envolvidas: Nenhuma (2500H)=30H e (2501H)=60H LHLD 2500H = 30H é gravado em L e 60H é gravado em H.Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados LDAX: Load Accumulator Indirect • Carrega o acumulador com o conteúdo da memória apontado pelo par de registradores especificados na instrução. E t d BC DE ( b t d i d é ifi d )• Este par pode ser BC ou DE (apenas o byte de maior ordem é especificado). A ← (rp) Instrução de 1 Byte. Ciclos de máquina: 2q Número de estados:7 Endereçamento: Indireto por registrador Flags envolvidas: Nenhuma DE=2030H, (2030H)=80H LDAX D - Carregar A com 80H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados STAX: Store Accumulator Indirect • Copia o conteúdo do acumulador na posição da memória apontada pelo par de registradores especificado na instrução. E t d BC DE ( b t d i d é ifi d )• Este par pode ser BC ou DE (apenas o byte de maior ordem é especificado). (rp) ← A Instrução de 1 Byte. Ciclos de máquina: 2q Número de estados:7 Endereçamento: Indireto por registrador Flags envolvidas: Nenhuma BC=1020H, A=50H STAX B = Armazenar 50H no endereço 1020H da memória.Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Transferência de Dados XCHG: Exchange H and L with D and Eg Troca o conteúdo dos registradores H e L com o conteúdo dos registradores D e E ti trespectivamente. H <-> D L <-> EH <-> D , L <-> E Instrução de 1 Byte. Ciclos de máquina: 1q Número de estados:4 Endereçamento: Registrador Flags envolvidas: Nenhuma DE=2040H , HL=7080H XCHG H=20H, L=40H, D=70H, E=80H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas ADD: Soma o conteúdo de um registrador (especificado na instrução) ao conteúdo do acumulador. O resultado fica armazenado no acumulador. A ← A+reg Instrução de 1 Byte. Ciclos de máquina: 1 Número de estados:4 Endereçamento: Registrador Flags envolvidas: Z, S, P, CY, AC Reg. D Reg AReg.A Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas ADD: Soma o conteúdo do acumulador ao conteúdo do endereço de memória apontado pelo par HL. N ili d• Não utiliza o carry, mas pode gerar um carry. A← A + ( (H) + (L)) Instrução de 1 Byte. Ciclos de máquina: 2 Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas: Z, S, P, CY, AC A=20H, HL=2050H; (2050H)=10H; ADD M;ADD M; A=30H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas ADI: ADD IMMEDIATEADI: ADD IMMEDIATE Adiciona o dado (8bits) especificado na instrução ao conteúdo do acumulador. O resultado fica armazenado no acumuladorresultado fica armazenado no acumulador. Instrução de 2 Bytes. A← A + data Ciclos de máquina: 2 Número de estados:7 Endereçamento: Imediato Flags envolvidas: Z, S, P, CY, AC A=50H;A=50H; ADI 70H A=C0H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções– Operações Aritméticas ADC: ADD With CarryADC: ADD With Carry Adiciona o conteúdo do registrador especificado na instrução ao conteúdo do acumulador e ao valor da flag de carry O resultado fica armazenado noacumulador e ao valor da flag de carry. O resultado fica armazenado no acumulador. A A + + CY Instrução de 1 Bytes. A← A + reg + CY Ciclos de máquina: 1 Número de estados:4 Endereçamento: Registrador Flags envolvidas: Z, S, P, CY, AC A=50H; CY=1; C=20H ADC C A=71H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas ADC (Add memory to accumulator with Carry): Soma o conteúdo do acumulador ao conteúdo da posição da memória apontada pelo par HL e à flag de carry. A← A + (HL) + CY Instrução de 1 Bytes. Ciclos de máquina: 2 Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas: Z, S, P, CY, AC A=20H, CY=1, HL=2050H, (2050H)=30H, , , ( ) ADC M A=51H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas ACI (Add Immediate with Carry): Soma o dado (8bits) especificado na instrução ao conteúdo do acumulador e ao valor da flag de carry. A← A + data + CY Instrução de 2 Bytes. Ciclos de máquina: 2 Número de estados:7 Endereçamento: Imediato Flags envolvidas: Z, S, P, CY, AC A=30H, CY=1, ACI 20H A=51H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas DAD: Double Register ADD Soma o conteúdo do par de registradores (especificado na instrução) ao conteúdo do par HL. HL← HL + rp Instrução de 1 Byte. Ciclos de máquina: 3 Número de estados:10 Endereçamento: RegistradorEndereçamento: Registrador Flags envolvidas: CY DE=1020H , HL=2050H, DAD D HL=3070H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas SUB:SUB: Subtrai o conteúdo do registrador (especificado na instrução) ao conteúdo do acumulador. O resultado fica armazenado no acumulador. A← A - reg Instrução de 1 Byte.Instrução de 1 Byte. Ciclos de máquina: 1 Número de estados:4 Endereçamento: Registrador Flags envolvidas: Z, S, P, CY, ACFlags envolvidas: Z, S, P, CY, AC A=50H , B=30H, SUB B A=20H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas SUB M: Subtrai do acumulador o valor armazenado na posição de memória apontada pelo par HL. A← A – (HL) Instrução de 1 Byte. Ciclos de máquina: 2 Número de estados:7Número de estados:7 Endereçamento: Indireto via Registrador Flags envolvidas: Z, S, P, CY, AC HL=1020H, A=50H, (1020H)=10H SUB M A=40HA 40H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas SUI: Subtract Immediate Subtrai do acumulador o dado (8bits) especificado na instrução e armazena o valor l dno acumulador. A← A – data Cod. Op = D6H Instrução de 2 Bytes. Ciclos de máquina: 2 Número de estados:7 Endereçamento: ImediatoEndereçamento: Imediato Flags envolvidas: Z, S, P, CY, AC A=40H SUI 20H A=20H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas SBB reg: Subtract with BorrowSBB reg: Subtract with Borrow Subtrai do acumulador o conteúdo do registrador especificado na instrução e o valor contido na flag de borrow (neste caso CY) O resultado éo valor contido na flag de borrow (neste caso, CY). O resultado é armazenado no acumulador. A← A - reg - CY Instrução de 1 Byte. Ciclos de máquina: 1 Número de estados:4 Endereçamento: RegistradorEndereçamento: Registrador Flags envolvidas: Z, S, P, CY, AC CY 1 C 20H A 40HCY=1, C=20H, A=40H SBB C A=1FH Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas SBB M: Subtract with BorrowSBB M: Subtract with Borrow Subtrai do acumulador o conteúdo da memória apontado por HL e o valor contido na flag de borrow (neste caso CY) O resultado é armazenado nocontido na flag de borrow (neste caso, CY). O resultado é armazenado no acumulador. A← A – (HL) - CY Instrução de 1 Byte. Ciclos de máquina: 2 Número de estados:7 Endereçamento: Indireto via RegistradorEndereçamento: Indireto via Registrador Flags envolvidas: Z, S, P, CY, AC CY 1 HL 2050H A 50H (2050H) 10HCY=1, HL=2050H, A=50H, (2050H)=10H SBB M A=3FH Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas SBI: Subtract Immediate with Borrow Subtrai do acumulador o dado (8 bits) especificado na instrução e o valor da flag de borrow. O resultado é armazenado no acumulador. A A d t CYA← A - data - CY Opcode= DEH Instrução de 2 Bytes. Ciclos de máquina: 2 Número de estados:7 Endereçamento: ImediatoEndereçamento: Imediato Flags envolvidas: Z, S, P, CY, AC CY=1, A=50H SBI 20H A=2FH Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas DAA: Decimal Adjust Accumulator Ajusta o valor da acumulador para a codificação BCD (Binary Coded Decimal). S 4 bit i ifi ti d l d d l i• Se os 4 bits menos significativos do acumulador corresponderem a um valor maior que 9 ou se a flag de carry auxiliar estiver ativada, DAA adiciona 6 ao acumulador. • Se os 4 bits mais significativos do acumulador correponderem a um valor maior que 9 ou se a flag de carry estivar ativada, DAA adiciona 6 aos 4 bits mais significativos.ou se a flag de carry estivar ativada, DAA adiciona 6 aos 4 bits mais significativos. Opcode= 27Hp Instrução de 1 Byte. Ciclos de máquina: 1q Número de estados:4 Endereçamento: Registrador Flags envolvidas: Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas INR: IncrementINR: Increment Incrementa o valor contido no registrador especificado na instrução. Reg pode ser: A, B, C, D, E, H, LReg pode ser: A, B, C, D, E, H, L + 1reg← reg + 1 Instrução de 1 ByteInstrução de 1 Byte. Ciclos de máquina: 1 Número de estados:4 Endereçamento: Registrador Flags envolvidas: Z S P ACFlags envolvidas: Z, S, P, AC B=10HB=10H INR B B=11H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas INR M: Increment MemoryINR M: Increment Memory Incrementa o valor contido na posição da memória apontada por HL. M← M + 1 Instrução de 1 Byte OpCode = 34H Instrução de 1 Byte. Ciclos de máquina:3 Número de estados:10 Endereçamento: Indireto via Registrador Flags envolvidas: Z S P ACFlags envolvidas: Z, S, P, AC HL=2050H (2050H)=30HHL=2050H, (2050H)=30H INR M (2050)=31H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas INX: Increment Register Pair • Incrementa o valor contido no par de registradores especificado na instrução.p g p ç rp← rp + 1 Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:6 Endereçamento: Registrador Flags envolvidas: nenhuma HL=10FFHHL 10FFH INX H HL=1100H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas DCR: Decrement • Decrementa o valor contido no registrador especificado na instrução.g p ç •Reg pode ser: A, B, C, D, E, H, L reg← reg -1 Instrução de 1 Byte. Ciclos de máquina:1 g g Ciclos de máquina:1 Número de estados:4 Endereçamento: Registrador Flags envolvidas: Z,S,P,AC E=20H DCR E E=1FH Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Aritméticas DCR: Memory Decrement • Decrementa o valor contido no endereço da memória apontado pelo par HL.ç p p p M← M -1 O C d 35H Instrução de 1 Byte. Ciclos de máquina:3 OpCode = 35H Ciclos de máquina:3 Número de estados:10 Endereçamento: Indireto via Registrador Flags envolvidas: Z,S,P,AC HL=2050H, (2050H)=21H DCR M (2050H)=20H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações AritméticasDCX: Decrement Register Pair • Decrementa o valor contido no par de registradores especificado na instrução.p g p ç Instrução de 1 Byte. Ciclos de máquina:1 rp← rp -1 Ciclos de máquina:1 Número de estados:6 Endereçamento: Registrador Flags envolvidas: nenhuma DE=1020H DCX D DE=101FH Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas ANA L i l AND ith A l tANA: Logical AND with Accumulator • Efetua operação Lógica AND entre o registrador especificado na instrução e o conteúdo do acumuladorconteúdo do acumulador. •Reg pode ser: A, B, C, D, E, H, L A A ^A← A ^ reg Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4Número de estados:4 Endereçamento: Registrador Flags envolvidas:Z, S, P, CY, AC ANA B; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas ANAM M AND ith A l tANA M: Memory AND with Accumulator • Efetua operação Lógica AND entre o conteúdo da memória apontado por HL e o conteúdo do acumuladorconteúdo do acumulador. A← A ^ M OpCode = A6H Instrução de 1 Byte. Ciclos de máquina:2 Número de estados:7 Endereçamento: Indireto via RegistradorEndereçamento: Indireto via Registrador Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas ANI: AND Immediate with Accumulator Efetua operação lógica AND entre o valor contido no acumulador e o dado (8bits) ifi d iespecificado na instrução. OpCode = E6H A← A ^ data Instrução de 2 Bytes. Ciclos de máquina:2 Número de estados:7 Endereçamento: Imediato Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas XRA: XOR with Accumulator • Efetua a operação lógica Xor entre o valor contido no registrador especificadoEfetua a operação lógica Xor entre o valor contido no registrador especificado na instrução e o valor contido no acumulador. • Reg pode ser: A, B, C, D, E, H, L Instrução de 1 Byte. Ciclos de máquina:1Ciclos de máquina:1 Número de estados:4 Endereçamento: Registrador Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas XRA: Memory XOR with Accumulator • Efetua a operação lógica XOr entre o valor contido no enderço da memóriaEfetua a operação lógica XOr entre o valor contido no enderço da memória apontado pelo par HL. Instrução de 1 Byte. Ciclos de máquina:2 Número de estados:7 OpCode= AEH Endereçamento: Indireto via Registrador Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas XRI : Exclusive OR Immediate with Accumulator Efetua a operação lógica OU Exclusivo entre o dado (8bits) especificado na instrução e o dado armazenado no acumulador. OpCode= EEH Instrução de 2 Bytes. Ciclos de máquina:2 Número de estados:7 Endereçamento: Imediato Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas OR with Accumulator • Efetua a operação lógica OU entre o conteúdo do registrador especificado na p ç g g p instrução e o conteúdo do acumulador. • Reg pode ser: A, B, C, D, E, H, L Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Endereçamento: Registrador Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas OR with Accumulator Efetua a operação lógica OU entre o conteúdo da memória no endereço apontado p ç g ç p pelo par HL e o conteúdo do acumulador. Instrução de 1 Byte. Ciclos de máquina:2 Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas:Z, S, P, CY, AC OpCode= B6H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas ORI: OR Immediate Efetua a operação lógica OU entre o conteúdo do acumulador e o dado (8bits)Efetua a operação lógica OU entre o conteúdo do acumulador e o dado (8bits) especificado na instrução. OpCode= F6Hp Instrução de 2 Bytes. Ciclos de máquina:2 Número de estados:7 E d t I di tEndereçamento: Imediato Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas CMP C ith A l tCMP: Compare with Accumulator • Efetua a subtração entre o conteúdo do registrador especificado na instrução e o conteúdo do acumuladorconteúdo do acumulador. Se os conteúdos forem iguais, a flag Zero é colocada em Set. Se o conteúdo do acumulador for menor que o conteúdo do registrador, a flag de Carry é colocada em SetSet. • Reg pode ser: A, B, C, D, E, H, L A -reg Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Endereçamento: RegistradorEndereçamento: Registrador Flags envolvidas:Z, S, P, CY, AC CMP D; Set na flag de carry. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas CMP C M ith A l tCMP: Compare Memory with Accumulator • Efetua a subtração entre o conteúdo da memória localizado na posição apontada pelo par HL e o conteúdo do acumuladorpelo par HL e o conteúdo do acumulador. Se os conteúdos forem iguais, a flag Zero é colocada em Set. Se o conteúdo do acumulador for menor que o conteúdo da memória, a flag de Carry é colocada em SetSet. A – M Instrução de 1 Byte OpCode= BEH Instrução de 1 Byte. Ciclos de máquina:2 Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas:Z S P CY ACFlags envolvidas:Z, S, P, CY, AC CMP M; Set na flag de Zero. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas CPI: Compare ImmediateCPI: Compare Immediate. • Efetua a subtração entre o conteúdo do dado (8bits) especificado na instrução e o conteúdo do acumulador. Se os conteúdos forem iguais, a flag Zero é colocada em Set. Se o conteúdo doSe os conteúdos forem iguais, a flag Zero é colocada em Set. Se o conteúdo do acumulador for menor que o dado, a flag de Carry é colocada em Set. OpCode= FEH A – data Instrução de 2 BytesInstrução de 2 Bytes. Ciclos de máquina:2 Número de estados:7 Endereçamento: Indireto por Registrador Flags envolvidas:Z S P CY ACFlags envolvidas:Z, S, P, CY, AC CPI 30HCPI 30H; Flag zero = 0 (reset) Flag Carry= 0 (reset) Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas STC: Set CarrySTC: Set Carry • Set na flag de Carry CY← 1 O C d 37H Instrução de 1 Byte. OpCode= 37H ç y Ciclos de máquina:1 Número de estados:4 Flags envolvidas:CY Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas CMC C l t CCMC: Complement Carry • Efetua o complemento da flag de Carry. OpCode= 3FH Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Flags envolvidas:CY Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas CMA C l t A l tCMA: Complement Accumulator • Efetua o complemento do conteúdo do acumulador. OpCode= 2FH Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Flags envolvidas:Nenhuma A 10001000 88HA=10001000=88H CMA; A=01110111=77H; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas RLC: Rotate Accumulator Left • Desloca o conteúdo do acumulador para a esquerda. • O conteúdo do MSB do acumulador é colocado no LSB e também na flag CY• O conteúdo do MSB do acumulador é colocado no LSB e também na flag CY. Instrução de 1 Byte OpCode= 07H Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Flags envolvidas:CY A=01010111 (57H); CY=1; RLC; A=10101110 (AEH) CY=0; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas RRC: Rotate Accumulator Right • Desloca o conteúdodo acumulador para a direita. • O conteúdo do LSB do acumulador é colocado no MSB e também na flag CY• O conteúdo do LSB do acumulador é colocado no MSB e também na flag CY. Instrução de 1 Byte OpCode= 0FH Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Flags envolvidas:CY A=10011010 (9AH); CY=1; RRC; A=01001101 (4DH) CY=0; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas RAL: Rotate Left Through Carry • Desloca o conteúdo do acumulador para a esquerda. • O conteúdo do MSB do acumulador é colocado no CY e o conteúdo do CY é• O conteúdo do MSB do acumulador é colocado no CY e o conteúdo do CY é colocado no LSB. OpCode= 17H Instrução de 1 Byte p Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Flags envolvidas:CY A=10101101 (ADH); CY=0; RAL; A=01011010 (5AH) CY=1; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações Lógicas RAR: Rotate Right Through Carry • Desloca o conteúdo do acumulador para a direita. • O conteúdo do LSB do acumulador é colocado no CY e o conteúdo do CY é• O conteúdo do LSB do acumulador é colocado no CY e o conteúdo do CY é colocado no MSB. OpCode= 1FH Instrução de 1 Byte p Instrução de 1 Byte. Ciclos de máquina:1 Número de estados:4 Flags envolvidas:CY A=10100011 (A3H); CY=0; RAR; A=01010001 (51H) CY=1; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha PUSH: Copia o conteúdo do par de registradores (especificados na instrução) na pilha. PSW (Program Status Word) = Conteúdo do acumulador e o valor das FlagsPSW (Program Status Word) Conteúdo do acumulador e o valor das Flags. • Decrementa SP (SP-1) e copia o conteúdo do byte superior do par de registradores na posição da memória apontada por SP-1. •Novamente, decrementa SP (SP-1) e copia o conteúdo do byte inferior do par de , ( ) p y p registradores na posição da memória apontada por SP-1. SP← SP- 1; (SP) ← rpH; SP ←SP-1; (SP) ←rpL; ( ) p ; ; ( ) p Instrução de 1 Byte. Ciclos de máquina:3Ciclos de máquina:3 Número de estados:13 Flags envolvidas:Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha SP=2000H, DE=1050H. PUSH D; Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha PUSH PSW Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha POP: • Copia o conteúdo de duas posições consecutivas do SP no par de registradores especificado na instrução. • O byte inferior é retirado primeiro. • Incrementa-se SP • Retira o byte superior Instrução de 1 Byte. Ciclos de máquina:3 Nú d t d 10Número de estados:10 Endereçamento: Indireto via registrador Flags envolvidas:Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha POP: No caso de PSW, o conteúdo das duas posições são gravados no acumulador e no registrador que armazena os valores das flagsregistrador que armazena os valores das flags. OpCode= F1HOpCode F1H Instrução de 1 Byte. Ciclos de máquina:3 Número de estados:10 Endereçamento: Indireto via registrador Flags envolvidas:Z, S, P, CY, AC Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha SPHL: MOVE H&L to SP • Copia o conteúdo do par de registradores HL para o SP• Copia o conteúdo do par de registradores HL para o SP. OpCode= F9H SP HL OpCode F9H SP← HL Instrução de 1 Byte. Ciclos de máquina:1Ciclos de máquina:1 Número de estados:6 Endereçamento: Registrador Flags envolvidas:Nenhuma HL=2500H SPHLSPHL Copia 2500H na pilha. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações com Pilha XTHL: Exchange H&L with Top of StackXTHL: Exchange H&L with Top of Stack • Troca o conteúdo de HL com o conteúdo de duas posições consecutivas da memória apontadas por SP.memória apontadas por SP. • O valor de SP não se altera. OpCode= E3H Instrução de 1 Byte. Ciclos de máquina:5 Número de estados:16 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JMP: JUMP • Carrega o contador do programa (PC) com o endereço especificado na instrução. PC← address OpCode= C3H PC← address Instrução de 3 Bytes.Instrução de 3 Bytes. Ciclos de máquina:3 Número de estados:10 Endereçamento: Imediato Flags envolvidas: NenhumaFlags envolvidas: Nenhuma JMP 2000HJMP 2000H Carrega 2000H no PC. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto J d JUMP di i lJcond: JUMP condicional • Carrega o contador do programa (PC) com o endereço especificado na instrução se uma determinada condição ocorreruma determinada condição ocorrer. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JC J if (CY 1)JC: Jump if carry (CY=1) OpCode= DAH Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JNC J if (CY 0)JNC: Jump if no carry (CY=0) OpCode= D2H Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JP J if iti (S 0)JP: Jump if positive (S=0) S= Flag de sinal OpCode= F2H Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JM J if Mi (S 1)JM: Jump if Minus(S=1) S= Flag de sinal OpCode= FAH Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JPE J if P it E (P 1)JPE: Jump if Parity Even(P=1) P= Flag de Paridade OpCode= EAH Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JPO J if P it ODD(P 0)JPO: Jump if Parity ODD(P=0) P= Flag de Paridade OpCode= E2H Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JZ J if Z (Z 1)JZ: Jump if Zero(Z=1) Z= Flag de Zero OpCode= CAH Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto JNZ J if N t Z (Z 0)JNZ: Jump if Not Zero(Z=0) Z= Flag de Zero OpCode= C2H Instrução de 3 Bytes. Ciclos de máquina:2 ou 3 p Ciclos de máquina:2 ou 3 Número de estados:7 ou 10 Endereçamento: Imediato Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL: • Combina as instruções PUSH e JMP. • Guarda o conteúdo de PC na pilha e armazena em PC o endereço especificado na instrução (desvia o processador para esse endereço). OpCode= CDHp Instrução de 3 Bytes.Ciclos de máquina: 5 Número de estados:18 Endereçamento: Imediato/ Indireto via registradorç g Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CC: Call if carry (CY=1) OpCode= DCH Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorç g Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CNC: Call if Not carry (CY=0) OpCode= D4H Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorç g Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CP: Call if Positive (S=0) OpCode= F4H Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorEndereçamento: Imediato/ Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CM: Call if Minus (S=1) OpCode= FCH Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorEndereçamento: Imediato/ Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CPE: Call if Parity Even (P=1) OpCode= ECH Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorEndereçamento: Imediato/ Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CPO: Call if Parity ODD (P=0) OpCode= E4H Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorEndereçamento: Imediato/ Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CZ: Call if Zero (Z=1) OpCode= CCH Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorEndereçamento: Imediato/ Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto CALL Condicional: • CNZ: Call if Not Zero (Z=0) OpCode= C4H Instrução de 3 Bytes. Ciclos de máquina: 2 ou 5 Número de estados:9 ou18 Endereçamento: Imediato/ Indireto via registradorEndereçamento: Imediato/ Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto RET: Return From Subroutine • Carrega o PC com o endereço de retorno• Carrega o PC com o endereço de retorno. •Este endereço está guardado na pilha. •Após carregar o PC, o processador volta a executar as instruções de forma sequencialsequencial. OpCode= C9H Instrução de 1 Byte. Ciclos de máquina: 3q Número de estados: 10 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RC: Return If Carry (CY=1) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= D8H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RNC: Return If No Carry (CY=0) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= D0H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RP: Return If Positive (S=0) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= F0H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RM: Return If Minus (S=1) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= F8H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RPE: Return If Parity Even (P=1) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= E8H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RPO: Return If Parity ODD (P=0) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= E0H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RZ: Return If Zero (Z=1) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= C8H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto Return Condicional: • RNZ: Return If Not Zero (Z=0) Instrução de 1 Byte. Ciclos de máquina: 1 ou 3 Número de estados: 6 ou 12 OpCode= C0H Número de estados: 6 ou 12 Endereçamento: Indireto via registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto PCHL: MOVE H&L to Program Counter • Carrega o conteúdo de HL no contador de Programa (PC). PC← HL OpCode= E9H Instrução de 1 Byte. Ciclos de máquina: 1 PC← HL p q Número de estados: 6 Endereçamento: Registrador Flags envolvidas: Nenhuma HL=6000H PCHL;PCHL; PC=6000H. Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Salto RST: Restart • Transfere o PC para um endereço específico da memória. • Pode ser vista como uma instrução Call de endereços fixos (code). Instrução de 1 Byte. Ciclos de máquina: 3Ciclos de máquina: 3 Número de estados: 12 Endereçamento: Indireto via Registrador Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Entrada e Saída IN: Input From Port • Lê os 8 bits de dados da porta cujo endereço é especificado na instrução e p j ç p ç armazena estes dados no acumulador. OpCode= DBH A← (exp)A← (exp) Instrução de 2 Bytes. Ciclos de máquina: 3 Número de estados: 10Número de estados: 10 Endereçamento: Direto Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Entrada e Saída OUT: Output to Port •Coloca o conteúdo do acumulador no barramento de dados e o número da porta p no barramento de endereço. Como os endereços das portas está limitadoa faixa 0- 255, essa informação é duplicada no barramento de endereço (aparece em AD0- AD7 e A8-A15. OpCode= D3H (exp)←A Instrução de 2 Bytes. Ciclos de máquina: 3 Número de estados: 10 Endereçamento: DiretoEndereçamento: Direto Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Controle EI: Enable Interrupts • Habilita as interrupções• Habilita as interrupções O C d FBH IE(F/F) 1 OpCode= FBH IE(F/F)←1 Instrução de 1 Byte. Ciclos de máquina: 1Ciclos de máquina: 1 Número de estados: 4 Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Controle DI: Disable Interrupts • Desabilita as interrupções• Desabilita as interrupções. O C d F3H IE(F/F) 0 OpCode= F3H IE(F/F)←0 Instrução de 1 Byte. Ciclos de máquina: 1Ciclos de máquina: 1 Número de estados: 4 Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Controle NOP: No Operation • Processador não efetua nenhuma operação• Processador não efetua nenhuma operação. O C d 00H Instrução de 1 Byte. OpCode= 00H Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Controle HLT: Halt • Pára o Processador• Pára o Processador. • Para reiniciar: • Sinal de Reset • Interrupção OpCode= 76H • Interrupção Instrução de 1 Byte. Ciclos de máquina: 1Ciclos de máquina: 1 Número de estados: 5 Flags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Controle SIM: Set Interrupt Mask • Promove o mascaramento seletivo das interrupções. E i d d d f i l l i SOD• Evia dados de forma serial pelo pino SOD. Instrução de 1 Byte. Ciclos de máquina: 1 Número de estados: 4 Flags envolvidas: NenhumaFlags envolvidas: Nenhuma Prof. Matheus Romão Instruções do 8085: Lista de Instruções – Operações de Controle RIM: Read Interrupt Mask • Copia o status das interrupções no acumulador. • Faz a leitura serial de dados pelo pino SID. Prof. Matheus Romão Programação em Programação em AssemblyAssembly • Fluxograma: Representação gráfica relacionada à execução de um programa, que auxilia a sua compreensão. p Início ou Fim de um processamento Sentido do fluxo Operação de Entrada ou Saída Execução de um cálculo,tarefa. Decisão Execução de SubrotinaExecução de Subrotina Conector: Ligação com outra parte do fluxograma Prof. Matheus Romão Programação em Programação em AssemblyAssembly Exemplo de Fluxograma:Exemplo de Fluxograma: MVI A 20H C 20H i t d AMVI A, 20H ; Carrega 20H no registrador A MVI B, 40H ; Carrega 40H no registrador B ADD B ; Somar os dois números STA 2000H ; Armazenar o resultado na posição ; 2000H da memória HLT ; Finaliza a execução do programaHLT ; Finaliza a execução do programa Prof. Matheus Romão Programação em Programação em AssemblyAssembly Código em Hexadecimal OBS: MVI 2 B t (1 O C d 1 O d )MVI r: 2 Bytes (1 Op. Code + 1 Operando); endereçamento imediato. ADD r: 1 Byte; endereçamento por registrador. STA addr: 3 bytes (1 Op. Code + 2 Operandos); d t di tendereçamento direto HLT : 1 Byte ; não há endereçamento Prof. Matheus Romão Programação em Programação em AssemblyAssembly: Exemplos: Exemplos EX: 2 EX: 3 Prof. Matheus Romão Programação em Programação em AssemblyAssembly: Exemplos: Exemplos EX: 4EX: 4 EX: 5 Prof. Matheus Romão • Referências: • Notas de aula do prof. GURSHARAN SINGH TATLATATLA • A. P. Godse D . A . Godse “Microprocessor & Microcontroller System” 1ª Ed. • Intel Corporation ‐ 8080/8085 AssemblyIntel Corporation 8080/8085 Assembly Language Programming Prof. Matheus Romão
Compartilhar