Sei sulla pagina 1di 10

UNIVERSIDADE EDUARDO MONDLANE Captulo 3.

Microprocessadores e Microcomputadores
3.1. Estrutura Bsica dum microprocessador
3.2. O Microprocessador Z80 como exemplo
FACULDADE DE ENGENHARIA 3.2.1. Arquitectura do Micro Z80
DEPARTAMENTO DE ENGENHARIA ELECTROTCNICA 3.2.2. Modos de endereamento
3.2.3. Nooes de programao em assembly
3.2.3. Interrupes, Ciclos de Tempo e Subrotinas

Eng. Albino B Cuinhane

(P)(C) A.B.Cuinhane UEM - Microprocessadores ABC UEM - Digital

3.1.. Estrutura Bsica dum Microprocessador


3.1
Independetemente do tipo e do fabricante do microprocessador este
est organizado como se apresenta a seguir

Porto
Unidade De
Central Entrada
De Memria
Processa Porto EXTERIOR
XTAL De
mento
Saida

Ck

ABC UEM - Digital ABC UEM - Digital

3.1.. Estrutura Bsica dum Microprocessador


3.1 3.1.. Estrutura Bsica dum Microprocessador
3.1
UNIDADE CENTRAL DE PROCESSAMENTO MEMRIA
A Memria o local fsico onde so guardados os dados em forma
A Unidade Central (ou de Controle) o elemento de grandezas fsicas. Na arquitectura de Harvard a memria
chave que comanda todos os acontecimentos. Todos os completamente separada em memria de programa e memria de
elementos esto ligados ao barramento de dados bi- dados, existindo dois barramentos de dados distintos. Isto permite o
direccional. acesso simultneo a instrues e dados.
Na arquitectura de Von Neumann a busca de dados e de instruoes
a UC que comanda quem coloca/recebe dados no/do feita em ciclos de relgios diferentes
barramento. Determina tambm quem executa qual
tarefa, sempre em cada ciclo de Ck. Os parmetros relevantes para a avaliao da memria so:
Tempo de acesso
Cada instruo que a UC recebe tem uma sequncia de Capacidade
bits atravs dos quais so abertos ou fechados vrios Volatilidade
interruptores(electrnicos) por forma a que as diversas
unidades executem operaes predeterminadas. Na Temporariedade
verdade activam-se as linhas de tarefas aonde esto Tecnologia de fabricao e
ligados os diversos utilizadores Custo
ABC UEM - Digital ABC UEM - Digital

Microprocessadores e Comp. Pessoais 1


3.1.. Estrutura Bsica dum Microprocessador
3.1 3.1.. Estrutura Bsica dum Microprocessador
3.1
MEMRIA MEMRIA
A memria utilizada para conservao das sequncias de bits que
constituem as instrues e os dados. Custo alto
Como as necessidade de lugar(capacidade) e de velocidade (tempo de Velocidade alta
acesso) no caminham juntos, houve que hierarquizar a memria para Baixa capacidade
juntar o que h de bom nas memrias de baixa capacidade e nas de Registradores
grande capacidade
Memria Cache
Caractersticas Principais das Memrias
Os parmetros relevantes para a avaliao da memria so: Memria Principal

Tempo de acesso Discos


Capacidade CD--ROM
CD
Memria Secundria

Tecnologia de fabricao e
Custo baixo
Custo
Velocidade baixa
Capacidade elevada
(P)(C) A.B.Cuinhane UEM - Digital II

3.1. Estrutura Bsica dum Microprocessador 3.1. Estrutura Bsica dum Microprocessador
RELGIO DISPOSITIVOS DE ENTRADA E SADA
Os acontecimentos no sistema do-se em perodos especficos em Uma vez que a velocidade de processamento do microprocessador
que a informao disparada para os diverso elementos que a muitas vezes superior aos componentes externos ligados ele, h
processam. que encontrar uma forma de moderar a comunicao entre os dois
O circuito de Ck que gera o referido compasso para sincronizar os ambientes.
circuitos sncronos A forma eficaz colocar um conjunto de dispositivos que recebam
BARRAMENTOS e entregam as informaes dum lado, prepare-as e as passa para o
So as linhas fsicas onde os diversos componentes esto ligados. outro lado, acautelando aspectos como o formato, velocidade,
forma de processamento(paralelo ou serial).
Existe o Barramento de Dados donde transitam os dados (instrues
e dados a processar).
O Barramento de Endereos transporta um conjunto de bits que
combinados constituem um identificador nico a que se chama
endereo. Em todo o sistema apenas um local e somente um possui
uma chave para descodificar um dado endereo.
O Barramento de Controle transporta sinais para controle das
diversas unidades internas e externas.
ABC UEM - Digital ABC UEM - Digital

