Resumo primeiro exercício de Microprocessador 2013
Por: Juliana2017 • 6/11/2018 • 2.807 Palavras (12 Páginas) • 354 Visualizações
...
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-
---------------------------------------------------------------
Acha Maior da Memória:
.define
BUFFER 4100h
.data 4100h
V2: DB 04h,05h,03h,02h,09h,07h
.org 0000h
LXI H,4100h
MVI B,00h
DENOVO:MOV A,M
CMP B
JC CONTINUA
MOV B,A
MOV D, H
MOV E, L
CONTINUA: INX H
MOV A,L
CPI 06h
JNZ DENOVO
MOV A, B
XCHG
HLT
Acha Menor:
; define variáveis
.define
BUFFER 4100H
.data 4100H
V2: DB 020,030,100,001,002,008,038
.ORG 0000H
LXI H,4100H
MVI B,0H
DENOVO: MOV A,M
CPI 038H
JNC CONTINUA
INR B
CONTINUA: INX H
MOV A,L
CPI 0AH
JNZ DENOVO
MOV M,B
FIM: HLT FIM
Acha Maior B e Menor C:
.define
BUFFER 4000H
.data 4000h v2: DB 5h,6h,9h,3h
.org 0000h
LXI H,4000H
MVI C,FH
MVI B,0H
DENOVO: MOV A,M
CMP B
JC CONT1
MOV B,A
CONT1: CMP C
JNC CONT2
MOV C,A
CONT2: INX H
MOV A,L
CPI 4H
JNZ DENOVO
MOV M,B
INX H
MOV M,C
HLT
Acha Zero
.DEFINE
BUFFER 4100H;
.data 4100H;
V2: DB 1,0,2,0,0,4,6,6,5,9,0
.org 0000H
LXI H,4100H
MVI B,0
DENOVO: MOV A,M
CPI 0H
JNZ CONTINUA
INR B
CONTINUA: INX H
MOV A,L
CPI 0BH
JNZ DENOVO
MOV M,B
HLT
-2-
Contar o numero de zeros
.define
BUFFER 4100h
.data BUFFER
V2:DB
...