Você está na página 1de 8

1

UNIP Campus Manaus


CST em Automao Industrial - Turmas AI3P34/AI4P34/AI4Q34
Notas de Aula Aula 05 2. Semestre 2012 Microprocessador 8085 Microprocessador 8085 Microprocessador de 8 bits de propsito geral (com 6.200 transistores); Opera com +5V e GND. Os antecessores precisavam de +12V, +5V e -5V (3 tenses); Conjunto de instrues com 74 instrues. Instrues do 8085 possuem 1, 2 ou 3 bytes. Instruo a ordem ou tarefa a ser executada, representada por palavras reservadas especficas para aquela arquitetura (set de instrues). De acordo com a implementao em particular, pode ser decodificada em 1 ou mais opcodes. Opcode um pedao de uma instruo da linguagem de mquina que especifica a operao a ser executada. O termo uma abreviao de Operation Code (Cdigo de Operao). Identifica a operao a ser realizada pelo processador. o campo da instruo cuja valor binrio identifica ( o cdigo binrio) da operao a ser realizada. Este cdigo a entrada no decodificador de instrues na unidade de controle. Cada instruo dever ter um cdigo nico que a identifique. O diagrama em blocos do microprocessador apresentado na figura 1. Embora complexa, esta estrutura pode ser dividida em 3 grandes reas: 1) Controle, sequencializao e temporizao; 2)Lgica e aritmtica; 3)Outras funes.

Figura 1 Diagrama em blocos do 8085

2 Controle, sequencializao e temporizao do microprocessador a) Registrador "Contador de Programa PC (Program Counter): - Registrador que armazena o endereo da prxima instruo a ser executada. - Incrementado pela unidade de controle aps a execuo de uma instruo. - Sendo um registrador de 16 bits o registrador PC pode indicar at 65536 diferentes endereos (0 a 65535 ou 0000h a FFFFh). OBS: as instrues esto localizadas na memria e precisam ser transferidas para dentro da CPU. b)"Registrador de Instruo" (IR - Instruction Register): - um registrador de 8 bits que armazena o primeiro byte da instruo (OPCODE), ou seja, o contedo da memria apontado (endereado) pelo registrador PC. c)Decodificador de Instruo e Codificador de Ciclo de Mquina: - Registrador responsvel pela decodificao de cada instruo e de definio dos ciclos de mquina que sero controlados pela unidade de controle. d)Unidade "Temporizao e Controle" (UTC) - Responsvel por gerar todos os sinais de controle do 8085, tais como: - Sinais de leitura (RD\) e escrita (WR\) de memria, - Sinais de liberao de barramento para um perifrico (HLDA) - Sinal de habilitao de endereo para um perifrico (ALE). - Entre outros. - Todas as unidades internas do 8085 so controladas por esta unidade; - Os sinais de controle para outras unidades so enviados aps a decodificao das instrues vindas do Registrador de Instrues (IR). - Recebe ainda sinais do registrador de Flags* e da unidade de interrupes*. Lgica e aritimtica a)Unidade Lgico-Aritmtica (ULA ou ALU): - Responsvel por todo o processamento realizado na CPU (execuo de instrues aritmticas e lgicas). - controlada por sinais internos emitidos pela Unidade de Controle. - Tem como entrada os registradores A (Acumulador) e TEMP (Temporrio). - responsvel pela sinalizao de status das operaes (FLAGS). b)Registrador Acumulador: - Principal registrador da CPU. utilizado como Buffer temporrio de entrada da Unidade Lgica e Aritmtica (ALU ou ULA). - Freqentemente o registrador de entrada ou sada da CPU. - utilizado implicitamente na maioria das instrues. - um registrador de 8 bits, o que permite trabalhar com nmeros sem sinal de 0 a 255 e nmeros com sinal de -128 a +127. - O resultado das operaes resultantes da ULA enviado SEMPRE para o Acumulador. c)Registrador TEMP: - um registrador auxiliar usado para a entrada de dados da Unidade Lgico-Aritmtica. - Os dados desse registrador so enviados para a ULA juntamente com os dados do Acumulador. d)Registrador "Flip-flops dos flags": - Tambm conhecido como registrador F (de Flags), ou registrador PSW (Program Status Word). - Registrador de 8 bits (mas somente 5 bits so utilizados) que armazena o estado da ltima operao realizada na ULA. - So 5 as flags do 8085.

