Académique Documents
Professionnel Documents
Culture Documents
POP B
POP D
POP H
POP PSW
9.2 - S T A C K (Pilha)
A Pilha é compartilhada pelo Programador e pelo Microprocessador.
Programador:
armazenar e retirar informação da pilha através das instruções PUSH e POP,
respectivamente.
Microprocessador
armazena o conteúdo do PC (Program Counter) na Pilha quando uma Sub-
rotina
LXI SP, D16 => Carrega o Stack Pointer. O registro SP é carregado com um
endereço (2 bytes).
O conteúdo da memória utilizada pela Pilha permanece inalterado até que um outro
valor seja armazenado na memória.
9.3. - Exemplo 1
2000 LXI SP, 2099H
2001 LXI H, 42F2H
2006 PUSH H
2007 CALL DELAY (Chamada de subrotina )
200A POP H
200B HLT
9.3. - Exemplo 1
PUSH H
O Conteúdo do par HL não é perdido, podendo ser utilizado pela rotina DELAY.
9.3. - Exemplo 1
2000 LXI SP, 2099H
2001 LXI H, 42F2H
2006 PUSH H
2007 CALL DELAY (Chamada de subrotina)
200A POP H
200B HLT
POP H
Objetivos
1. Dividir o programa em tarefas simples e modulares;
2. Criar procedimentos que podem ser “chamados” de diversos pontos do
programa.
Vantagens
1. Código mais compactos;
Se é necessário fazer várias vezes a mesma tarefa, existe apenas 1 porção
de código para a excetuar.
2. Códigos mais modular;
Permite uma programação mais ordenada e estruturada.
3. Menos erros.
As subrotinas podem ser testadas uma a uma.
9.8 - Subrotinas
CALL – RET
1. Função da Subrotina;
2. Parâmetros de entrada e de saída;
3. Registradores utilizados e modificados;
4. Lista de outra Subrotinas chamadas pela subrotina.
Passagens de parâmetros:
1. Nos registradores;
2. Em endereços fixos de memória;
3. No Stack.
9.8.2 - Documentação da Subrotina e passagem de parâmetros
Passagens de parâmetros:
1. Nos registradores;
A rotina recebe os dados nos registradores B e C, e devolve o resultado no
Acumulador.
3. No Stack.
Recebendo no stack os dados e devolvendo-os também no stack;
Recebendo no stack os dados e o endereço onde deve ser guardado o
resultado.
CALL condicional:
RET condicional: