Documente Academic
Documente Profesional
Documente Cultură
Up Lucrarea 01 PDF
Up Lucrarea 01 PDF
Lucrarea 1
P.Lucrare.01.A
Arhitectura procesorului Intel 8086
Coninut
1. Introducere ......................................................................................................................2
1.1. Scop .........................................................................................................................2
2. Arhitectura procesorului Intel 8086...............................................................................2
Unitile de procesare ale CPU : ..........................................................................................3
2.1. Registrele microprocesorul 8086 ..............................................................................4
2.1.1. Registrele de uz general...................................................................................5
2.1.2. Registrele de segment......................................................................................6
2.1.3. Registrul pointerului de instrunciuni.................................................................6
2.1.4. Registrul indicatorilor de conditie (de stare i control) ......................................6
2.2. Organizarea memoriei ..............................................................................................7
2.3. Generarea adresei fizice ..........................................................................................8
3. Aplicaii ..........................................................................................................................11
Lista de figuri
Figura 1. 1 8086 schema bloc .............................................................................................3
Figura 1. 2 Registrele de uz general ........................................................................................5
Figura 1. 3 Registrele segment ................................................................................................6
Figura 1. 4 Indicatorii de condiii...............................................................................................6
Figura 1. 5 Organizarea memoriei Memorarea variabilelor i instrunciunilor .....................8
Figura 1. 6 Memorarea variabilelor de tip word........................................................................8
Figura 1. 7 Memorarea variabilelor de tip pointer.....................................................................8
Figura 1. 8 Adresa fizica i adrese logice.................................................................................9
Figura 1. 9 Generarea adresei fizice ........................................................................................9
Figura 1. 10 Exemplul 1 de generare a adresei fizice ............................................................10
1. Introducere
1.1. Scop
Aceast anex prezint:
Arhitectura procesorului 8086
La baza proiectrii i realizrii familiei lui 8086 au stat patru concepte arhitecturale noi la
momentul respectiv :
1. segmentarea memoriei, prin care se permite programarea modular, deschizndu-
se astfel calea implementarii tehnicilor de protecie i partajare a memoriei.
2. poibilitatea implementrii cu usurin a unor moduri de adresare caracteristice
limbajelor de programare de nivel nalt (bazat, indexat, pentru structuri de date).
3. cresterea puterii de calcul pe baza unui set de regitri optimizat pentru a realiza
funcii generale i specializate de procesare a datelor, precum i introducerea
unitilor aritmetice de calcul de tipul coprocesoarelor aritmetice, echipamente care
se conecteaz pe magistralele microprocesorului n paralel cu acesta, crescnd mult
viteza de lucru a istemului n unele aplicaii
L.1 - 2/11
Arhitectura procesorului Intel 8086
.
Figura 1. 1 8086 schema bloc
L.1 - 3/11
Arhitectura procesorului Intel 8086
de control, unitatea de execuie este complet izolat de "lumea exterioar". Asa cum se
evideniaz n Figura 1. 1, EU preia instruciunea urmtoare de executat dintr-o coad de
ateptare alimentat continuu de unitatea de interfa cu magistrala.
n situatia n care nu exista nici o instrunciune de preluat pentru a fi executat, unitatea de
execuie asteapt pn cnd coad este realimentat de ctre BIU. Dac n cursul execuiei
instrunciunii este necesar accesul la o locaie de memorie sau la un echipament periferic,
EU solicit unitii de interfaa cu magistrala s transfere data, executnd ciclul de magistral
corespunzator (citire/scriere la memorie sau port). Totodat, dei magistrala EU are doar 16
bii, se poate accesa n exterior ntregul spaiu de un megaoctet de memorie prin intermediul
BIU care asigur relocatarea adresei naintea fiecarui transfer.
BIU Unitatea de interfaa cu magistrala execut toate operaiile externe de magistral ce
sunt necesare pe parcursul extragerii i execuiei unei instruciuni. Ea se compune din
regitrii de segment, un registru de tip contor de program denumit pointer de instrunciuni
(instruction pointer), regitri de comunicatie intern, o schem logic pentru generarea
adresei pe cele 20 de linii de adresa ale microprocesorului 8086 i pentru controlul
magistralei multiplexate precum i o coad de instrunciuni (queue). Aceasta este realizat
cu o memorie RAM de 6 octei i contine instrunciuni care sunt extrase n avans de BIU i
urmeaz s fie preluate de EU pentru decodificare i execuie.
Cele dou uniti de procesare ale CPU opereaz independent una de alta n sensul c,
ori de cite ori doi sau mai muli octei din coad sunt liberi, iar EU nu solicit BIU la
efectuarea vreunui ciclu de magistral, unitatea de interfa cu magistrala execut n avans
cicluri de extragere de instrunciuni pentru a realimenta locaiile libere din coada de
instrunciuni. Acest mod de lucru permite BIU s furnizeze EU instrunciuni extrase anterior
fr a monopoliza magistrala sistemului cci, n mod normal, n majoritatea situaiilor coad
de instrunciuni contine cel putin un octet ce poate fi preluat de EU pentru decodificare i
execuie. n plus, cum sistemele cu microprocesor 8086 au uzual magistrala de date de 16
biti, ntr-un singur ciclu de extragere se alimenteaza coad cu doi octeti, cu exceptia cazurilor
cnd adresa de la care se citete instrunciunea urmtoare este impar, asa cum se va arta
ulterior.
Instruciunile extrase n avans de BIU sunt cele care urmeaz n mod logic ntr-o procesare
serial a programului, ele aflndu-se n memorie n locaii adiacente i la adrese superioare
adresei instrunciunii care se execut la un moment dat. n cazul n care EU executa o
instrunciune care transfer controlul programului ctre o alt locaie de memorie, BIU
reseteaza coada, extrage instrunciunea de la noua adres, transfernd-o imediat unitii de
execuie, apoi ncepe realimentarea cozii de la noua locaie. De asemenea, BIU suspend
operatiile de extragere de instrunciuni (cu excepia celei n curs de desfurare) ori de cte
ori unitatea de execuie solicit efectuarea pe magistral a unui transfer cu memoria sau cu
un port de intrare/ieire.
L.1 - 4/11
Arhitectura procesorului Intel 8086
Registrele generale (AX, BX, CX, DX) - sunt utilizate n instruciunile aritmetice i logice.
Majoritatea instruciunilor aritmetice utilizeaz n acelai mod toate registrele. Exist ns
unele instruciuni aritmetice pentru care anumite registre generale au semnificaii speciale:
AX - registru acumulator, BX - registru baz, CX - registru contor, DX - registru date - utilizat
implicit n operaiile de nmulire i mprire; i de asemenea poate conine adresa unui port.
Toate cele patru registre generale pot fi utilizate i ca perechi de registre pe 8 bii.
Registrele indicatoare de adres (SP, BP) - registrul SP are semnificaia de adres
curent a vrfului stivei, iar registrul BP este utilizat pentru a permite accesul la informaia
coninut n stiv.
Registrele index (SI, DI) - sunt utilizate n general pentru adresarea indexat, coninnd
adrese relative n segmentul de date curent. Segmentul implicit utilizat n adresare poate s
fie modificat prin utilizarea n instruciuni a unor prefixe speciale.
Att registrele de date ct i registrele pointer i index pot fi folosite n majoritatea operaiilor
aritmetice i logice, oricare dintre ele putnd juca rolul registrului "acumulator" existent la
generaiile precedente de microprocesoare. Pentru a permite utilizarea unui set compact, dar
puternic de instruciuni, anumite registre sunt folosite n mod implicit de unele instruciuni,
aa cum arat Tabel 1.
REGISTRU OPERATII
AX nmuliri, mpriri i I/E pe cuvnt
AL nmuliri, mpriri i I/E pe octet, translatri, aritmetic zecimal
AH nmuliri i mpriri pe octet
L.1 - 5/11
Arhitectura procesorului Intel 8086
BX Translatri
CX Operaii cu iruri de caractere, contor pentru operaraii repetate
CL Deplasri i rotiri cu mai mult de o poziie
DX nmuliri i mpriri pe cuvnt, I/E cu adresare indirect
SP Operaii cu stiva
SI, DI Operaii cu iruri de caractere
Indicatorii de condiii sunt utilizai pentru a memora informaii referitoare la rezultatul unor
operaii aritmetice sau logice (AF, CF, OF, PF, SF, ZF) i pentru memorarea unor informaii
de control pentru microprocesor (DF, IF, TF).
L.1 - 6/11
Arhitectura procesorului Intel 8086
EU poziioneaz cei 6 indicatori de stare pentru a reflecta anumite stri ale unei operaii
aritmetice sau logice. Un anumit set de instruciuni permit modificarea execuiei unui program
n funcie de starea acestor indicatori - cum ar fi instruciunile de salt condiionat.
L.1 - 7/11
Arhitectura procesorului Intel 8086
Conform conventiilor INTEL, o variabila de tip word este ntotdeauna memorat cu octetul
cel mai semnificativ n locaia de memorie cu adres superioar.
Aceasta regul se extinde i la memorarea variabilelor de tip pointer (variabile pe un
cuvnt dublu foloite pentru a adresa date n afara segmentului de date sau de program ce
este adresabil n mod curent la momentul respectiv): cuvntul ce conine ofsetul se
memoreaz la cele dou adrese inferioare, cuvntul ce conine adresa de baz a
segmentului se memoreaz la cele dou adrese superioare la care este stocat pointerul, iar
n cadrul fiecarui cuvnt, octetul cel mai semnificativ este la rndul lui memorat la adresa
superioar.
Se poate imagina ca fiecare locaie de memorie are doua feluri de adresa: fizic i logic.
Adresa fizica este acea valoare pe 20 de bii care identific n mod unic fiecare octet din
spaiul de memorie de 1Mo. Ea este cuprins ntre 00000H i FFFFFH i exist pe liniile
magistralei multiplexate la nceputul fiecrui ciclu de scriere sau citire n/din memorie.
L.1 - 8/11
Arhitectura procesorului Intel 8086
Programatorul opereaz ns mai mult cu adresa logic dect cea fizic, ceea ce permite
scrierea unui program fr a cunoate dinainte locul unde codul acestuia va fi ncarcat n
memorie i faciliteaz controlul dinamic al resurselor de memorie. O adres logic const
dintr-o valoare de baz a segmentului i o valoare de offset (deplasamnt), ambele fiind
mrimi fr semn reprezentate pe 16 bii. Pentru orice locaie de memorie, valoarea de baz
a segmentului indic primul octet coninut n segment (nceputul segmentului), iar valoarea
de offset reprezinta distana n octei de la acest nceput pn la locaia respectiv. Primul
octet (cel mai de jos) aparinnd unui segment are deci offset-ul egal cu zero. Avnd n
vedere conceptul de segment logic, rezult c o locaie fizic de memorie poate avea o
mulime de adrese logice. Acest fapt este ilustrat n Figura 1. 8 n care locaia de memorie
fizic 2C3H este coninut n dou segmente logice suprapuse parial, unul ncepnd la
2B0H, iar altul la 2C0H.
L.1 - 9/11
Arhitectura procesorului Intel 8086
Instruciunile sunt extrase din segmentul de cod, iar offset-ul este dat de registrul IP.
Operaiile cu stiva sunt executate n segmentul de stiv curent, iar offsetul este dat de
registrul SP, .a.m.d.
Offsetul unei variabile din memorie este calculat de unitatea de execuie n funcie de modul
de adresare specificat n instrunciune; rezultatul se numete adresa efectiv (effective
address EA).
In majoritatea cazurilor, utilizarea segmentelor implicite pentru accesul datelor n memorie
este convenabil pentru programator. Este posibil ns i accesul unei variabile n oricare
dintre segmentele adresabile n mod curent (cu excepia instruciunilor ce manipuleaz iruri
de caractere unde operandul destinaie este obligatoriu s se gaseasc in segmentul de
date suplimentar). Pentru a obine acest lucru, instruciunea trebuie precedat de un prefix
segment override prefix care indic BIU ce registru de segment s utilizeze pentru a
accesa variabila respectiv.
Tabel 2 Sursele de adresa logica
L.1 - 10/11
Arhitectura procesorului Intel 8086
3. Aplicaii
1. Cte magistrale are microprocesorul 8086 i cum sunt utilizate ?
2. Explicai care este diferena ntre EU i BIU, i care este rolul fiecreia.
3. Indicai rolul indicatorilor de condiie.
4. Care este rolul unitii aritmetico-logice ALU?
5. Care este rolul registrului IP?
6. Dac registrul de segment CS conine valoarea 2200H, iar registrul IP conine
valoarea 4200H, indicai care este adresa din memorie de la care va fi extras
urmtoarea instruciune.
7. n locaia de memorie 12234H este stocat variabila de tip cuvnt 2C46H. Precizai
cel puin nu segment n care s fie coninut. Indicai cum este memorat variabila.
L.1 - 11/11