EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.
Embed Size (px)
Transcript of EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

EEL7030 - Microprocessadores
Prof. Raimes Moraes
GpqCom – EEL
UFSC

Pilha
• Região da memória RAM utilizada pelo programador e processador;
• Pelo programador: armazenar dados temporários;
• Pelo processador: armazenar endereços e flags qdo da alteração do fluxo de execução do programa (subrotina e interrupção);
• No 8085, a transferência de dados e endereços para a pilha acontece em par de bytes.

Registradores do 8085

Pilha
• Programador deve informar o processador sobre área de memória RAM disponível para a pilha, inicializando o registrador Stack Pointer (ponteiro de pilha)*.
• Exemplo:
LXI SP, 20C0H
*OBS: Qdo o processador executa sistema operacional, este gerencia a pilha.

PilhaPILHA END. DADO
SP-1 20BCH FB [E]
SP-1 20BDH 4C [D]
SP-1 20BEH 3F [C]
SP-1 20BFH 2A [B]
SP 20C0H
• Exemplo de utilização da pilha pelo programador:
PUSH BPUSH D
PUSH
D
PUSH
B
[B] = 2AH ; [C] = 3FH[D] = 4CH ; [E] = FBHSP = 20C0H;

PilhaPILHA END. DADO
SP+1 20BCH FB
SP+1 20BDH 4C
SP+1 20BEH 3F
SP+1 20BFH 2A
SP 20C0H
• Exemplo de utilização da pilha pelo programador:
POP BPOP D
[B] = 4CH ; [C] = FBH[D] = 2AH ; [E] = 3FHSP = 20C0H;
POP
B
POP
D

PilhaPILHA END. DADO
20BCH FB
20BDH 4C
SP-+1 20BEH 06
SP-+1 20BFH 4C
SP 20C0H
• Exemplo de utilização da pilha pelo programador:
PUSH PSWMVI A,30HADD BMOV B,APOP PSW
[A] = 4CH ; [FLAGS] = 06H[B] = 08H ; SP = 20C0H;
PU S H
[A] = 4CH ; [FLAGS] = 06H[B] = 38H SP = 20C0H;
PO P

SUBROTINA
Ninst:
RET
CALL Ninst
fim do programa
• Conjunto de instruções para o qual o fluxo de execução do programa é desviado pela instrução:
CALL (endereço)
• A instrução RET faz com que o microprocessador retorne à executar instrução que se segue à chamada da subrotina.

ProgramaSem Subrotina
Conjunto de N instruções repetidas
CALL Ninst
CALL Ninst
CALL Ninst
Ninst:
RET
ProgramaCom Subrotina SUBROTINA

ProgramaSem Subrotina
CALL Ninst
CALL Ninst
CALL Ninst
ProgramaCom Subrotina SUBROTINA
Ninst:
RET
• Vantagens:
• Menor volume de código;• Código mais inteligível;
• Desvantagem:
• Menor velocidade de execução

SUBROTINAExemplo
PILHA END. DADO
SP-1 20BEH 0DH
[PC LSB]
SP-1 20BFH 20H
[PC MSB]
SP 20C0H
1 Salva atual PC (200Dh) na pilha. (O PC é atualizado ao obter o código da instrução CALL);
2 Sobrescreve PC com endereço da subrotina; (PC = 2028H)
3 Executa subrotina;
4 Retorna à instrução que se segue ao CALL no programa principal (instrução RET retira endereço da pilha (incrementando SP) e sobrescreve PC).
END. CÓDIGO
200A CALL 2028H
200D MOV A,B

Subrotina modifica Regscujo conteúdo se quer
preservar?
PILHA END. DADO
SP+1 20CCH FB [E]
SP+1 20CDH 4C [D]
SP+1 20CEH C7 [Flg]
SP+1 20CFH 4C [A]
SP 20D0H
LXI SP,20D0HPUSH PSWPUSH DCALL 1234HPOP DPOP PSW
[A] = 4CH ; [Flg] = C7H[D] = 2AH ; [E] = 3FHSP = 20C0H;
PUSH
D
PUSH
PSW

Diagrama de Blocos Kit Telemática

Instruções para acesso a dispositivos de entrada e saída
IN (end.): conteúdo do endereço especificado pela instrução é carregado no acumulador;
OUT (end.): conteúdo do acumulador carregado no registrador do endereço especificado;
OBS: end.: 00 a FFH

PinoIO/M

8155

Registrador de controle do 8155 (20H)

Endereço de Acesso a Registradores do 8155

REGISTRADOR ENDEREÇOA BACUS
COMMAND
20H
CHAVES (PORTA A) 21H
LEDS (PORTA B) 22 H
Endereço de Acesso a Registradores do 8155 no kit telemática e Abacus