Académique Documents
Professionnel Documents
Culture Documents
Objetivo: Conhecer ochip processador Z-80 e o seu set de instrues Motivao: O Z-80 um integrado de baixo custo, com uma ampla faixa de aplicao em pequenos projetos de informatizao Barema de avaliao: P, cap. 1 e 2.(1.0 a 2.5) P, cap. 2 e 3 2.6 a 3.Z) Disc.: Introduo aos microprocessadores
Captulo 1 Hardware bsico de um micro processador. Captulo 2 - Software do micro processador Z-80 Captulo 3 Introduo a programao em Assembly
1.1 Introduo aos microprocessadores Objetivo: Definir um computador bsico O Computador uma mquina que processa informaes As informaes fornecidas pelo usurio so processadas de acordo com o programa utilizado e retornam ao mesmo atravs de um monitor, impressora,etc. O programa define a funo exata que o computador ir executar Neste mdulo, tomamos como base a arquitetura do microprocessador Z-80 da Zilog
CPU
1.1.2 - SISTEMA Z 80
1.1.3-microprocessador Z-80
O Z-80 uma central de processamento Incluido em um s CHIP: este chip contm:
2) Uma CPU
3) E uma unidade de CONTROLE
Este chip capaz de comandar e controlar dispositivos externos (perifricos) e executar 80% da potencialidade total do sistema.
1.1.- BARRAMENTOS DO MICRO PROCESSADOR Z 80 A CPU Z-80 interligada ao mundo exterior atravs de trs barramentos Bus de dados - Bidirecional com oito bits, conduz os dados da CPU para os elementos do sistema/dos elementos do sistema para a CPU Z 8 0
BARRAMENTOS DE ENDEREOS
Bus de endereos Unidirecional com 16 bits, transporta endereos gerados pela CPU Estes endereos serve para especificar a fonte ou o destino dos dados que transitar atravs da barra de dados
C P U
A0 .....A15
Adder Bus
Elementos Do sistema
BARRAMENTOS DE CONTROLE
Bus control Usado para transportar diversos sinais para sincronozao requerida pelo sistema. Todo sistema computacional precisa de uma re ferncia de tempo para executar suas tarefas
(CLOCK)
C P U
Control bus
Elementos Do sistema
Avaliao 1
1- Como se compe o chip Z-80? R: CPU; ULA; controle e rede de registros 2- Como se chama o conjunto ordenado de instrues? R: Programa 3-Quantos bits compe a barra de endereos? R: 16 bits 4 Qual o barramento responsvel pelo transporte do pulso de sincronismo? R: Barramento de controle
1.1.4 Memrias
Objetivo: conhecer os tipos de memrias do sistema Z-80 ROM uma memria destinada a guardar informaes permanentes. Contm o programa monitor. No perde seu contedo.(no voltil)
RAM Permite escrita e leitura de dados: Gurda o programa e os dados do usurio: uma memria voltil. (pode perder seu contedo quando desliga equipamento)
o primeiro byte de uma instruo Representa a ao a ser realizada pela CPU (busca outro opcode/byte de instrues suficiente para completar a instruo) Cada OPCODE representa uma instruo que o micro ir executar( lgica aritmtica,busca e transferncia de dados,operao com I/O e de controle) 1.1.5-Byte de dados - utilizados em operaes de lgicos e aritmticas como operando, carrega registro, carrega e inicializa I/O,so guardados na memria na localidade denominada buffer
A parte alta(HI-high) formada pelas linhas A15 - A8 A parte baixa(LO-low) formada pelas linhas A7-A0 A parte baixa tambm utilizada para endereamento de I/O BYTE DE DIRECIONAMENTO - usado no grupo de instrues com endereamento indexado que define a posio real da informao desejada. BYTE de dados de 16 bits (HI/LO) esta CPU apesar de ser de 8 bits, tambm pode operar com dados de 16 bits, para isso divide o operando em duas partes (HI e LO)
APLICAO 1.1
1)Qual o lugar da memria que guardado os bytes de dados? R. buffer 2) O que o opcode? R. o primeiro byte de uma instruo 3)Quantos bits contm a barra de endereos? R. 16 bits 4)Quantos bytes contm uma informao? R. apenas um byte
Adder Bus 16 bits: unidirecional (A15 a A0) sua extenso de 0000H at FFFFh(64K) A parte baixa (A7 a A0) da barra de edereo gera os endereos de I/O
Bara de dados internas 8 bits : a via de comunicao da CPU com o mundo exterior: bidirecional Bara de controle : sinal de controle para I/O; Memria e a prpria CPU
1.2.1
A B D H
- Rede de Reg. do Z - 80
F C E L A B D H F C E L
O processador Z 80 tem 16 registros de 8 bits, sendo 14 para finalidades gerais e 2 registros de sinalizao. Dos 16 Reg., 8 so genercos (Operando e sinalizao) e 8 so primos (guardam os dados provisrios e parciais dos operandos)
B
D H
C
E L
B
D H
C
E L
O Registro A o principal operando da CPU e tambm atua como acumulador (Guarda os resultados das operaes de lgica e aritmetica)
Este registro a porta de entrada e sada da CPU O registro A sempre o endereo de um dos operandos em operaes de lgicas e aritmticas
B7
B6
B5 B4
B3
B2
B1
B0
H indica que houve carry no meio do byte isto , do bit3 para o bit 4. A CPU analisa este flag para executar ajustes nas operaes em BCD. P/V um flag de dupla funo (paridade e over flow
B7
B6
B5
B4
B3
B2
B1
B0
o flag de sinal, se for setado o n negativo. Se for resetado o n positivo. Normalmente acompanha o bit 7 do acumulador
o flag zero, significa que o resultado da operao zero,ou seja indica que o acumulador est resetado.
O bit 5 e o bit 3 podem estar em qualquer estado que a CPU no toma conhecimento (dont care)
Bits do FLAGS Flag C (bit0). Este Flag indica se ocorreu vai 1 no bit7, (na soma ) ou empresta 1 (na subtrao ). O Flag C tambm ser acionado em operao de deslocamento de bits. Ex. 10000001 A (81H) + 10000100 B (84H) 1 00000101 A (05H) (vai 1) bit 7 do acumulador O mesmo fato ocorre, se houvesse um vem um (operao de subtrao) No caso acima o Flag S, ser zero, pois o bit 7 do acumulador zero
Bits do FLAGS O Flag C tambm ser acionado em operao de deslocamento de bits. Ex. C 0 10000001 A (81H) 1 00000010 A (02H)
Flag C (bit0) deslocou o bit 7 do acumulador modificando o seu contedo. No caso acima o Flag S, ser zero, pois o bit 7 do acumulador zero
Bits do Flag
Flag P/V (Bit2 ).Este Flag Possui dupla funo : i) operaes de lgica e rotaes. O Flag P/V ser setado se ocorrer um N par de uns no resultado da operao.
Ex. A or B sendo: A = 21H e B = 34H 00100001 A 00110100 B 001101 01 A O bit2 ser igual a 1 por que existe um n par de 1
A segunda funo sinalizar a ocorrncia em operaes aritmticas com bit de sinal e magnitude, o estouro de bits (over flow)
Ex. A + B A = -21H ; B= -34H 1 1011111 (- 21H) em complemento de 2 1 1001100 (-34H ) em complemento de 2 1 1 0101011 (-55H) em complemento de 2 O flag P/V ser resetado, pois -55H est dentro da faixa. O Flag C ser setado, porque houve um carry
Exercicios 1.2.2
A CPU Z-80 executou a soma de A=-1310 com B=-510 . Determine: a) as condies dos Flags P/V e C b)o contedo do acumulador, aps o trmino da operao.
Ex. -5 10 1 1111011 comp a 2 -1310 1 1101101 comp a 2 -1810 1 1101000 comp a 2 a) P/V = 0; no houve estouro de bits. b) C = 1; pois, houve carry c)O acumulador ser carregado com 92H (-1810)
R.O registro de flag (F) e o acumulador (A) 2) Se A 3Eh; F 88h; B 2Ch determine: i) A and B + B; ii) A+B ; iii) Status da CPU aps a terceira operao. i)A B A 00111110 and 00101100= 00101100 A B Ii)00101100 + 00101100 = 01011000 A Iii)A=001101000; F= 0 0 1/0 1 1/0 0 0 0 S Z * H * P/V N C
Flag N (Bit1) ser resetado,se houver soma , e ser setado, se ocorrer subtrao. O Flag H ser setado, sempre que houver um vai 1 ou empresta 1 no meio do byte. Ex. 1 101 1001 D9H 0001 1000 18H 1111 1000 F8H H=1; houve um vai no meio do byte(do bit 3 para o bit 4) N=0; a operao foi de soma
Registro vetor de interrupo ( I ) registro de 8 bits, especifica parte de um end. de memria, que juntamente com o cdigo de I/O aponta para uma ISR (instruo de sub rotina) A rotina de interrupo estar no endereo de memria gerado pela combinao do endereo de I/O e o contedo do registro I
Z - 80 1 2 LSB I/O MSB
I
MEM ISR
Ao do reg. I
1) 2) 3) O dispositivo I / O solicita uma INT. O Z-80 reconhece a INT O I/O envia pelas linhas de endereos menos sgnificativos um cdigo de 8 bits, no caso 12H, que se combinar com o contedo do reg. I que ocupar os oito bits mais significativos do endereos da ISR, no caso FF12H. 4) O endereo da ISR colocado na barra de endereos onde contm os dados da Interrupo
B8 Bo
LO
Est sempre apontando para a instruo seguinte No permite operaes lgicas, aritmticas ou rotao com o seu conteudo
endereamento indexado nos programas do Z-80 Em uma instruo indexada , um dos registro utilizado para calcular o endereo de memria do operando
do-se o registro de ndice ao valor de 8 bits contido no campo de deslocamento da instruo ( IX +/- d) reg. dice IX/IY +/- d operando campo de deslocamento
1.2. 9- UNIDADE LGICA ARITIMTICA Compe a arquitetura Interna de qualuer micro processador. responsvel pela execuo das opera-es lgicas e aritimticas com operan-dos de 8 bits. Executa a operao determinada pelo Opcode da instruo. Executa a atualizao dos Flags, aps a execuo de determinsds operao. Ligado diretamente a ULA est o acumulador e um registro temporrio para dados.
BARRAMENTOS 1
Barra de endereos composta pelos sinais eltricos nos pinos A15 a A0, onde A15 o bit mais significativo. So unidirecionais e assumem condio de alta impedncia (three state) quando o endereo desativado. Podemos enderear 216 de endereos de memria(64K) Para enderear dispositivos I/O a CP ocupa apenas os oito bits menos significativos da barra ( A7 a A0) O barramento de endereos do Z-80 Pode enderear 256 localidades de I/O As sete linhas formadas pelos sinais A6 a A0, conduzem o contedo do Registro R (restaurao) por certo instante de tempo durante a execuo da instruo
BARRAMENTOS 2
Barra de dados interliga a CPU com a memria e aos dispositivos I/O. So bidirecionais podendo ser colocado na condio de alta impedncia (HIGH Z). a via de comunicao da CPU Este barramento formado pelas linhas D7 a D0 O barramento de controle do Z-80 recebe sinais de entrada ou sada em diversos tips a saber: i) controle dos barramentos; ii) Operao com a memria iii) Controle de dispositivos de entrada e sada iv) controle de mquina v) Controle de interupo
ii) BUSAK (confirmao da requisio). Ativado em nvel baixo. Este conjunto de linhas usado nas operaes de DMA(Dirct Acess Memory) O I/O solicita o Barramento a CPU para ler ou escrever na memria aplicando um nvel lgico baixo na linha BUSREQ. A CPU aps executar a ao corrente, coloca a linha BUSAK em
nvel baixo, liberando os barramentos para o DMA
CONTROLE DA MEMRIA
Este contrle ser executado atravs de sinais com nvel lgico baixo aplicados nos pinos: MReq; RD; WR e RFSH. MReq avisa ao sistema que o barramento contm um endereo vlido de memria. Habilita o chip que compe o banco de memria Os sinais RD e WR indicam ao sistema que a operao de leitura ou escrita. Em cada ciclo, apenas um deles ser acionado. O sinal RFSH acionado quando o banco de memria composto por D-RAM, que necessita de atuali-
Controle da CPU
Este contrle ser executado atravs de sinais com nvel lgico baixo aplicados nos pinos: M1; RESET ; WAIT e HALT M1 indica ao sistema que a CPU entrou no ciclo de busca de um OPCODE. Para cada busca de OPCODE um sinal M1 ser gerado O sinal RESET gerado para reinicializar o sistema, isto feito sempre ao se ligar o sistema (Power up) ou de modo assncrono acionando o pino correspondente. Ao se ativar o RESET os seguinte eventos ocorrer na CPU; O PC carregado com 0000H; Os braramentos vo p/Hi-Z Desabilita o sistema de INT. Exceto para NMI Os registros R e I so carregados com 00H
O sinal WAIT (ESPERA) esta associado a operao com memrias lenta ou dispositivos I/O que no possuam BUFER. Quando ativado, (WAIT ) a CPU no executa nenhum ciclo de mquina ativo, enquanto a a memria ou I/O atende a uma requisio. O sinal HALT Ao ser ativado, executa a instruo HALT (parada). Esta instruo deve ser introduzida quando: O programa executou todas as tarefas especficas O programa est esperando uma INT. Deseja-se separar na memria diversos programas Durante o ciclo HALT a CPU executa a instruo NOP, para assegurar o REFRESH das D-RAM
Controle da CPU
o do programa, provocado por um dispositivo externo. (chamada de sub rotina executada por hardware). O sistema de interrupo possui duas linhas de controle que so:
INT e NMI .
A linha INT o principal controle de interrupo. Ao ser ativada (INT ) , ser reconhecida pela CPU ao final da instruo corrente se: O sistema for habilitado por software Estiver setado o IFF(IFF=1) e o sinal BUSRQ estiver desativado
00
66
Tempoprizao da CPU
Toda CPU dividida em ciclos bsicos. Sua base de tempo denominada ESTADO cuja durao exatamente um perodo de um pulso de clock Cada ciclo M composto de 3 a 6 estados Uma instruo gasta de 1 a 6 ciclos de mquina(M) Ciclo de mquina uma instruo especfica executada
LDR,(HL) carrega o registrador R com o contedo da posio de memria dado pelo par HL R Memria
ZZ
H L
0000
WW
XX YY
XXYY
ZZ
Aps a execuo da instruo o registro R estar com o seu contedo igual ZZH
LD(HL),R carrega o contedo da posio de memria dado pelo par HL, com o contedo de R. R Memria
QQ
H L
0000
WW
XX YY
XXYY
Aps a execuo da instruo o contedo do local de memria XXYYH ser igual a QQH
DIAGRAMA TEMPORAL
CICLO DE REQUISIA DE
I/O
Em qualquer momento um I\O pode ganhar o controle das barras de dados, endereos e das linhas de controle (MREQ, RD,WR,IORQ e RFSH), habilitando o sinal BUSRQ i) o sinal BUSRQ em, nvel baixo detectado pela CPU na subida do ltimo estado T do ciclo de mquina(M1) ii) ao iniciar o prximo estado, a CPU respon-de ativando o sinal BUSAK., ento as linhas e os barrametos so colocados em HI-Z iii)A linha BURSRQ ser desativada quan-do o I/O completar a transferncia de DMA. iv) Durante a prxima subida do pulso T a CPU deleta o processo de requisio, e se no houver outra ativao de BURSRQ, continuar o processamento normal no ponto em que parou.
CICLO DE REQUISIA DE
DIAGRAMA DE TEMPO
I/O
Ciclo de requisio e reconhecimento de interrupo A requisio de interrupo pode ser feita atravs das linhas
INT e NMI
i)Para atender um pedido pela linha INT necessrio que o IFF seja ativado por software e que a linha BUSRQ no seja ativada O processo de interrupo inicia-se aps a ativao da linha INT durante a subida do ltimo T do ltimo M1 Durante o estado T1 da INT o sinal M1 habilitado, e combinao de M1 e IORQ indicam o reconhecimento da INT ii) A interrupo pela linha NMI no depende da condio do IFF. a interrupo de mais alta prioridade. Ao ser reconhecida no ltimo estado T do ltimo M1, o PC carregado com 0066H, que o endereo para o tratamento da NMI.
DIAGRAMA TEMPORAL
Ciclo de RESET
Este sinal gerado para promover uma reinicializao da CPU Ocorre quando o sistema ligado automaticamente (power-up) ou com o uso de uma chave ligada ao pino correspondente. Ao ativar o RESET teremos: PC 0000H, e a CPU executa um salto para o inicio da memria AS interrupes sero inabilitadas, exceto as NMI Os registros R e I so zerados (R = I = 00H) As barras de dados e endereos so colocadas em HI-Z Todos os sinais de controle so colocados em HI-Z
1.3 Aspectos de hardware do processador 85-Z80 CPU com 158 instrues com frequncia mxima de 4MHz Frequncia de trabalho 2,048MHz. Memria EPROM de 2 Kbytes, guarda o programa monitor. Seu espao vai de 0000H a 07FFH. Teclado(perifrico de entrada) 36 teclas com feedback Display (perifrico de sada) 6 dgitos de sete segmentos Programa monitor de 2Kbyte, examina os drives do sistema e da o pronto da CPU ( sub-rotinas, execuo dos programas etc) Memria RAM ocupa o espao de 1800H a 1FFFH
1) Quais so os contrles da memria? R. MREQ; RD; WR e RFSH; 2) Quais so as linhas de contrle de I/O? R. IORQ; WR e RD 3) O que ocorre quando a CPU resetada? R. O PC executa um salto incondicional para o inicio da memria; Todos os sinais de controle so desabilitado; R e I so zerados 4) Quando ocorre a leitura do OPCODE? R. No ciclo M1 5)Quais so os sinais que determinam o reconhecimento de uma INT? R. M1 e IORQ Qual a INT que para ser atendida no depende do IFF? R. NMI
1) Qual o ciclo em que a CPU executa a instruo NOP? R. HALT 2) Quantos ciclos de mquina so utilizados no ciclo de escrita e leitura de I/O? R. 3 a 4 3) Qual o sinal da CPU que reconhece uma requisio de barramento? R. BUSAK 4) Quando ocorre o salto incondicional do PC para o endereo 0066H? R. quando houver ativao do sinal NMI 5)Qual o espao da ROM do mdulo 85-Z80? R. 2Kbyte, de 0000H a 07FFH. Qual o valor de um estado T gerado pelo mdulo 85-Z80? R. 0,5S aproximadamente 91/2,048MHz
1.3 verificao da sub unidade 1) Qual o espao da RAM do mdulo 85 Z-80? R. 2Kbytes, de 1800H a 1FFFH; 2) Quando ocorre o ciclo HALT? R. ao termino do programa ou quando se quer dividir programas em etapas distintas 3) Qual o procedimento para inserir um dado em um registro da CPU Z-80? R. Calcar a tecla REG; selecione o Registro desejado;calcar a tecla DATA e escrever o dado desejado no registro 4) Modifique o contedo de 1800H para ABH. R.Calque a tecla ADDR e depois as teclas 1800, a seguir calque as teclas 3 A, em seguida calque a tecla B
de programa objeto (linguagem de baixo nvel -binrio) Podemos escrever um programa em Hexa decimal com o objetivo de dimuir o tamanho do mesmo Para gerar uma linguagem mais proxima da mquina foi criado o Assembly (linguagem de alto nvel - LDA,M) O assembly composto de caracteres de fcil memorizaa (MNEMNICOS - LD= LOAD =carregar) Os programas LODER e ASSEMBLER faz a converso do
2.1-SOFTWARE Introduo ao ASSEMBLY Compilador programa que interpreta uma linguagem especifca em linguagem de mquina O assembly uma linguagem cujas palavras que a compe chama-se instrues Podemos dividir as Instrues do assembly em diversos grupos separados por funo especfica (programa) que ser interpretado por um leitor (CPU) O Z-80 possui 158 instrues representadas pelo seu MNEMNICO(OPCODE).
CPU REG C
MEMRIA REG D DE
HL
Transferncia de Blocos
Bloco um conjunto de bits armazenados em uma regio sequncial da memria que a CPU Z-80 pode transferir ou copiar de uma s vez.
(PC) = 0033H
Salte(00XXH) salte Salte (1FFCH)
Entrada e sada
Uma instruo de entrada e sada possibilita a movimentao de dados para dispositivos externos
CPU
PIO
PERF
Controle interno A CPu Z-8- possui um grupo de instrues utilizadas para o seu controle interno por sofware
2.1.2-Classe
Tipos de instrues:
de instrues
b) aritmtica e lgica;
c)Rotao e deslocamento; d)entrada e sada. As instrues podem conter 1byte(opcode) 2byte, 3byte e 4byte
CPU
MEM
CPU
MEM
8 BITS
H L
16bits
D E
2EH
23H
15H OR
1AH 11H
11H
AND
1 0 0 1 0 0 0 1
91H
0 0 1 0 0 0 1 1 23H
2.1.8-Instrues de I/O 2.19- OPCODE Uma instruo de I/O pode movimentar dados para dispositivos externos(impresso-ra, vdeo,etc.)
CPU
I/O
Cada bit dentro do OPCODE determina o que o micro ir fazer Os OPCODES so compostos de bits de sinais que definem o mnemnico(fcil memorizao)
XXH
Executa operaes de soma, subtrao, setar, ressetar, e deslocar bits. Operao OR, AND, XOR, etc. A B A 4EH + = 90H
42H
Transferncia de blocos
Esta instruo de grande utilidade uma das exclusividade do Z-80 Um bloco um conjunto de bytes armazena-dos em uma determinada regio seqencial da memria que pode ser copiada ou transferida para outra regio. ROTAO E DESLOCAMENTO Promove a rotao e deslocamento de bits para a direita como tambm para a esquerda A A
10010001 00100011
91H
23H
3.1 - continuao
Ex. de fluxograma
incio
LDR,R'
fim
Se o, fim
Cont.
PROVA OBJETIVA
Prova Objetiva DAS SU 2.6 3.5 Comentrio da prova