Politechnika Lubelska |
Laboratorium Podstaw Systemów Mikroprocesorowych. |
||||
|
wiczenie Nr 3a |
||||
Nazwisko: Bryda Bator Kozina |
Imi: Artur Tomasz Micha |
Semestr V |
Grupa ED 5.3 |
Rok akad. 1997/98 |
|
Temat wiczenia: Pami wewntrzna RAM. |
Data wykonania 24.10.1997 |
Ocena
|
Pamiec wewnetrzna ram.
pamiec wewnetrzna ram - akumulator:
Zadanie 1
Dokonano operacj adresowania rejestrowego akumulatora.
Listing programu:
;************************************************
;LEKCJA 3 - PAMI WEWNTRZNA RAM
;PRZYKAD 1 - AKUMULATOR
;************************************************
LJMP START
ORG 100H
START:
LCALL LCD_CLR ;wyczy wywietlacz LCD
MOV A,#10H ;wpisz liczb do A
LCALL WRITE_HEX ;podprogram systemuDSM-51
;liczba z akumulatora
;na wywietlacz LCD
MOV ACC,#20H ;wpisz liczb do ACC
LCALL WRITE_HEX ;akumulator na LCD
LJMP $
Stosujc prac krokow przy uyciu komputera spisano zawarto rejestru PSW oraz stan wywietlacza LCD.
tabela(wyniki programu):
Bit |
PSW.7 |
PSW.6 |
PSW.5 |
PSW.4 |
PSW.3 |
PSW.2 |
PSW.1 |
PSW.0 |
LCD |
Flaga |
CY |
AC |
F0 |
RS1 |
RS0 |
OV |
- |
P |
- |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
10 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1020 |
Zadanie 2
Modyfikujc program z zadania 1 wykonano adresowanie bezporednie wybranych bitów akumulatora.
W przykadzie tym wykorzystano program z zadania 1 dodajc w nim po obu instrukcjach MOV odpowiednio instrukcje:
SETB ACC,3
SETB ACC,0
Zawarto rejestru PSW oraz stan wywietlacza LCD zapisano w tabeli poniej:
Bit |
PSW.7 |
PSW.6 |
PSW.5 |
PSW.4 |
PSW.3 |
PSW.2 |
PSW.1 |
PSW.0 |
LCD |
Flaga |
CY |
AC |
F0 |
RS1 |
RS0 |
OV |
- |
P |
- |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
18 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1821 |
Zadanie 3
W jaki sposób rozrónia si adres akumulatora od adresów poszczególnych bitów?
Poszczególne bity w rejestrach mog mie takie same adresy, jak adresy rejestrów, gdy adresy bitów s wykorzystywane w innych rozkazach ni adresy rejestrów. To rozkaz wie , czy podana liczba jest adresem bitu czy rejestru. Dla przykadu adresu poszczególnego bitu mona si spodziewa po instrukcji SETB (ustaw bit danej komórki). Natomiast adres akumulatora moe wystpi np. po instrukcji MOW (wpisz).
Zadanie 4
Pami wewntrzna RAM - rejestry R0..R7:
Listing programu:
;************************************************
;LEKCJA 3 - PAMI WEWNTRZNA RAM
;PRZYKAD 3 - REJESTRY R0..R7
;************************************************
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 wywietlacz 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 $
Stosujc prac krokow zaobserwowano stan akumulatora, rejestru PSW oraz stan wywietlacza LCD na przykadzie zawartoci rejestru R7 w bankach 0,1,2,3.
Wyniki przedstawiono w tabelach:
Bit |
PSW.7 |
PSW.6 |
PSW.5 |
PSW.4 |
PSW.3 |
PSW.2 |
PSW.1 |
PSW.0 |
LCD |
A |
Flaga |
CY |
AC |
F0 |
RS1 |
RS0 |
OV |
- |
P |
- |
- |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
21 |
|
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0001 |
19 |
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
000103 |
FF |
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
00010302 |
00 |
Zawarto rejestrów R7 w poszczególnych bankach:
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Bank 0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Bank 1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Bank 2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
Bank 3 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
Zadanie 6
Stosujc adresowanie bitowe ustawiono zawarto komórki 21 na 3H i wywietlono j na wywietlaczu LCD.
Listing programu:
;************************************************
;LEKCJA 3 - PAMI WEWNTRZNA RAM
;PRZYKAD 5 - OBSZAR ADRESOWANIA BITOWEGO
;************************************************
LJMP START
ORG 100H
START:
LCALL LCD_CLR
MOV 21H,#0 ;zeruj komórk 21H
;(21H) <- 0
MOV A,21H ;A <- (21H)=0
LCALL WRITE_HEX
SETB 21H.0 ;ustaw bit 0 komórki 21H
SETB 9 ;ustaw bit 9
;czyli bit 1 komórki 21H
MOV A,21H ;A <- (21H)=3
LCALL WRITE_HEX
LJMP $