S = Flag de Sinal - assume o valor 1 quando o resultado de uma operao negativo. Z = Flag de Zero - assume o valor 1 quando o resultado de uma operao zero. AC = Auxiliar de Carry = flag usada como auxiliar de transporte. Assume valor 1 quando h transporte do bit 3 para o bit 4. usada em operaes BCD. P = Flag de Paridade = assume valor 1 quando h um nmero de par de algarismos 1 no acumulador. CY = Flag de Carry (transporte) = assume valor 1 quando h transporte do bit 7.

e)Registradores B, C, D, E, H e L: - Registradores de propsito geral de 8 bits e que podem ser combinados aos pares para formar registradores par (rp: register pair) para armazenar endereos (16 bits). - Os pares formados so: BC, DE e HL. - O primeiro registrador de cada par armazena o byte mais significativo, isto , B, D e H. Outros blocos a)Registrador HL: - Usado como apontador de dados na memria RAM, semelhana do registrador PC, que aponta instrues na memria. - O registrador HL usado implicitamente em vrias instrues e referenciado nessas instrues como M, de Memory. b)Registrador "Apontador de Pilha" SP (Stack Pointer): - Registrador de 16 bits usado como apontador de dados numa regio especial da memria RAM, denominada de Pilha (Stack). - Esse espao de memria especialmente destinado a guardar temporariamente informaes de registradores que sero usados em outra tarefa. - A ordenao de elementos na pilha tal que somente um dado pode ser acessado num determinado instante (LIFO). - O apontador de pilha (registrador SP) aponta sempre para o topo desta pilha (top of stack), ou seja, para o ltimo dado que foi armazenado. - Os dados normalmente armazenados so: - Endereos de chamadas/retornos de subrotina; - Endereos de retorno de interrupes, que so automaticamente armazenados pelo 8085; - Outros dados que podem ser armazenados pelo programador usando a instruo PUSH. - Posteriormente esses dados so retirados da pilha usando a instruo POP.
LIFO - A ltima palavra digital que entra a primeira que sai (Lista LIFO - Last In First Out).

c)Unidade "Controle de Interrupo": - Responsvel pelo tratamento das 5 interrupes externas do 8085. - Essas interrupes so vetoradas, o que significa que h um endereo fixo, pr-definido, para cada uma (Ex: RST 5.5 = 2Ch; RST 6.5 = 34h; RST 7.5 = 3Ch). - Interrupo TRAP a interrupo de maior prioridade do 8085. Ela normalmente ativada quando h problemas de falta de energia, para um desligamento seguro do microprocessador. - Interrupes INTR e INTA, so canais para expanso da capacidade de interrupo. Por meio desse canal um CI especial (Exemplo: CI 8259) conectado ao 8085, de modo a permitir um nmero maior de interrupes. d)Unidade "Controle de Entrada/Sada Serial": - atravs dessa unidade que o microprocessador recebe e envia dados de forma serial, ou seja, bit a bit, ao invs de um byte por vez. - Pino SID (Serial Input Data) usado para a entrada de dados de forma serial.

4 - Pino SOD (Serial Output Data) usado para a sada de dados de forma serial. Encapsulamento Circuito integrado DIP (Dual in Package) de 40 pinos.

Set de instrues do 8085 O conjunto de instrues de um microprocessador o conjunto das instrues que o microprocessador foi projetado para executar. As instrues descritas abaixo so de Intel 8085. Estas instrues so da Intel Corporation. Eles no podem ser usados pelo microprocessador de outros fabricantes. O programador pode escrever um programa em linguagem assembly usando estas instrues.

Estas instrues foram classificados nos seguintes grupos: a)Transferncia de dados Instrues que so usadas para transferir dados de um registrador para outro registrador, a partir da memria para um registrador ou do registrador para a memria. MOV r1, r2 Move dados; Move o contedo de um registrador para outro. [r1] <- [r2]. MOV r, m Move o contedo de uma posio de memria para o registrador. [r] <- [M]. MOV M, r Move o contedo do registrador para uma posio de memria.[M] <- [r]. MVI r, data Move dados imediatos para um registrador. [r] <- data. MVI M, data Move dados imediatos para uma posio de memria. [M] <- data. LXI rp, data (16) Carrega par de registradores com dados imediados (16 bits). [rp] <- data 16 LDA addr Carrega acumulador com o contedo de uma posio de memria. [A] <- [addr]. STA addr Move contedo do acumulador para uma posio de memria. [addr] <- [A]. LHLD addr Carrega par direto H-L .[L] <- [addr], [H] <- [addr+1]. SHLD addr Armazena o contedo do par H-L em uma posio de memria. [addr] <- [L], [addr+1] >- [H]. LDAX rp Carrega o acumulador de forma indireta. [A] <- [rp] STAX rp Armazena do acumulador de forma indireta. [rp] <- [A]. XCHG Troca o contedo de H-L com D-E. [H-L] <--> [D-E].

