Sunteți pe pagina 1din 8

BAZELE PROGRAMRII CALCULATOARELOR 9

SISTEMUL DE DEZVOLTARE.
ARHITECTURA GENERAL A MICROPROCESORULUI
8085.
1. Obiective
Prin parcurgerea acestei edine de laborator studenii vor fi capabili:
S utilizeze instruciunile de iniializare a registrelor;
S utilizeze instruciunile de I/O pentru citirea porturilor de intrare i nscrierea
porturilor de ieire;
S nvee s utilizeze instruciunile de ramificare necondiionat i condiionat i s
construiasc structuri de program caracteristice programrii structurate de tip for n
limbaj de asamblare.

2. Structura sistemului cu microprocesor i exemplificarea pe placa de


dezvoltare

24

18 16 17 19

25

26

14

10
8

12
15

31

32

27

9
28
11
29

13

13

33
30
34
35

20 21 22 23

37
36

Figura 1. Principalele componente ale microsistemului

162

BAZELE PROGRAMRII CALCULATOARELOR 9

Muf de
alimentare

- premite alimentarea de la o surs de tensiune extern de cel


puin 7V c.c.;

Muf port paralel

Mufe port serial

Comutator
bipoziional

- de conectare (ON) / deconectare (OFF) a alimentrii

Microprocesorul

- 80C85;

Memoria ROM

- de 32 Koctei, la nceputul creia se afl nscris monitorul


rezident ce permite operarea local i de la distan;
- locaiile de memorie RAM 8000hFF00h sunt la dispoziia
utilizatorilor, pentru ncrcarea i execuia programelor
acestora;
- zona de memorie RAM FF00hFFFFh nu trebuie
modificat;

Memoria RAM

(1)
(2)
(3)
(4)
(5)

- de 32 Koctei, din care ultimele 256 de


locaii
(FF00hFFFFh) sunt folosite de ctre monitorul rezident;

(6)

(7)

Circuitul
programabil de
timp (Timer)

- cu 3 canale de timp, din care unul poate comanda un difuzor;

Interfaa paralel

- cu 3 porturi de 8 bii:
(9)
A - comand un set de 8 led-uri de stare (D56D63) (40H); (10)
B - conectat la 8 comutatoare DIP (S2),
(11)
Starea comutatoarelor este afiat i pe leduri (D48D55)
(41H);
(10)

Controlerul pentru
portul paralel

(8)

(12)

Circuitele de
interfa serial

- pentru dou canale de comunicaie serial RS232: COM1 i


COM2 (COM1 este folosit de monitorul rezident);
(13)

Controlerul de
ntreruperi

- cu 8 linii de ntrerupere, conectat la linia INTR a


microprocesorului;
(14)

Controler pentru
afiaj i tastatur

(15)

163

BAZELE PROGRAMRII CALCULATOARELOR 9

Butoane de
iniializare

RST

TRP

INT7.5
INT0

Butoane i logic HSS EN


HW
pentru
execuia pas cu pas INS
FET
ALL
R/W
HSS
Led-uri

D7-D38

D48D63

Difuzor

Display alfanumeric

- reseteaz microsistemul, astfel nct, indiferent


n de starea sa, monitorul rezident repornete,
similar cazului de conectare a alimentrii;
- determin apariia unei ntreruperi nemascabile
(care
este
acceptat
necondiionat
de
microprocesor), nsmennd ncetarea activitii
curente a microsistemului i reintrarea n bucla de
ateptare de comenzi;
- aceast comand este util pentru a ntrerupe n
orice moment execuia unui program al
utilizatorului, pentru a examina starea
registrelelor sau pentru a vedea unde s-a blocat;
- permit generarea manual a altor tipuri de
ntreruperi i rolul lor va fi examinat n detaliu
ntr-o lucrare ulterioar.

(16)

(17)

(18)
(19)

Hardware Single Step Enable Activare execuie


(20)
pas cu pas
Se oprete dup fiecare instruciune
(21)
Se oprete dup fiecare cod
Execuie pas cu pas

(22)
(23)

- pentru vizualizarea strii magistralelor:


D7-D22 pentru magistrala de adrese (A15-A0);
D23-D30 pentru magistrala de date (D7-D0);
D31-D38 pentru comenzi (R, W, etc.);
- pentru vizualizarea porturilor I/O:

(24)
(25)
(26)
(27)

