Sunteți pe pagina 1din 36

Scopul lucrarii: de a familiariza studentul cu posibilitatile procesorului I8080

n cimpul de programare. Studierea instruciunilor aritmetice i logice.


Sarcina lucrarii:
1. De analizat instruciunle aritmetice i logice a MP I8080 n cadrul paragrafului
dat.

2. De elaborat un program folosind instructiunile aritmetice si logice.

Sarcina pentru program:


02B
04D
B and D
B xor D

B+DC
D-BE
E+1E
EH
H-1L
L+05E
De inscris datele: 02 in Rg B i 04 in Rg D; de efectuat operatiile logice and
si xor intre Rg B si D; de sumat datele din Rg B si D si rezultatul de inscris in Rg

C; de efectuat diferenta dintre datele din Rg D si B, rezultatul de inscris in Rg E;


de incrementat Rg E cu o unitate; de inscris datele din Rg E in H; de decrementat
Rg H cu o unitate, rezultatul de inscris in Rg L; de adunat 05 la datele din Rg L,
rezultatul de inscris in Rg E.

Notiuni teoretice:
Instruciuni aritmetice
Acest grup de instruciuni realizeaz operaii aritmetice cu cuvintele din registre
sau memorie fr alte specificaii, toate instruciunile acestui grup afecteaz

fanioanele de condiie respective. Toate operaiile de scdere sunt realizate prin


adunare n cod binar complementar fa de 2.
1. ADD R - adunarea la acumulator a coninutului unui registru
(A) <- (A) +(B)
2. ADD M - adunarea la acumulator a coninutului unei locaii de memorie

3. ADI DATA 8 - adunarea imediat la acumulator


4. ADC R - adunarea la acumulator a coninutului unui registru i a transportului
5. ADC M - adunarea la acumulator a coninutului unei locaii de memorie i a
transportului
(A)<-(A) + ((H) (L))+CF

6. ACI DATA 8 - adunare imediat la acumulator a unui octet i a transferului


(A)<-(A)+DATA8 +CF
7. SUB R - scdarea din acumulator a coninutului unui registru
8. SUB M - scderea din acumulator a coninutului unei locaii de memorie

9. SUI DATA8 - scderea din acumulator a coninutului octetului 2 (scdere


imediat)
10. SBB R - scderea din acumulator a coninutului unui registru i a mprumutului
(A)<-(A)(D)(CY)

11. SBB M - scderea din acumulator a coninutului unei locaii de memorie i a


mprumutului
12. SBI DATA8 - scderea imediat a datei i a mprumutului din acumulator
13. INR R - incrementarea coninutului unui registru
14. INR M - incrementarea coninutului unei locaii de memorie

15. DCR R - decrementarea coninutului unui registru


16. DCR M - decremementarea coninutului unei locaii de memorie
17. INX RP - incrementarea unui registru pereche
18. DCX RP - decrementarea unui registru pereche

RP:{B, D, H, SP}

19. DAD RP - adunarea la registru pereche H a coninutului unui alt registru


pereche RP:{B, D, H, SP}
20. DAA - ajustare zecimal a acumulatorului.

Grupul instruciunilor logice

Acest grup de instruciuni realizeaz operaii logice cu cuvintele din registre sau
memorie, unele instruciuni a acestui grup afecteaz fanioanele de condiie
respective.
1. ANA R - nmulirea logic a acumulatorului cu un registru
(A)<-(R) AND (A)

2. ANA M - nmulirea logic a acumulatorului cu o celul din memorie


3. ANI DATA8 - nmulirea logic a acumulatorului cu data imediat
4. XRA R - efectuarea operaiei XOR cu un registru i stocarea rezultatului n
acumulator
(A)<-(R) XOR (A)

5. XRA M - efectuarea operaiei XOR cu o celul de memorie i stocarea


rezultatului n acumulator
6. XRA DATA8 - efectuarea operaiei XOR cu data imediat i stocarea
rezultatului n acumulator

7. ORA R - efectuarea operaiei OR (sau) cu un registru i stocarea rezultatului n


acumulator
(A)<-(R) OR (A)
8. ORA M - efectuarea operaiei OR cu o celul de memorie i stocarea
rezultatului n acumulator

9. ORA DATA8 - efectuarea operaiei OR cu data imediat i stocarea rezultatului


n acumulator
10. CMP R - compararea unui registru cu acumulatorul. Aici se afecteaz
fanianele S, Z, P, C, AC.
11. CMP M - compararea unei celule de memorie cu acumulatorul.

12. CMP DATA8 - compararea datei imediate cu acumulatorul.


13. RRC - se efectueaz rotirea acumulatorului n drepta, cu nscrierea bitului
superior n bitul de transfer.
14. RLC - se efectueaz rotirea acumulatorului n stnga, cu nscrierea bitului
inferior n bitul de transfer.

15. RAR - se efectueaz rotirea acumulatorului n drepta, incluznd i bitul


transferului.
16. RAL - se efectueaz rotirea acumulatorului n stnga, incluznd i bitul
transferului.
17. CMA - invertarea coninutului acumulatorului.

18. CMC - invertarea coninutului registrului C.


19. STC - setarea n "1" a coninutului registrului C.
START

C=06

B=02

B and C
L=H+04

B=L+1
C=B
L OR H

H XOR E
0810=E
L=0812

STOP

Fig.1 Schema-bloc a programului dat


Programul:
MVI C,06 - inscriem in registru C datele 06

06C

MVI B,02 - inscriem in registru B datele 02

02B

MOV A,B - copiem datele din registru B in acumulatorul A


ANA C - efectuam operatia and cu datele din acumulatorul A si registru C
(B AND C)
MOV A,C - copiem datele din registru C in acumulatorul A

ADI 04 - adaugam valoarea 04 la acumulatorul A


MOV L,A - copiem datele din acumulatorul A in registru L
INR L - incrimentam valoarea registrului L cu o unitate
MOV B,L - copiem datele din registru L in registru B

MOV C,B - copiem datele din registru B in registru C


MOV A,L - copiem datele din registru L in acumulatorul A
ORA H - efectuam operatia OR dintre datele din acumulatorul A si registru H
MOV A,H - copiem datele din registru H in acumulatorul A
XRA E - efectuam operatia XOR dintre datele din acumulator si registru E

MOV A,E - copiem datele din registru E in acumulatorul A


STA 0810 - inscriem datele din acumulatorul A in adresa 0810
LDA 0812 - inscriem datele din adresa 0812 in acumulatorul A
MOV L,A - copiem datele din acumulatorul A in registru L

HLT - finisarea programului

Fig.2 Rezultatul compilarii programului

Fig.3 Rezultatul compilarii programului


Concluzii

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