Vous êtes sur la page 1sur 8

EA-870 Laboratrio de Computao

Relatrio 3 19/03/2010
Autor: Mateus Ricardo de Campos Soares RA: 083900 Turma : T

1.
Em anexo no final do relatrio
2.
Em anexo no final do relatrio
3.
No primeiro ciclo :

INICIO:

- Registrador de dados D1 = 8
- Registrador de dados D7 = 0

CICLO:

- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0
- D0 recebe 0x000fffff

WAIT:

- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.


- O contedo do registrador D1 , no caso 8 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .

ACENDE:

- O contedo de D7 deslocado um digito para a esquerda , como ele zero
nada mudado
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x01


CONT:

- realizada uma operao de subtrao entre o contedo de D1 , no caso 8 ,
e 1 , e ento D1 recebe o resultado , no caso 7.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.

No segundo ciclo :

CICLO:

- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x01
- D0 recebe 0x000fffff

WAIT:

- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.


- O contedo do registrador D1 , no caso 7 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .

ACENDE:

- O contedo de D7 deslocado um digito para a esquerda , de 0x01 muda
para 0x02.
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x03


CONT:

- realizada uma operao de subtrao entre o contedo de D1 , no caso 7 ,
e 1 , e ento D1 recebe o resultado , no caso 6.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.

No terceiro ciclo :

CICLO:

- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x03
- D0 recebe 0x000fffff

WAIT:

- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.


- O contedo do registrador D1 , no caso 6 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .

ACENDE:

- O contedo de D7 deslocado um digito para a esquerda , de 0x03 muda
para 0x06
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x07


CONT:

- realizada uma operao de subtrao entre o contedo de D1 , no caso 6 ,
e 1 , e ento D1 recebe o resultado , no caso 5.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.


No quarto ciclo :

CICLO:

- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x07
- D0 recebe 0x000fffff

WAIT:

- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.


- O contedo do registrador D1 , no caso 5 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .

ACENDE:

- O contedo de D7 deslocado um digito para a esquerda , de 0x07 muda
para 0x0E
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x0F


CONT:

- realizada uma operao de subtrao entre o contedo de D1 , no caso 5 ,
e 1 , e ento D1 recebe o resultado , no caso 4.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.

No quinto ciclo :

CICLO:

- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x0F
- D0 recebe 0x000fffff

WAIT:

- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.


- O contedo do registrador D1 , no caso 4 , comparado com o nmero 4 ,
como o contedo de D1 igual a 4 o programa pula direto para a flag CONT

CONT:

- Com o contedo de D1 menor ou igual a quatro o programa continua
realizando ciclos at que D1 seja igual a zero e o programa pule para a flag INICIO ,
reiniciando os ciclos.


4.

Cdigo em C e Assembly.
--------------------------
#include "support_common.h" /* include peripheral declarations and more */
#include <stdio.h>

#define DDRTC 0x40100027
#define PORTTC 0x4010000F

int main(){
asm
{
move.b #0x0f,D3
move.b D3, DDRTC
movea #PORTTC,A1

move #0,D7
move D7,(A1)

UM: jsr WAIT

move #0x00,D2
move #0x02,D3
move #0x01,D7
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
lsl #1,D7


DOIS: jsr WAIT
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
sub #0x01,D3
bne DOIS

move #0x03,D3
lsl #1,D7


TRES: jsr WAIT
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
sub #0x01,D3
bne TRES

move #0x04,D3
lsl #1,D7
QUATRO: jsr WAIT
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
sub #0x01,D3
bne QUATRO
bra UM

WAIT: move #0x00ffffff,D0

DELAY: sub #1,D0
bne DELAY

RTS

}
}
-----------------------------

5.

Para fazer com que haja a leitura de dados da memria no programa , de modo
que o perodo seja um dado definido na posio de memria 0x20000100 adicionamos
no programa o seguinte comando :

------------------
move 0x20000100,A0
move 0x00ffffff,D4
------------------

e modificamos a funo de atraso WAIT para :

----------------------------
WAIT: move D4,(A0)

DELAY: sub #1,(A0)
bne DELAY

RTS
----------------------------

6.

Observamos a possibilidade de utilizar o command windows para modificar os
valores dos registradores em tempo real e assim mudar o perodo de acender e
apagar os LED's durante a execuo do programa.


7.
Em anexo no final do relatrio.

FLUXOGRAMAS

Diagramas de bloco pedidos:

Vous aimerez peut-être aussi