D48-D55 - pentru intrri;


D56-D63 - pentru ieiri;

(28)
(29)
(30)
(31)

Tastatura
hexazec
PC
RUN
ENT
DEC

0, 1,..., 9, A,...,F
Program Counter
- lanseaz n execuie
- incrementeaz adresa
- decrementeaz adresa

164

(32)
(33)
(34)
(35)
(36)
(37)

BAZELE PROGRAMRII CALCULATOARELOR 9


3. Aplicaii de conectare a plcii la un calculator i de examinare a
coninutului memoriei cu monitorul NoICE
Se consider secvena de instruciuni introduse n memorie ncepnd cu adresa A000.
Adresa Cod main Cod surs
A001
DB 41
IN 41
A002
CMA
2F
A004
D3 40
OUT 40
A005
HLT
76
Se observ marcat cu rou opcodul instruciunii n cod main. Acesta este urmat de o constant
care este fie o adres fie o valoare numeric. La execuia secvenei de instruciuni registrul PC ia
urmtoarele valori: A000, A001, A002, A003, A004 i A005.

4. Programarea microprocesorului 8085


Un fiier surs n limbaj de asamblare pentru ASM85 poate s conin una sau mai multe
linii de cod surs. O linie de cod surs are urmtorul format:

<etichet> [:] <instruciune> <operanzi> [;] <comentariu>


n oricare din cmpurile menionate mai sus se pot utiliza att litere mici ct i majuscule
n orice combinaie, asamblorul nefiind case sensitive.
Eticheta este opional, ea reprezint un nume simbolic dat adresei la care se va stoca
instruciunea urmtoare. n cazul n care folosim eticheta, aceasta trebuie s fie localizat fix la
nceputul liniei din codul surs. Opional, dup etichet poate s urmeze caracterul : (dou
puncte). Eticheta trebuie separat de cmpul care urmeaz prin cel puin un (spaiu) sau
(Tab). Pentru a pstra compatibilitatea cu alte asambloare eticheta va fi ntotdeauna
urmat de caracterul :.
Cmpul aferent instruciunii poate fi amplasat pe aceeai linie cu eticheta sau pe linia
urmtoare. n cazul n care nu exist o etichet, instruciunea nu trebuie plasat pe prima coloan,
ci trebuie s fie precedat de cel puin un spaiu sau un Tab. Dac instruciunea are operanzi, acetia
trebuie separai de numele instruciunii printr-un spaiu sau un Tab. n cazul n care instruciunea
are mai muli operanzi, acetia vor fi separai prin , (virgul).
Cmpul opional dedicat comentariului trebuie s fie separat de operanzi prin cel puin un
spaiu sau un Tab i trebuie specificat prin ; (punct i virgul) la nceputul comentariului pentru
a pstra compatibilitatea cu alte asambloare.

4.1.

Instruciunea de iniializare

n categoria registrelor care pot fi iniializate regsim registrele: A, B, C, D, E, H i L.


Formatul general al instruciunii de iniializare este:
MVI r,data8

MoVe
Immediate
data data8 to register r

165

0 0 d d d 1 1 0
data8

BAZELE PROGRAMRII CALCULATOARELOR 9


n limbaj de asamblare, aceast instruciune are doi operanzi i semnificaia c n registrul r se
nscriu datele din data8. n limbaj main, instruciunea are doi octei, poziionai n memorie la
adrese consecutive. Primul octet reprezint codul operaiei i cuprinde o serie de bii fixai care
reprezint codul operaiei i trei bii (ddd) care codific registrul folosit de instruciune (registrul
destinaie) astfel:
r
ddd

B
000

C
001

D
010

E
011

H
100

L
101

110

A
111

Cel de-al doilea octet al instruciunii este reprezentat de o valoare numeric pe 8 bii care este
ncrcat n registrul specificat de opcod.
n limbajul de asamblare ASM85, un astfel de operand poate fi exprimat printr-o constant
numeric, o constant simbolic a crei valoare a fost definit n cadrul fiierului surs sau printro expresie aritmetic sau logic cu constante numerice i/sau simbolice.

4.2.

Instruciuni de intrare ieire

