190 likes | 325 Views
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;
E N D
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.
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.
Pilha • Exemplo de utilização da pilha pelo programador: P U S H D [B] = 2AH ; [C] = 3FH [D] = 4CH ; [E] = FBH SP = 20C0H; P U S H B PUSH B PUSH D
Pilha • Exemplo de utilização da pilha pelo programador: P O P B POP B POP D P O P D [B] = 4CH ; [C] = FBH [D] = 2AH ; [E] = 3FH SP = 20C0H;
Pilha • Exemplo de utilização da pilha pelo programador: [A] = 4CH ; [FLAGS] = 06H [B] = 08H ; SP = 20C0H; PUSH PSW MVI A,30H ADD B MOV B,A POP PSW P U S H P O P [A] = 4CH ; [FLAGS] = 06H [B] = 38H SP = 20C0H;
SUBROTINA • 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. CALL Ninst Ninst: RET fim do programa
Programa Sem Subrotina Programa Com Subrotina SUBROTINA CALL Ninst Conjunto de N instruções repetidas CALL Ninst Ninst: CALL Ninst RET
Programa Sem Subrotina Programa Com Subrotina SUBROTINA • Vantagens: • Menor volume de código; • Código mais inteligível; • Desvantagem: • Menor velocidade de execução CALL Ninst Ninst: CALL Ninst RET CALL Ninst
SUBROTINA Exemplo 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).
Subrotina modifica Regs cujo conteúdo se quer preservar? P U S H D LXI SP,20D0H PUSH PSW PUSH D CALL 1234H POP D POP PSW P U S H PSW [A] = 4CH ; [Flg] = C7H [D] = 2AH ; [E] = 3FH SP = 20C0H;
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
Pino IO/M
8 1 5 5
Endereço de Acesso a Registradores do 8155 no kit telemática e Abacus