Documente Academic
Documente Profesional
Documente Cultură
1. Obiective
Prin parcurgerea acestei edine de laborator studenii vor fi capabili:
S rezerve spaiu n memorie pentru stiv;
S iniializeze vrful stivei;
S utilizeze instruciunile de depunere i extragere din stiv, precum i cele de apel
i revenire;
S defineasc i s foloseasc subrutine;
S utilizeze serviciile oferite de programul monitor.
BFFC h
BFFD h
BFFE h
BFFF h
C000 h
183
Initial
SP = BFFC h
BFFC h
BFFC h
BFFC h
BFFD h
BFFD h
BFFE h
BFFE h
BFFF h
BFFF h
BFFF h
C000 h
C000 h
C000 h
BFFD h
Final
SP = BFFE h
BFFE h
a)
Final
SP = BFFC h
SP = BFFE h
Initial
b)
2.1.
184
2.2.
Call
1 ()
2 ()
2
Ccondition
addr
Condition call
+ 3
RET
Return
Rcondition
Conditional return
+ 1
+ 2
=
+ 1
185
NZ
Z
NC
C
Condiia este
adevarat
dac
=0
=1
= 0
= 1
CCC
000
001
010
011
Secvena de instruciuni care este apelat se numete subrutin. Programul principal care apeleaz
subrutina se numete program apelant.
Exemplu:
Program apelant
CALL subrutina
Instructiunea urmatoare
Subrutina
...
RET
Este o succesiune de instruciuni cu unul sau mai multe puncte de intrare etichetate i cu
unul sau mai multe puncte de ieire;
Realizeaz o anumit funcie: operaii I/O, conversii ale formatului datelor, operaii
matematice n virgul fix sau mobil, etc.;
Poate fi apelat ori de cte ori este nevoie;
I se aloc memorie numai o singur dat;
La terminare trebuie s se ntoarc n programul apelant indiferent de locul de unde este
apelat (terminare cu instruciune de revenire);
Poate primi parametri din programul apelant i i poate furniza rezultate acestuia prin
registre, prin stiv sau prin locaii fixe de memorie;
186
Este recomandat ca la scrierea codului unei subrutine, aceasta s fie documentat, preciznduse:
Denumire
0h
1h
DEMO
CONIN
2h
CONSTAT
3h
CONOUT
4h
PSTRING
5h
UPRINT
Parametrii de
intrare
C=1
B = portul de
comunicaie 1 sau 2
C=2
B = portul de
comunicaie 1 sau 2
C=3
B = portul de
comunicaie 1 sau 2
E = caracterul
ASCII
C=4
B = portul de
comunicaie 1 sau 2
DE = pointer la
irul de caractere
C=5
B = portul de
comunicaie 1 sau 2
DE = numrul fr
semn pe 16 bii
Descrierea serviciului
Program demonstrativ.
Citete de la consol un caracter pe portul
specificat de registrul B. Caracterul ASCII returnat
va fi stocat n registrul L.
Inspecteaz portul de comunicaie selectat de B i
returneazp 0FFh dac un caracter este gata i 00h
n caz contrar n registrul L.
Transfer un caracter ASCII pe portul de
comunicaie indicat de registrul B.
187
SPRINT
7h
MULT
8h
DIV
9h
ADCIN
C=6
B = portul de
comunicaie 1 sau 2
DE = numrul fr
semn pe 16 bii
C=7
DE = primul numr
pe 16 bii
HL = al doilea
numr pe 16 bii
C=8
HL = dempritul
pe 16 bii
DE = mpritorul
pe 16 bii
E = canalul selectat
Ah
DIPSWIN
C=A
Bh
PTBIN
C=B
Ch
PTAOUT
Dh
Eh
10h
E = valoarea pe 8
bii
HEXPRINT C = D
B = portul de
comunicaie 1 sau 2
DE = numarul fara
semn pe 16 bii
C=E
DACOUT
E = valoarea pe 8
bii
C = 10
PITCH
DE = valoarea pe
16 bii a diviziunii
11h
LEDOUT
12h
LEDHEX
E = caracterul
ASCII
D = poziia
DE = numrul
13h
LEDDEC
DE = numrul
188
DELAY
15h
TUNE
HL = valoarea
ntrzierii
B = durata tonului
DE = secvena de
tonuri
16h
17h
18h
PRNOUT
OUT422
IN422
E = caracterul
E = caracterul
C = 18
19h
KEYIN
1Ah WRSCL
C = 18
DE
=
adresa
primilor 8 bytes ce
trebuie transferai
ceasului de timp
real.
1Bh RDSCL
C = 19
DE = adresa de
start a zonei n care
sunt stocai cei 8
bytes citii de la
ceasul de timp real.
4. Aplicaii propuse
4.1.
189
4.2.
b) Afieaz un mesaj;
190
c) Cnt un mesaj;
191
Care este diferena ntre fiierul .asm scris i fiierul .s generat? Ce semnificaie au liniile de
cod suplimentare?
4.3.
192
4.5.
5. 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.
193