EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

19
EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC

Transcript of EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

Page 1: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

EEL7030 - Microprocessadores

Prof. Raimes Moraes

GpqCom – EEL

UFSC

Page 2: 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.

Page 3: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

Registradores do 8085

Page 4: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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.

Page 5: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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;

Page 6: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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

Page 7: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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

Page 8: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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.

Page 9: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

ProgramaSem Subrotina

Conjunto de N instruções repetidas

CALL Ninst

CALL Ninst

CALL Ninst

Ninst:

RET

ProgramaCom Subrotina SUBROTINA

Page 10: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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

Page 11: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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

Page 12: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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

Page 13: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

Diagrama de Blocos Kit Telemática

Page 14: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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

Page 15: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

PinoIO/M

Page 16: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

8155

Page 17: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

Registrador de controle do 8155 (20H)

Page 18: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

Endereço de Acesso a Registradores do 8155

Page 19: EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.

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