TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Resumo primeiro exercício de Microprocessador 2013

Por:   •  31/8/2017  •  Trabalho acadêmico  •  9.108 Palavras (37 Páginas)  •  288 Visualizações

Página 1 de 37

1) Considere o programa abaixo, em mnemônico, e responda as questões a seguir, sabendo que a sub-rotina delay provoca um retardo de 1ms e afeta o registrador E.

.define

        dados1         4000h

        dados2                4100h

.data        4000h

        dados1 db        10h, 35h, 22h, 16h, 33h, 25h, 27h, 6Ah, FFh, 12h

.data        4100h

        dados2 db        26h, F2h, E4h, 34h, 87h, 54h, 90h, 33h, BFh, 20h

        ORG 0

Inicio:

3

LXI SP, 4050h

0000h; carrega o apontador de pilha com valor 4050h, inicia dados.

3

LXI H, dados1

0003h; carrega HL com dados1.

3

LXI D, dados2

0006h; carrega DE com dados2.

2

MVI C, 0Ah

0009h; carrega registrador com valor 0Ah, contador = 10d.

1

MOV A, M

000Bh; carrega acumulador com dados apontado por HL.

1

MOV B, A

000Ch; carrega registrador B com acumulador.

1

XCHG

000Dh; permuta D ↔ H e E ↔ L.

1

MOV A, M

000Eh

1

MOV M, B

000Fh

1

XCHG

0010h; permuta D ↔ H e E ↔ L.

1

MOV M, A

0011h

1

INX H

0012h; incrementa H, para o próximo dado armazenado no par HL.

1

INX D

0013h; incrementa D, para o próximo dado armazenado no par DE.

1

DCR C

0014h, atualiza contador

3

CALL Delay

0015h, carrega a sub-rotina Delay

3

JNZ volta

0018h, se não fez 10 vezes repete.

1

HLT

001Bh

1

INR r/M/A

Incrementa 1 ao: registrador /Conteúdo da posição HL / Acumulador

3

LDA

1

ANI

3

OUT 01h

Envia valor de A para a Porta de saída 01h

(a) O que o programa acima faz? Explique.

O programa permuta os dados1 ↔ dados2 através do XCHG que permuta os dados D ↔ H e E ↔ L. A permutação ocorre dado por dado. Os dados finais ficarão:

dados1                26h, F2h, E4h, 34h, 87h, 54h, 90h, 33h, BFh, 20h

dados2                10h, 35h, 22h, 16h, 33h, 25h, 27h, 6Ah, FFh, 12h

(b) Desenhe uma tabela mostrando os endereços e o conteúdo da pilha após a execução da instrução CALL 0200h.

O acumulador CALL antes de executar a sua sub-rotina envia para a pilha o próximo endereço:

404Eh

18h

        SP[pic 1]

404Fh

00h

4050h

(c) Após a execução qual o maior valor a partir da posição 4000? E a partir de 4100?

Posição 4000h: F2h e Posição 4100h: FFh

(d) Mostre o que deve ser feito para garantir o correto uso das chamadas de sub-rotinas a garantir a corretude do programa.

Para o uso correto das chamadas de sub-rotina deve guardar, antes da execução da sub-rotina o endereço que segue na pilha, para depois, na volta da sub-rotina este endereço seja retirado da pilha para execução, e ainda, para retornar ao programa principal é necessária a instrução RET no final da sub-rotina de instrução CALL. Os dados normalmente armazenados são endereços de chamadas/retornos de sub-rotina e endereços de retorno de interrupções, que automaticamente armazenados pelo 8085 e ainda outros dados que podem ser armazenados pelo programador usando a instrução PUSH. Posteriormente esses dados são retirados da pilha usando a instrução POP. -1-

...

Baixar como (para membros premium)  txt (26.8 Kb)   pdf (574.4 Kb)   docx (1.2 Mb)  
Continuar por mais 36 páginas »
Disponível apenas no TrabalhosGratuitos.com