n cazul microprocesorului 8085, adresarea porturilor (I/O) se face pe 8 bii, deci adresa
unui port poate s fie cuprins ntre 00h i FFh. Transferul I/O se realizeaz prin intermediul
registrului A astfel: starea unui port de intrare (I) poate fi ncrcat numai n A, iar comanda unui
port de ieire (O) se poate face numai cu octetul din A. Vorbim n acest caz de adresarea implicit.
Formatul general al instruciunilor de intrare-ieire este prezentat n cele ce urmeaz:
Input from port ()
= 00
OUT port Output to port ()
= 00
IN port

4.3. Instruciuni de salt


4.3.1. Instruciunea de salt necondiionat JMP
Orice modificare a registrului PC modific ordinea de execuie a instruciunilor i este
echivalent cu un salt n program. Instruciunea care modfic registrul PC se numete JMP (jump)
i are urmtoarea form general:
JMP addr JuMP to address
Primul operand al instruciunii nu este menionat, acesta fiind implicit registrul PC. Cel de-al
doilea operand care este specificat, precizeaz adresa instruciunii care se va executa dup JMP,
adic adresa de memorie la care se face saltul. Saltul la adresa specificat se execut indiferent de
starea curent a programului (regitre i indicatori de condiii).

166

BAZELE PROGRAMRII CALCULATOARELOR 9


4.3.2. Instrucuiuni de salt condiionat
Formatul general al unei instruciuni de salt condiionat este urmtorul:
Jcondition addr Conditional JuMP to address ( == )

+ 3
n cazul n care condiia precizat condition este adevrat, se execut un salt la adresa precizat
n instruciune , prin ncrcarea ei n registrul PC. n cazul n care condiia este fals, se continu
cu instruciunea urmtoare.
Corespondenele dintre condiie i codul acesteia sunt ilustrate n cele ce urmeaz:
Condiia

Condiia este CCC


adevarat
dac
Not Zero rezultatul este diferit de 0;
000
NZ
=0
Zero rezultatul este egal cu 0;
001
Z
=1
Not Carry operaia nu a produs transport/mprumut;
010
NC
= 0
Carry operaia a produs transport/mprumut.
011
C
= 1
Cu ajutorul acestor instruciuni pot fi scrise structuri de program de tip ramificare simpl
(if...else) sau multipl (switch...case), dar i structuri de program repetitive/ bucle cu numr de
pai cunoscut (for), cu test iniial (while) sau cu test final (do...while).
Simbolul predefinit $ poate fi folosit n orice instruciune pentru a ne referi la adresa acelei
instruciuni. De aceea utilizarea ei ntr-o instruciune de salt face ca microprocesorul s execue
continuu aceeai instruciune de salt la infinit.
Descriere

5. Aplicaii propuse
5.1. S se scrie n memorie urmtoarea secven de cod:
A001
A002
A004
A005

DB 41
2F
D3 40
76

IN 41
CMA
OUT 40
HLT

PC

S se precizeze opcodul fiecrei instruciuni i operanzii dac este cazul.

167

A000:
A001:
A002:
A003:
A004:
A005:

DB
41
2F
D3
40
76

BAZELE PROGRAMRII CALCULATOARELOR 9

5.2.

S se scrie n memorie un program care rotete la dreapta un led i ilustreaz procesul


pe portul de ieire.

Indicaie

a) De ce a fost iniializat registrul A cu valoarea 01h?


b) Ce se observ la lansarea n execuie?
c) S se execute pas cu pas secvena de instruciuni astfel: cu oprire dup fiecare instruciune
i cu oprire dup fiecare cod.
d) Cte apsari ale butonului HSS sunt necesare n primul caz? Dar n cel de-al doilea?

168

BAZELE PROGRAMRII CALCULATOARELOR 9

5.3.

S se completeze codul de la problema 5.2. prin introducerea unui delay n program


astfel nct rotirea ledului s poat fi observat fr a utiliza execuia pas cu pas.

Indicaie

6. Referine bibliografice
[1] C.Huanu, M.Postolache, Sisteme cu microprocesoare, Editura Academic, Iai, 2001.
[2] Gh.Toace, Introducere n microprocesoare, Editura tiinific i Enciclopedic,
Bucureti, 1985.
[3] ***, Universal Trainer, Lab Manual for Board Revisions R1 and R2, EMAC INC, 1993.
[4] ***, Universal Trainer, Reference Manual, EMAC INC, 1993.
[5] ***, Universal Trainer, Self Instruction Manual, EMAC INC, 1992.

169

S-ar putea să vă placă și