3.2.1.. Arquitectura do Microprocessador Z80


3.2.1
Para comearmos a entender o Z80 convm iniciar pela
arquitectura geral mostrada no diagrama funcional a seguir.
Sinais de controlo
do sistema e CPU

Decodificador
De
Instrues

Registo de Sinais de
instrues controle

Controle do Registadores Controle de


barramento de ALU endereos
da CPU
dados

barramento de barramento de
dados endereos

ABC UEM - Digital (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 2


3.2.1.. Arquitectura do Microprocessador Z80
3.2.1 3.2.1.. Arquitectura do Microprocessador Z80
3.2.1
A Unidade Central de Processamento, ou CPU, tem disponvel ALU - Aritmetic Logic Unit (Unidade Lgica e Aritmtica)
208bits de memria de escrita e leitura (R/W) que so agrupados Esta unidade tem a funo de executar diversas operaes lgicas e
para formarem 18 registadores de 8 bits e 4 de 16 e so de uso geral aritmticas. Tem acesso aos registos e ao barramento de dados. As
para o utente. So feitos base de memrias estticas RAM. funes realizadas pela ALU so :
Comparao
Subtrao AND
REGISTOS PRINCIPAIS REGISTOS ALTERNATIVOS

Acumulador A B D H Acumulador A' B' D' H'


Adio OR
Set bit (colocar um bit em 1)
FLAGs F C E L FLAGs F' C' E' L'
XNOR
Fig.A10.2
Testar bit Shift right, shift left
REGISTOS ESPECIAIS
Incrementar Rotaes
REGISTO I REGISTO R Decrementar Reset bit(zerar um bit)
REGISTO INDEXADO (IX) REGISTO INDEXADO (IY)
STACK POINTER (SP) PROGRAM COUNTER (PC)
ACUMULADOR
Acumulador um registo de uso geral que tem a funo de conservar
Este grupo de registos inclui 6 de uso geral que podem ser usados
os dados a entregar ALU bem com os resultados das operaes
individualmente como registos de 8 bits ou emparelhados formando os
realizadas, nesta unidade. Todas as operaes lgicas e aritmticas de
pares BC, DE e HL de 16 bits.
8 bits so executadas na ALU e o resultado mantido no acumulador.
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.1 Arquitectura do Microprocessador Z80 3.2.1 Arquitectura do microprocessador Z-


Z-80
REGISTO DE BANDEIRAS REGISTO DE INSTRUES/CONTROLE DA CPU
O registo de bandeira serve para sinalizar certas condies A cada ciclo de instruo uma instruo trazida da memria, pela
relevantes para o funcionamento do sistema, e a prossecuo do via de dados, para o registos de instrues onde decodificada.
programa. composto por 8 bits como se segue cuja descrio ser Com base nesta decifrao, a unidade de controle fornece os sinais
feita posterior
de controle necessrios para ler ou escrever dados num registo, na
Bit 7 6 5 4 3 2 1 0
memria ou num dispositivo de entrada e sada, controlar a ALU e
S Z H P/V N C fornecer todos os sinais externos de controle
Bandeira do Carry
Bandeira indicadora da Adio/Subtraco
Bandeira da Paridade e Transbordo REGISTO I
No usado usado para o endereamento indirecto da memria em face duma
Bandeira de Carry da meia soma interrupo. O registo I contem o BMS do endereo enquanto o
No usado solicitante da interrupo entrega o Bms.
Bandeira indicadora de resultado Zero
Bandeira do sinal

(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.1 Arquitectura do microprocessador Z-


Z-80 3.2.2.. Modos de Endereamento
3.2.2

PROGRAM COUNTER, PC (Contador de Programa, CP) Muitas instrues envolvem operaes de nmeros que esto nos
registos, memria ou Dispositivos de E/S. Modo de endereamento
O contador de programa formado por um registo de 16 bits no qual refere-se forma como a origem e destino destes dados feita na
mantido o endereo da ltima instruo que est sendo acedida na instruo.
memria. O PC automaticamente incrementado em 1 aps a A indicao do local ou dado a aceder pode ser feita de vrias
transferncia do seu contedo para as linhas de endereamento. Num maneiras mas destacaremos:
caso de salto(Jump) o refrescamento feito com novo valor
ENDEREAMENTO IMEDIATO quando na instruo j aparece
STACK POINTER, SP (Ponteiro de Pilha, PP) o dado com que se deve trabalhar.
O SP ou ponteiro de pilha, um registo de 16 bits inicializado pelo Ex. LD A, 42 que carrega o acumulador com o dado 42.
usurio com o endereo inicial de um campo da RAM usado para a Vendo esta instruo no se questiona mais qual ser o contedo
pilha. A pilha organizada como um arquivo LIFO e os dados podem do acumulador assim que for executada
ser buscados ou enviados para esta pilha. Esta pilha permite uma
simples implementao de mltiplos nveis de interrupo, subrotinas e
manipulao de dados

(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 3


3.2.2.. Modos de Endereamento
3.2.2 3.2.2.. Modos de Endereamento
3.2.2
ENDEREAMENTO DIRECTO quando na instruo aparece j o ENDEREAMENTO INDEXADO quando o local da memria
local da memria. indicado indirectamente atravs dum numero que deve ser
Ex. LD A,(4200) que carrega o acumulador com o dado existente adicionado ao valor de um dos Registos de Indice IX ou IY. Os
no local da memria 4200 (de referir que 4200H). valores destes registos no alterado aps a execuo da instruo.
No entanto o PC recebe um novo valor obtido nesta operao e
Vendo esta instruo no sabemos qual ser o conteudo de A mas com isso aponta para novo local de memria
sabemos logo onde est o valor Ex. BIT 2, (IX+ d) que testa o bit 2 do local da memria indicado
pelo valor IX somado ao d sinalizado em complemento a 2.
ENDEREAMENTO INDIRECTO quando o local da memria
indicado indirectamente atravs do contedo dum par(porqu?) de
registo. ENDEREAMENTO IMPLCITO quando operao ditada pela
Ex. LD A,(HL) que carrega o acumulador com o dado existente no instruo traz implcito um ou mais registos internos da CPU.
local da memria formado pelo contedo dos registos HL. H Ex. ADD B.
contm o byte mais significativo e L o menos significativo Nesta instruo est implcito que o segundo operando est no
Vendo esta instruo no sabemos qual ser o conteudo de A nem acumulador
onde est o valor. Temos que primeiro pedir a H e L para nos
indicarem o local e l espreitarmos o valor.

(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.2.. Modos de Endereamento


3.2.2
ENDEREAMENTO RELATIVO quando o local da memria
indicado indirectamente atravs dum numero que deve ser
adicionado ao Program Counter. Este modo sucede nos casos de
saltos
Ex. JR 0A que carrega o Program Counter com um valor dado
pelo valor actual mais 0A.
ENDEREAMENTO POR REGISTO quando a instruo contem
registos internos da CPU como sendo os locais a serem usados na
operao
Ex. LD A, B que carrega o dado contido no registo B para o A.

Outros tipos de endereamento pode ser usados. So o caso do


Indexado, Pagina Zero, implicito, Indirecto por registo.
Recomendo a ler o manual fornecido nas aulas:
Zilog - Z80 Family CPU User Manual - UM008005-0205, 2004, San
Jose
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Etapas para Resoluo de Problemas A. ALGORITMO


Depois que o problema esta bem definido deve-se ter em O ALGORITMO descrio passo-a-passo, e de forma
mente o modelo de programao, i.e., como o no ambgua, do procedimento a seguir para a resoluo
microprocessador vai manipular os dados. Verificar que do problema.
recursos vai necessitar, como memria, dispositivos I/O,
Registos, etc. Exemplo: Contar de 100 pessoas os que tm cabelo
claro que no vai ser de imediato que ir descortinar rapado e so mulheres.
todos os recursos necessrio. O primeiro dos 3 passos de Soluo: Como o computador no inteligente temos que encontrar
que falaremos a seguir resolve este sub-problema. ou definir um algoritmo apropriado para contar tais senhoras:
Antes de tentar escrever um programa existem passos
bsicos a seguir:
Repare-se que h uma variedade enorme de procedimentos
1 Desenvolver ou encontrar o algoritmo a seguir para a resoluo do problema. Vamos escolher a
2 Desenhar o fluxograma que segue
3 Escrever o programa
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 4


A. ALGORITMO B. FLUXOGRAMA
1. Colocar o contador 1 (CNT1) em 100 e o contador 2 (CNT2) em 0 O passo seguinte o fluxograma. Esta a forma prtica de expressar
2. Considere a prxima pessoa o algortmo graficamente. A vantagem que o fluxograma tem que
3. Verifique seu sexo. Se for homem v para 6. De contrrio pode ser escrito numa forma prxima ao formato do programa fonte.
prossiga Em cada aco pode escrever tudo o que vai acontecer nessa etapa,
4. Verifique se tem cabelo rapado. Se no Tiver v para 6. Se tiver duma forma sequencial, que ser traduzida na linguagem de
prossiga programao. Pode colocar notas e observaes.
5. Adicione 1 ao contador 2 Os smbolos bsicos nos fluxogramas so:
6. Subtrai 1 ao contador 1. Preparao: normalmente no incio do programa. Mostra-se o que deve
7. Se o contedo de CNT1 for 0 v para 8. De contrrio v para 2 ser feito para comear o procedimento da resoluo do problema.
8. Mostrar o contedo do contador 2 Processo: mostra o que acontece nesta etapa do procedimento.
9. Parar Conector: o ponto onde vrias aces se encontram.

A instruo parar obrigatria. Se ela no for colocada o Deciso: Etapa do algortmo em que deve-se tomar uma deciso (Sim ou
registo PC(a ser visto em diante) incrementa-se e isso pode No) para prosseguir.
orientar erradamente o processador
Fluxo: Mostra a direco do processo
Fim: o fim do programa. Pode-se mostrar os resultado finais.
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

B. FLUXOGRAMA Pr 100 em CNT1


Pr 0 em CNT2 C. PROGRAMA
O terceiro passo escrever o programa
Considere a prxima pessoa
O programa o conjunto de instrues colocados sequencialmente
O fluxograma do nosso exemplo fica:


mulher
N
na memria

O programa respeita regras especficas de acordo com a linguagem


S
N
Tem cabelo rapado de programao e potencialidades do processador
S

Some 1 a CNT2 NOTA DE RODAP:


H um quarto passo a considerar: O teste do programa. Isto
vlido porque invariavelmente o primeiro programa apresenta
sempre falhas.
Subtrai 1 a CNT1
MXIMA: SE UM PROGRAMA RODAR BEM
N PRIMEIRA VEZ, TEM UM ERRO GRAVSSIMO!
CNT1 = 0
S

Mostrar valor de CNT2


PARAR (P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.3.1.. Tipo de Instrues


3.2.3.1 Instrues de Transferncia De Dados
O microprocessador executa operaes com base nas instrues
que busca na memria, sequencialmente.
Uma instruo uma sequncia de bits(tenso 0 ou 1) que so As instrues de transferncia de dados movimentam dados entre
descodificadas no Decodificador de Instrues que converte em registos ou entre registos e memria.
condio de transio para a Unidade de Controle.
A unidade de controle por sua vez activa as linhas de tarefas O formato destas instrues normalmente tm indicao da direo do
respectivas de acordo com a condio de transio. Ento todas movimento, em que se indica a origem dos dados e o destino.
as unidades realizam tarefas especficas o que resulta numa EXEMPLO:
operao adequada dos bits.
LD A, (001A) que move dados do local 001AH para o acumulador
As instrues podem ser classificadas de diversas maneiras,
mas podemos distinguir 5 categorias: A movimentao de dados no altera os que esto na origem.
Transferncia de dados,
possivel movimentar dados num bloco de memria com uma nica

Processamento de dados,
instruo. Esta operao executada por regresso sequenciado

Testes e saltos,

Entrada/Sada e
memria e buscar os dados um a um.
Controle
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 5


Instrues de Processamento de dados Instrues de Processamento de dados

A manipulao de bits inclui activar um bit em 1 ou zer-lo, testar um


As instrues de Processamento de dados podem ser subdivididas ainda bit, fazer deslocamentos para esquerda ou direita e rotaes
em 5 categorias gerais:
O incremento e decremento envole o acrscimo ou reduo numa
Operaes aritmticas unidade ao contedo dum registo ou memria.
Manipulao de bits As operaes lgicas so as j conhecidas funes AND, OR , NOT e
Incremento e decremento XOR
Operaes lgicas Deslocaes e Rotaes inclui operaes de deslocamentos para
Deslocamento e rotao esquerda ou direita e rotaes

As operaes aritmticas operam (soma e subtrao) dado existente EXEMPLOS:


no acumulador(um dos operandos) com outro num dpr registos 1. ADD A,0A que adiciona o dado 0AH com o contedo do acumulador
temporrios ou memria e devolve o resultado para o acumulador. 2. SET 2,B que coloca em 1 o bit 2 do registo B
3. SLA C que desloca o contedo do registo C para a esquerda. O Bit 7 vai para a
Na operao so activadas diversas bandeiras conforme o caso bandeira do Carry e o bit 0 zerado.

(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Instrues De Testes e Saltos Instrues de Testes e Saltos


Desvios E Saltos
As instrues de teste verificam o valor dum bit especificado no A Fig. 5.3 mostra uma situao de salto a) e de desvio b).
registo e levam a UCP tomar uma deciso conforme o caso.
As instrues de salto esto estrictamente ligadas as de teste de bits.
Verificam uma condio e levam a UCP para um determinado ponto do
N N

programa. Fig. 5.3

Os saltos podem ser divididos em dois tipos: O salto e o desvio.


a) b).
Num salto a execuo do progama interrompe a sequencia linear se a
EXEMPLOS:
condio for satisfeita e passa para outro ponto. No executa mas a

instruo seguinte do salto. 1. JP NZ,LOOP o contedo do PC salta para o local LOOP se a bandeira do Zero
Zero
2. JP M,(01BA) o contedo do PC salta para 01BAH se a bandeira do
Num desvio a execuo do programa sofre uma interrupo Sinal Zero
momentnea mas ser continuada pela instruo seguinte quando 3. CALL nn o conteudo do PC salta para a localizao da primeira
terminar a execuo da causa do desvio. instruo da rotina
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Instrues de Entrada e sada de dados 3.2.3.2.. Acervo de Instrues do Z80


3.2.3.2
A inteno deste pargrafo introduzir o conjunto de instrues do
Os perifricos esto ligados aos barramentos como os Z80 e a forma como so constitudas
dispositivos internos. De modo que a CPU os v como
memria. As instrues de I/O diferem das internas pelo facto A instruo composta por duas partes:
de que devem ter em conta a velocidade de processamento dos (1) o Mnemnico ou OpCode que uma abreviatura especial para a
perifricos operao a ser executada e
(2) os Operandos
Nestas instrues o Bms do endereo indica a porta pela qual
ser feita a comunicao
LD A,01 Carrega o acumulador com o nmero 01

Instrues de Control Mnemnico Operando Local onde est o Operando

As instrues de controle permitem a seleco de diferentes LD A,(5000H) Carrega o acumulador com o dado existente no local 500H
condies e tipos de processamento da CPU
Destino Origem

LD(5000H),A Carrega a memria no local 500H com o contedo do acumulador


(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 6


3.2.3.2.. Acervo de Instrues do Z80
3.2.3.2 3.2.3.2.. Acervo de Instrues do Z80
3.2.3.2
MNEMONICO
FUNO MNEMONICO
FUNO MNEMONICO FUNO MNEMONICO FUNO
ADC Adiciona com vai 1 (carry) CPL Complementa o Acumulador LD Carregar POP Buscar dados na pilha
ADD Adiciona DAA Ajuste decimal LDD Transfere dados entre locais de PUSH Guardar dados na pilha
AND Produto lgico DEC Decresce Memria, decresce os endereos do RES Zerar um bit
destino e da origem
BIT Testa o bit DI Inabilita as interrupes RET Regressar da sub-rotina
LDDR Transfere dados entre locais de Memria
CALL Chama sub-rotina DJNZ Decresce o registo B, salta se no for zero RETI Regressar do pedido de interrupo
at que CNTB=0, decresce os
CCF Bandeira do carry suplementar EI Habilita as interrupes endereos do destino e da origem RETN Regressar duma interrupo no mascarada
CP Compara EX Troca NEG Negar o contedo do Acumulador RL Rodar para esquerda
CPD Compara o Acumulador com memria, HALT Suspende o programa NOP No fazer nada RR Rodar para direita
decresce endereo e o contador de byte
IM Define o modo de interrupo OR Soma lgico RST Reiniciar
(CNTB)
INC Incrementa OTDR Tira os dados na memoria para o SBC Subtrair com carry
CPDR Compara o Acumulador com memria,
IND Carregar na memria e decresce o ponteiro exterior, decresce o endereo, continue
decresce endereo e o CNTB, continua SCF Pr em 1 a bandeira do Carry
at que o B=0
at que a condio seja encontrada ou INDR Carregar na memria e decrescer o ponteiro
CNTB=0 OTIR Tira os dados na memoria para o SET Pr em 1 um bit
at que CNTB=0
exterior, incrementa o endereo, continue SLA Deslocamento para esquerda aritmtico
CPI Compara o Acumulador com memria, INI Carregar na memria e incrementa o ponteiro at que o B=0
decresce CNTB e incrementa o SRA Deslocamento para direita aritmtico
endereo INIR Carregar na memria e incrementa o ponteiro OUT Enviar dados para uma porta
SRL Deslocamento para direita lgico
CPIR Compara o Acumulador com memria, at que CNTB=0 OUTD Enviar dados para uma porta, decrescer
SUB Subtrair
decresce CNTB e incrementa o JP Salto o endereo
endereo, continua at que a condio XOR OU exclusivo
JR Salto Relativo OUTI Enviar dados para uma
seja encontrada ou CNTB=0 porta,incrementar o endereo
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.3.2 Acervo de Instrues do Z80 3.2.3.2 Acervo de Instrues do Z80


Exemplo 1. Carregar o acumulador com o nmero 01, o registo B
com 02 e o registo C com 03
A coluna do contedo representa o formato da instruo armazenada
Ender Conte Mnem Operan
Comentrio na memria. chamada Opcode
eo do onico do
5000 3E LD A,01 Para colocar 01 no acumulador Porm, na verdade os dados esto armazenados em binrio.
5001 01 Como o mnemnico ocupou 1 byte o 01 est a seguir na memria
A maioria das instrues ocupam mais que um local de memria
5002 06 LD B,02 Para colocar 02 no registo B uma vez que o Opcode ocupa 1 byte e os operandos 1 ou 2 bytes
5003 02 Como o mnemnico ocupou 1 byte o 02 est a seguir na memria
Endereo Contedo Mnemonico Operando Binrio
5004 0E LD C,03 Para colocar 03 no registo C
5000 3E LD A,01 0011 1110
5005 03 Como o mnemnico ocupou 1 byte o 03 est a seguir na memria
5001 01 0000 0001

A coluna do contedo mostra a informao real (em Hex) que o Felizmente os compiladores tratam destes aspectos da utilizao
compilador vai guardar na memria. Portanto um conjunto de bits eficaz da memria, sem contudo dizer que o programador no deve
sem sentido para o humano. ter cuidado, pois pode receber muitas mensagens de erro na altura da
compilao
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.3.2 Acervo de Instrues do Z80 3.2.3.2 Acervo de Instrues do Z80


Exemplo 2. Adicionar 22 e 11 e guardar o resultado no local 5012. Durao duma instruo e bandeiras afectadas
Os nmeros esto armazenados nos locais 500A e 500F
respectivamente. Na litertura relativa ao Z80 indicado o conjunto de recursos(fsicos e
tempo) usados em cada instruo.
Para resolver este problema temos que perceber como o computador
realiza as operaes. Lembramos que ele faz passo a passo e temos
que ter sempre em mente as instrues possveis que nos ajudam a No livro Introduction to Microcomputers, MICAMASTER 980 &
realizar o nosso algoritmo 960, que ser a nossa referncia, as instrues esto assim
organizadas:
O algoritmo (um dos possveis) ser: Mnemnico Descrio do que faz a instruo
1. buscar o numero que est no endereo 500A e guardar no da instruo
acumulador. Code Indicao do cdigo da instruo em Hexadecimal
2. Carregar o par de registo HL com o endereo do segundo
numero. Este esta guardado no local 500C Flag Lista de todas as 8 bandeiras
3. somar o contedo do acumulador com o dado residente no
local 500F. O resultado fica no acumulador Status Indicao das bandeiras afectadas pela instruo. Se Y a bandeira afectada
3. guardar o contedo do acumulador no local 5012 Nota: Adicionamente indicada a quantidade de ciclos T consumidos pela
instruo.

(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 7


3.2.3.2 Acervo de Instrues do Z80

A durao duma instruo indicada em termos de ciclos T. O valor


final deste tempo depende da frequncia de Ck.

As bandeiras afectadas permitem-nos fazer o teste delas e tomar


decises
Exemplo:
SUB data
Code D6 data
Flag S Z H P/O N C Clock cycles
Status Y Y Y Y 1 Y =7

Esta instruo tem Opcode = D6 seguido do dado de 1 Byte, todas as


bandeiras so afectadas sendo que a N sempre igual a 1. A
durao total de 7 ciclos T
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.4 Ciclos de Tempo 3.2.4 Ciclos de Tempo


O Z80, assim como outro processador, realiza as instrues atravs O ciclo M1 pode durar at 6 ciclos T, a menos que seja alongado por
duma sequncia precisa de passos bsicos, que so: um sinal WAIT. Este sinal usado pelos elementos mais lentos, do
que a UCP, para avis-lo de que ainda no esto prontos para receber
Leitura e escrita da memria ou entregar dados.
Leitura e escrita de perifricos
Os ciclos M2 e M3 so usados para movimentar dados entre a UCP e
Reconhecimento de interrupes a memria ou perifrico e cada um pode durar entre 3 a 6 ciclos T.
Tambm podem ser alongados se houver um pedido de espera.
Qualquer instruo consome tempo. A unidade bsica deste tempo o
ciclo de relgio chamado Ciclo T (Vide Figura a seguir). Tal como
referimos antes, em cada ciclo T algo acontece.
Os ciclos de operao do processador so chamados Ciclo Mquinas
M1, M2 e M3.
No primeiro ciclo, M1, feita a leitura da memria apenas para
buscar o Opcode da instruo. Este ciclo chamado Fetch ou Busca

Ciclos T e M
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.4 Ciclos de Tempo 3.2.4 Ciclos de Tempo


Ciclo de Busca
No flanco descendente do ciclo T2 e subsequentes, dentro de cada
ciclo M, a UCP verifica se a linha WAIT est activa. Se tal for 1. O ciclo de busca comea
adicionado um estado de espera no prximo ciclo T para permitir que com a colocao do
o solicitante da espera esteja pronto contedo do CP(Contador
de Programa) no
Durante o ciclo de espera, a UCP pode fazer outras tarefas que no barramento de endereos.
afectem o elemento que solicitou a espera. 2. No flanco descendente
seguinte a UCP activa a
linha MREQ
3. No mesmo momento activado o sinal RD para habilitar a leitura
da memria.
4. Os dados ficam diponveis no barramento de dados e no prximo
flanco ascendente de Ck a UCP reconhece-os. Logo a seguir as linhas
MREQ e RD so desactivadas
5. Os ciclos T3 e T4 so para refrescar as memrias dinmicas,
descodificar e executar a instruo que se buscou
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

Microprocessadores e Comp. Pessoais 8


3.2.4 Ciclos de Tempo 3.2.4 Ciclos de Tempo
Ciclo de Escrita/Leitura da Ciclo de Entrada/Saida
memria
Durante o ciclo de
Os ciclos de escrita e leitura Entrada ou Sada de
so similares ao fetch. O dados para perifrico um
sinal MREQ e RD so sinal WAIT sempre
usados do mesmo modo acrescentado. Isto
necessrio pois o tempo
que a UCP precisa para
ler/escrever dados
muito mais curto que a
No ciclo de escrita o sinal MREQ activado depois que os dados no reao dos perifricos
barramento de endereos estiverem estabilizados
No ciclo de leitura o sinal RD activado depois que os dados no Repare-se que na verdade a escrita/leitura de perifrico no feito
barramento de dados estejam estabilizados. directamente neste, mas sim nas portas de E/S.
Este sinal deve ser desactivado antes de mudar os dados no
barramento de endereos para evitar sobreposio de dados a serem
lidos no barramento de dados
(P)(C) A.B.Cuinhane UEM - Digital II (P)(C) A.B.Cuinhane UEM - Digital II

3.2.4 Ciclos de Tempo


Ciclo de Pedido/Reconhecimento de barramento
A arquitectura dos computadores permite a partilha de recuros O atendimento de perifricos pode ser feito de dois mecanismos:
ligados no mesmo barramento, para flexibilizar processos, libertar a Polling e Interrupo
UCP e aproveitar o tempo em que esta no precisa dos barramentos.
O polling consiste na observao sistemtica dos perifricos, pela
Por isso previsto uma linha BUSREQ que activado pelos UCP para verificar se algum deles precisa de ser atendido. Este
dispositivos externos UCP. mecanismo peca pelo facto de desperdiar tempo da UCP e
No flanco ascendente de cada ciclo mquina a UCP verifica se a tambm demorar a atender os perifricos.
linha BUSRQ est activa. Se tal for, coloca as suas sadas para os
barramentos em alta impedncia e deixa que o elemento solicitade do Um mtodo eficaz para a inicializao do processo de
barramento faa uso deste. transferncia permitir que o perifrico indique directamente ao
processador que est pronto a transferir dados, activando uma
interrupo.
O processador pode ento temporariamente suspender a operao
presente, confirmar a interrupo e aceitar a transferncia de
dados. No fim da transferncia o processador retornar ao
programa original no ponto da interrupo.

(P)(C) A.B.Cuinhane UEM - Digital II ABC UEM-Microprocessadores 52

Para inicializar a transferncia de dados, o perifrico


activar o seu flip-flop de servio de interrupo, que
possu a sada conectada directamente ao terminal de
interrupo do processador. O flip-flop armazena o sinal de
interrupo na sua sada at o tempo em que o processador
confirmar e efectuar o clear do flip-flop.

Um sistema simples de interrupo operando nos princpios


descritos mostrado a seguir.

Fig 3.2. Sistema simples de Interrupo

ABC UEM-Microprocessadores 53 ABC UEM-Microprocessadores 54

Microprocessadores e Comp. Pessoais 9


Existem duas tcnicas comummente usadas na identificao da
Quando o processador usado em conjuno com um fonte de interrupo mestre, nomeadamente Polling e Vectoring.
nmero de perifricos, uma das suas funes Polling um mtodo de identificao usando software, enquanto
identificar a fonte de interrupo. Alguns processadores que vectoring corresponde aproximao correspondente em
no tem mais que uma linha de interrupo; o Z80 hardware.
possu duas linhas.
Na tcnica Polling, o perifrico, ao requerer a interrupo, deve
Nesse casos vrias interrupes so combinadas numa

colocar em simultneo um cdigo no barramento de dados que ser
porta OR para formar uma interrupo mestre que usado pelo processador na identificao da fonte.
subsequentemente alimentada ao pino de interrupo necessrio estabelecer prioridade, e essa depende da ordem em que
sero testados os cdigos no programa.
do processador.
Seja n o nmero de perifricos e p o cdigo introduzido no porto pelo
perifrico; segue-se o seguinte fluxograma:

ABC UEM-Microprocessadores 55 ABC UEM-Microprocessadores 56

Na tcnica Vectoring, a identificao da fonte de O sinal DE(data enable) usado para habilitar os bufferes tri-
interrupo pode ser feita usando a ligao Daisy- state associados s suas linhas de dados, entregando assim o
endereo da rotina de interrupo correspondente.
Chain, (figura no diapositivo a seguir).
I2
Int
Depois da interrupo gerada na sada da OR, o I1
I0
processador responde com o sinal INTA (Interrupt
acknowlegde) que propagado do perifrico mais
prioritrio ao menos. IntA

Quando a fonte da interrupo detectada, o sinal


bloqueado e no se propaga para os prximos estgios. Para o prximo
DE0 DE1 DE2 estgio

ABC UEM-Microprocessadores 57 ABC


Fig. 3.4. Daisy chain UEM-Microprocessadores 58

Microprocessadores e Comp. Pessoais 10

Potrebbero piacerti anche