Sunteți pe pagina 1din 22

Scopul lucrrii : de a familiariza studentul cu posibilitatile procesorului I8080

n cimpul de programare. Studierea instruciunilor logice, de salt, intrare/ieire,


control al MP i lucru cu stiva.

Instruciunile procesorului dat le putei studia

accesnd pagina de baz a procesorului I8080 corespunztor , unde este descris


fiecare instruciune.
Sarcina:

De efectuat un program in Assambler folosind instructiuni aritmetice ,de transfer a


datelor si de salt.
Problema:
09 B
05 C
BCD

DH
H+1H
HB
B1B
Daca B = 0 atunci se finsaza programul, in caz contrar facem un JAMP B 1 B
pina cind se indeplineste conditia.

Aceste instruciuni realizeaz operaii de apelare la subrutin sau ntoarcere


din ea, transferul datelor la porturi de ieire, lucru cu stiva, operatii de salt
condiionat sau necondiionat .
1. CALL - chemarea unei subrutine, care se efectuiaz astfel : coninutul
contorului de comenzi se nscrie n stiv pe adresa la care indic SP se scade din
SP , 2 i se face trecerea la comanda care este indicat n urmtorii 2 octeti.

2. PCHL - saltul la adresa indicat n regitrii H , L


3. RET - rentoarcerea din subrutin trecerea la comanda adresa creia este ndicat
n perechea de octei al stivei i adunarea la SP , 2.
4. RST n - efectuarea resetrii procesorului. i preluarea funcionrii de pe adresa
8 - NNN

5. PUSH RP - nscrierea n stiv a coninutului regitrior pereche RP.


6. POP RP - citirea din stiv a coninutului regitrior pereche RP.
7. XTHL - efectuarea schimbului ntre regitrii H , L i 2 octei de sus a stivei.
8. SPHL - efectuarea transferului coninutului regitrilor H , L n stiv.

9. N port - transferul datelor din portul adresat n acumulator.


10. OUT port - transferul datelor din acumulator n portul adresat.
11. EI - acceptarea ntreruperilor.
12. DI - interzicerea ntreruperilor.

13. HLT - oprirea efecturii operaiilor de ctre procesor.


14. NOP - comanda fr operaii efectuate , se intrebuineaz pentru obinerea
reinerilor .
15. J"cc" - se efectueaz saltul la comanda care este indicat n urmtorii 2 octei .

16. R"cc" - se efectueaz intoarcerea din subrutin , efectunduse comanda RET.


17. C"cc" - se efectueaz chemarea subrutinei , efectunduse comanda CALL.

Ultimele 3 instruciuni snt condiionate i dac condiia nu se ndeplinete


programul se ruleaz mai departe , simbolul "cc" se descifreaz n urmtorul tabel:
Tabelul 6.1. Condiiile salturilor
Mnemocod "cc"
NZ
NC

Condiia
diferent de 0
transfer egal cu 0

Mnemocod "cc"
Z
C

Condiia
egal cu 0
transfer egal cu 1

PO
P

impar
semnul pozitiv

Schema bloc :

START
B = 09

PE
M

paritate
semnul negativ

C = 05
D = B+C
H=D
H=H+1

HB

B=B1

B=
0

STOP
Fig.1 Schema bloc
Programul :

MVI B,09; nscriem in registru B datele 09


MVI C,05; nscriem in registru C datele 05
MOV A,B; Transferam datele din Rg. B n accumulator A
SUB C; Din accumulator scadem valoarea Rg. C
MOV D,A; Copiem datele din acumulatorul A in Rg. D
MOV H,D; Copiem datele din Rg. D in Rg. H

MOV A,H; Copiem datele din Rg. H in acumulator A


INR H; Incrimentam valoarea Rg. H cu 1 unitate
MOV B,H; Copiem datele din Rg. H in Rg. B
MOV A,B; Copiem datele din Rg. B in acumulatorul A
M:DCR B; Decrimentam valoarea Rg. B cu 1 unitate
JNZ M; Cind valoare nu este = 0 se face JAMP adica salt pina cind nu se

indeplineste conditia.
HLT

Fig.2 Rezultatul simularii programului

Concluzie :

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