5335


Politechnika Lubelska

w Lublinie

Laboratorium Techniki Mikroprocesorowej

Ćwiczenie Nr 3

Nazwisko: Olszewski

Paluch

Imię: Wojciech

Marek

Semestr

V

Grupa

ED 5.2

Rok akad.

2000/2001

Temat ćwiczenia: Pamięć wewnętrzna RAM.

Organizacja i wykorzystanie stosu.

Data wykonania:

2000.10.23

Ocena

Celem ćwiczenia jest zapoznanie się z wewnętrzną pamięcią RAM (pamięć o dostępie swobodnym), która może być zarówno odczytywana jak i zapisywana. W systemie mikroprocesorowym służy ona do przechowywania danych.

Zadanie 3.

Akumulator umieszczony jest pod adresem 0E0H. Przy adresowaniu rejestrowym akumulator oznaczamy przez A (rozkazy nie zawierają w swoim kodzie jego adresu), natomiast przy adresowaniu bezpośrednim przez ACC (adres umieszczony w kodzie rozkazu). Przy oznaczeniu A lub ACC zostanie zapisany cały adres natomiast przy zapisie np.:

SETB ACC.x zostanie ustawiony bit x akumulatora (adresowanie bitowe).

Zadanie 4.

Następny program przedstawia posługiwanie się rejestrami R0-R7 zamiast innymi komórkami pamięci, co jest czasami bardzo wygodne i efektywne. W tym przykładzie zastosowano adresowanie bezpośrednie przy zapisie danych i adresowanie rejestrowe przy odczycie danych.

Listing programu przedstawia się następująco:

B0R7 EQU 7 ;rejestr R7 z banku 0

B1R7 EQU 8+7 ;rejestr R7 z banku 1

B2R7 EQU 10H+7 ;rejestr R7 z banku 2

B3R7 EQU 18H+7 ;rejestr R7 z banku 3

LJMP START

ORG 100H

START:

MOV B0R7,#0 ;wpisz numer banku

MOV B1R7,#1 ;do rejestru R7

MOV B2R7,#2

MOV B3R7,#3

LCALL LCD_CLR ;wyczyść wyświetlacz LCD

;bank 0

MOV A,R7 ;A <- R7=0

LCALL WRITE_HEX ;akumulator na LCD

SETB RS0 ;bank 1

MOV A,R7 ;A <- R7=1

LCALL WRITE_HEX

SETB RS1 ;bank 3

MOV A,R7 ;A <- R7=3

LCALL WRITE_HEX

CLR RS0 ;bank 2

MOV A,R7 ;A <- R7=2

LCALL WRITE_HEX

LJMP $

Stosując pracę krokową zaobserwowałem stan akumulatora, rejestru stanu PSW oraz stan wyświetlacza LCD, co przedstawia poniższa tabela:

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.0

LCD

A

CY

AC

F0

RS1

RS0

OV

-

P

-

-

-

-

-

0

0

-

-

-

00

00

-

-

-

1

1

-

-

-

0001

01

-

-

-

0

1

-

-

-

000103

03

-

-

-

1

1

-

-

-

00010302

02

Zawartość rejestrów R7 w poszczególnych bankach przedstawia poniższa tabela:

Bit

7

6

5

4

3

2

1

0

Bank 0

00

-

-

-

-

-

-

-

Bank 1

01

-

-

-

-

-

-

-

Bank 2

02

-

-

-

-

-

-

Bank 3

03

-

-

-

-

-

-

-

Zadanie 5.

Modyfikując przykład z zadania nr5 należało zapełniamy zawartością EEH wybraną przestrzeń adresową, np. od 40H do 48H - wykorzystując adresowanie pośrednie.

LJMP START

ORG 100 H

START :

MOV R0, # 40 H ;do R0 wpisz liczbę 40H

;która będzie adresem

MOV R2, # 9 ;do R2 wpisz liczbę 9

;która będzie licznikiem

;pętli

LOOP : ;zapisz wartość EEH w 9

;komórkach pamięci

;począwszy od adresu

;40H do 48H

@R0, # EE H ;wpisz liczbę EEH pod

;adres umieszczony w R0

INC R0 ;zwiększ adres

DJNZ R2, LOOP ;powtórz zapis zgodnie z

;licznikiem pętli - 9 razy

SJMP $

Zadanie 10.

Zadanie to polegało na określeniu ilości miejsca na stosie dla przykładu 5.2Zauważamy .że do stosu przy użyciu instrukcji PUSH włożone są 3 komórki pamięci (rejestry specjalne) ACC,B,PSW, a więc przykład potrzebuje 3 komórek w stosie.W podprogramie BIN _BCD: ,w momencie schowania setek , w stosie jest tylko jedna komórka ACC.



Wyszukiwarka

Podobne podstrony:
5335
5335
5335
5335
5335
5335
5335
5335

więcej podobnych podstron