b)Aritmtica As instrues deste grupo executam operaes aritmticas tais como a adio, subtrao, incremento ou decremento do contedo de um registrador ou memria. ADD r Adiciona o registrador ao acumulador. [A] <- [A] + [r]. ADD M Adiciona contedo da posio de memria ao acumulador. [A] <- [A] + [H-L].

6 ADC r Adiciona registrador com transporte ao acumulador. [A] <- [A] + [r] + [CS]. ADC M Adiciona a posio de memria com transporte ao acumulador. [A] <- [A] + [[H-L]] [CS]. SUB r Subtrai o valor do registrador no acumulador. [A] <- [A] [r]. SUB M Subtrai registrador M do acumulador. [A] <- [A] [[H-L]]. INR r Incrementa contedo do registrador. [r] <- [r] +1. INR M Incrementa conteudo do registrador M. [[H-L]] <- [[H-L]] + 1. DCR r Decrementa conteudo do registrador. [r] <- [r] 1. DCR M Decrementa conteudo do registrador. [[H-L]] <- [[H-L]] 1. c)Lgica As Instrues sob esse grupo executam operaes lgicas como AND, OR, comparao, etc. d)Controle de desvios Este grupo inclui as instrues de salto condicional e incondicional, chamada de subrotina e retorno, e reinicio. e)Controle de entrada/sada Este grupo inclui as instrues de entrada/sada para os ports, pilha e controle da mquina.

IMPORTANTE!!! Ao final desta nota de aula existe um anexo contendo todas um resumo das 74 instrues do 8085 (em ingls). A verso detalhada das instrues pode ser baixada do site do professor.

Por hoje... Boa noite!

8085 INSTRUCTION SET


INSTRUCTION SUMMARY DATA TRANSFER INSTRUCTIONS MOV Copy from source to destination MVI Move immediate 8-bit LDA Load accumulator LDAX Load accumulator indirect LXI Load register pair immediate LHLD Load H and L registers direct STA Store accumulator direct STAX Store accumulator indirect SHLD Store H and L registers direct XCHG Exchange H and L with D and E SPHL Copy H and L registers to the stack pointer XTHL Exchange H and L with top of stack PUSH Push register pair onto stack POP Pop of stack to register pair OUT Output data from accumulator to a port with 8-bit address IN Input data to accumulator from a port with 8-bit address ARITHMETIC INSTRUCTIONS ADD Add register or memory to accumulator ADC Add register to accumulator with carry ADI Add immediate to accumulator ACI Add immediate to accumulator with carry DAD Add register pair to H and L registers SUB Subtract register or memory from accumulator SBB Subtract source and borrow from accumulator SUI Subtract immediate from accumulator SBI Subtract immediate from accumulator with borrow INR Increment register or memory by 1 INX Increment register pair by 1 DCR Decrement register or memory by 1 DCX Decrement register pair by 1 DAA Decimal adjust accumulator CONTROL INSTRUCTIONS NOP No operation HLT Halt DI Disable interrupts EI Enable interrupts RIM Read interrupt mask SIM Set interrupt mask 8085 Instruction Summary Page 2 BRANCHING INSTRUCTIONS JMP Jump unconditionally JC Jump on carry JNC Jump on no carry JP Jump on positive JM Jump on minus

JZ JNZ JPE JPO CALL CC CNC CP CM CZ CNZ CPE CPO RET RC RNC RP RM RZ RNZ RPE RPO PCHL RST

Jump on zero Jump on no zero Jump on parity even Jump on parity odd Call unconditionally Call on carry Call on no carry Call on positive Call on minus Call on zero Call on no zero Call on parity even Call on parity odd Return unconditionally Return on carry Return on no carry Return on positive Return on minus Return on zero Return on no zero Return on parity even Return on parity odd Load program counter with HL contents Restart

LOGICAL INSTRUCTIONS CMP Compare register or memory with accumulator CPI Compare immediate with accumulator ANA Logical AND register or memory with accumulator ANI Logical AND immediate with accumulator XRA Exclusive OR register or memory with accumulator XRI Exclusive OR immediate with accumulator ORA Logical OR register or memory with accumulator ORI Logical OR immediate with accumulator RLC Rotate accumulator left RRC Rotate accumulator right RAL Rotate accumulator left through carry RAR Rotate accumulator right through carry CMA Complement accumulator CMC Complement carry STC Set carry

Você também pode gostar