Vous êtes sur la page 1sur 33

3.

PRINCIPIILE DE BAZ ALE UNEI ARHITECTURI TIPICE CISC

3.1. Structura registrelor

- numr de registre i dimensiuni


- registre fizice sau logice
- registre atribut de arhitectur
- func
funciile registrelor

Arhitectura microprocesoarelor Cap.3 1


Corneliu BURILEANU
Microprocesoarele compatibile x86 n modul real

Arhitectura microprocesoarelor Cap.3 2


Corneliu BURILEANU
Arhitectura microprocesoarelor Cap.3 3
Corneliu BURILEANU
3.2. Organizarea memoriei microcalculatorului

- dimensiunea hr
hrii memoriei
- formatul memoriei
- conven
conveniile de stocare n memorie a datelor care ocup mai mult de o loca
locaie
- structurarea logic a memoriei

3.2
3.2.1. Microprocesoarele compatibile x86 n modul real

fizic: AF
- adresa fizic: logic: AL adr32,
adresa logic: adr32, compus
compus din:
din:
adresa segment: AS adr16
efectiv: AE adr16
adresa efectiv:

AFbazei segmentului = AS 0000

AF = AS 0000 + AE
AF = AS 0H + AE

Arhitectura microprocesoarelor Cap.3 4


Corneliu BURILEANU
AS = (CS) | (SS) | (DS) | (ES) [ | (FS) | (GS)]
(GS)]

AE = (SP) | (BP) | (SI) | (DI) | (IP) | (BX) | adr

Arhitectura microprocesoarelor Cap.3 5


Corneliu BURILEANU
AS impune:

- numrul de segmente realizabile simultan;


simultan;

- tipurile de segmente;

- contribuie la stabilirea pozi


poziiei absolute a segmentelor;

- pozi
poziia relativ a segmentelor.
segmentelor.

AE impune:

- dimensiunea segmentelor.

Arhitectura microprocesoarelor Cap.3 6


Corneliu BURILEANU
Destinaia AF implicit AF modificat
program (CS) 0H + (IP) NU
stiva primar (SS) 0H + (SP) NU
stiva alternativ (SS) 0H + (BP) (CS) 0H + (BP)
(DS) 0H + (BP)
(ES) 0H + (BP)
date (DS) 0H + AE (CS) 0H + AE
(SS) 0H + AE
(ES) 0H + AE
n care: AE = (BX) | (SI) | (DI) | adr

Redefinirea utilizrii unui segment:


segment:

- redirec
redirecionare

- suprapunere

Arhitectura microprocesoarelor Cap.3 7


Corneliu BURILEANU
3.2
3.2.2. Microprocesoarele Motorola

AF adr24

AF AE = (PC) | (Ai)i=0..6 | (USP) | (SSP) | (Di)i=0..7 | adr24

Organizare liniar a memoriei Organizare segmentat a memoriei

- timp de acces

- ocuparea hr
hrii memoriei

- modularizare

Arhitectura microprocesoarelor Cap.3 8


Corneliu BURILEANU
3.3. Transferurile de date

Transferurile de date: deplasrile


deplasrile de operanzi i/sau rezultate n interiorul
microprocesorului, ntre microprocesor i celelalte componente ale microcalculatorului,
exterioar.
sau ntre microcalculator i lumea exterioar.

Din punctul de vedere al complexit


complexitii transferurilor de date, se poate face
urmtoarea clasificare a microprocesoarelor de uz general:
general:

Procesoare din categoria A:


(A) (ri)
(ri) (A)
(A) (mem)
mem)
(mem)
mem) (A)
(A) (port)
(port) (A)

Arhitectura microprocesoarelor Cap.3 9


Corneliu BURILEANU
Procesoare din categoria B: au toate caracteristicile celor din categoria A i n plus:

(ri) (rj)
(ri) (mem)
mem)
(ri) (port)

Procesoare din categoria C: au toate caracteristicile celor din categoria B i n plus:

(memi) (memj)

Arhitectura microprocesoarelor Cap.3 10


Corneliu BURILEANU
Procesoare din categoria D: au
au toate caracteristicile celor din categoria
precedent i, n plus:

for i=1 to n do

begin
(memi) (memj)
jj+1
end

Definim din acest moment ca registre atribute de arhitectur ale unui microprocesor
registrele care iau parte la transferuri de date

Arhitectura microprocesoarelor Cap.3 11


Corneliu BURILEANU
3.4. Tehnici de adresare
Tehnic (mod) de adresare: modalitatea de specificare, n formatul unei instruc
instruciuni, a
loca
locaiei (adresei) unui operand, rezultat sau a codului altei instruc
instruciuni.
iuni.

3.4.1. Tehnici de adresare simple

1. Adresare implicit (n registru):

Un registru (pereche
(pereche de registre) este specificat (specificat
(specificat)) ntr-
ntr-unul dintre cmpurile codului
instruc
instruciunii:

cod cod reg. cod reg.


semantic destinaie surs

Arhitectura microprocesoarelor Cap.3 12


Corneliu BURILEANU
2. Adresare imediat
imediat

data8 = ((PC) + 1)
sau
data16 = ((PC) + 2) ((PC) + 1)

Arhitectura microprocesoarelor Cap.3 13


Corneliu BURILEANU
3. Adresare absolut
absolut (extins
(extins, direct
direct)

data = (adr
(adrh adrl)
unde
adrl = ((PC) + 1)
i
adrh = ((PC) +2)

Arhitectura microprocesoarelor Cap.3 14


Corneliu BURILEANU
4. Adresare scurt
scurt

data = (adr
(adrh adrl)

adrl = ((PC) + 1) i adrh = 00H

5. Adresare relativ
relativ

data = ((PC) disp8 | disp16)

Arhitectura microprocesoarelor Cap.3 15


Corneliu BURILEANU
6.a. Adresare indirect
indirect prin registru

data = ((r
((ri) (rj)) | ((r16))

6.b. Adresare indirect


indirect cu memoria

data = (adr2) = ((adr1))

Arhitectura microprocesoarelor Cap.3 16


Corneliu BURILEANU
7.a. Adresare cu preindexare

data = ((IX) +disp8) = ('BAZA' +disp8)


sau
data = ((IX) +disp16) = ('BAZA' +disp16)

Arhitectura microprocesoarelor Cap.3 17


Corneliu BURILEANU
7.b. Adresare cu postindexare

data = ((IX) +(adr


+(adr))
)) = ('BAZA' +(adr
+(adr))
))
sau
data = ((IX) +(adr+1)
+(adr+1)(adr)) = ('BAZA' + (adr+1)
(adr+1)(adr))

Arhitectura microprocesoarelor Cap.3 18


Corneliu BURILEANU
3.4.2. Tehnici de adresare pentru microprocesoarele compatibile x86 n modul real

a) Adresarea memoriei de program:


1. Adresarea relativ
relativ (salturi intra-
intra-segment
segment):
(IP) (IP) + disp8|disp16

2. Adresarea direct
direct (salturi inter-
inter-segment
segment):
(IP)
IP) adr32l
(CS) adr32h

b) Adresarea memoriei de date (operanzi/rezultate):

1. Adresarea imediat
imediat:

AF = [(CS)
[(CS)0H+(IP)+2 ] (CS)
(CS)0H+(IP)+1

Arhitectura microprocesoarelor Cap.3 19


Corneliu BURILEANU
2. Adresarea direct
direct:

AF = (DS)
(DS)0H + adr8|adr16 ,

sau: AF = (DS)
(DS)0H + [((CS)
[((CS)0H+(IP)+2) ]((CS)
]((CS)0H+(IP)+1)

indexat:
3. Adresarea indexat

AF = (DS)
(DS)0H + (SI)|(DI) + disp8|disp16

adic
adic: AF = (DS)
(DS)0H + (SI)|(DI) + [((CS)
[((CS)0H+(IP)+2) ]((CS)
]((CS)0H+(IP)+1)

4. Adresarea indirect
indirect-implicit
implicit:

AF = (DS)
(DS)0H +(SI)|(DI)

Arhitectura microprocesoarelor Cap.3 20


Corneliu BURILEANU
5. Adresarea relativ
relativ la baz
baz:

5.1. Adresare direct


direct relativ
relativ la baz
baz:
AF = (DS)
(DS)0H + (BX) + adr8|adr16

cu: adr8 = ((CS)


((CS)0H+(IP)+1)
sau: adr16 = ((CS)
sau: ((CS)0H+(IP)+2) ((CS)
((CS)0H+(IP)+1)

5.2. Adresare indexat


indexat relativ
relativ la baz
baz:
AF = (DS)
(DS)0H + (BX) + (SI)|(DI) + disp8|disp16
cu: disp8 = ((CS)
((CS)0H+(IP)+1)
sau:
sau: disp16 = ((CS)
((CS)0H+(IP)+2) ((CS)
((CS)0H+(IP)+1)

5.3. Adresare implicit


implicit relativ
relativ la baz
baz:

AF = (DS)
(DS)0H + (BX) + (SI)|(DI)

Arhitectura microprocesoarelor Cap.3 21


Corneliu BURILEANU
6. Adresarea n stiv
stiv:
6.1. Adresare direct
direct n stiv
stiv:
AF = (SS)
(SS)0H + (BP) + adr8|adr16
cu: adr8 = ((CS)
((CS)0H+(IP)+1)
sau:
sau: adr16 = ((CS)
((CS)0H+(IP)+2) ((CS)
((CS)0H+(IP)+1)

6.2. Adresare indexat


indexat n stiv
stiv:
AF = (SS)
(SS)0H + (BP) + (SI)|(DI) + disp8|disp16
cu: disp8 = ((CS)
((CS)0H+(IP)+1)
sau:
sau: disp16 = ((CS)
((CS)0H+(IP)+2) ((CS)
((CS)0H+(IP)+1)

6.3. Adresare implicit


implicit n stiv
stiv:
AF = (SS)
(SS)0H + (BP) + (SI)|(DI)

7. Adresarea n registru:
pe 8 bi
bii: AF = AL | AH | BL | BH | CL | CH | DL | DH
bii: AF = AX | BX | CX | DX | SP | BP | SI | DI
pe 16 bi
bii: AF = EAX | EBX | ECX | EDX | ESP | EBP | ESI | EDI
pe 32 bi

Arhitectura microprocesoarelor Cap.3 22


Corneliu BURILEANU
Octet pentru modul de adresare
adresare (face parte din formatul instruc
instruciunii, pozi
poziia sa
fiind imediat dup codul propriu- Notm cu b7b6b5b4b3b2b1b0 :
propriu-zis). Notm
b7b6: mod
mod
b5b4b3: reg
reg
b2b1b0: r/m
r/m
w un bit din codul propriu-
propriu-zis al instruc
instruciunii
________________________________________________________________________________________
r/m mod: 00 mod: 01 mod: 10 mod: 11

w=0 w=1 reg


________________________________________________________________________________________
000 (BX)+(SI) (BX)+(SI)+disp8 (BX)+(SI)+disp16 AL AX 000
001 (BX)+(DI) (BX)+(DI)+disp8 (BX)+(DI)+disp16 CL CX 001
010 (BP)+(SI) (BP)+(SI)+disp8 (BP)+(SI)+disp16 DL DX 010
011 (BP)+(DI) (BP)+(DI)+disp8 (BP)+(DI)+disp16 BL BX 011
100 (SI) (SI)+disp8 (SI)+disp16 AH SP 100
101 (DI) (DI)+disp8 (DI)+disp16 CH BP 101
110 adr8|adr16 (BP)+adr8 (BP)+adr16 DH SI 110
111 (BX) (BX)+adr8 (BX)+adr16 BH DI 111
___________________________________________________________________________________________

Arhitectura microprocesoarelor Cap.3 23


Corneliu BURILEANU
3.5. Tipuri de instruciuni

3.5.1. Instruc
Instruciuni de transfer de date

(d) (s)

PUSH R1R2;
R1R2; (SP)
SP) (SP) - 1
((SP)) (R2)
(SP) (SP) - 1
((SP)) (R1)

POP R1R2;
R1R2; (R1) ((SP))
(SP) (SP) + 1
(R2) ((SP))
(SP) (SP) + 1
Repeat
((R1,R2)) ((R3,R4))
(R1,R2) (R1,R2) + 1
(R3,R4) (R3,R4) + 1
(R5,R6) (R5,R6) - 1
Until (R5,R6) = 0H

Arhitectura microprocesoarelor Cap.3 24


Corneliu BURILEANU
3.5.2. Instruc
Instruciuni de prelucrri de date

opera
operaii monadice:
monadice:

- cu acumulator: (d) (d)

- fr acumulator:
acumulator: (d) (s)

opera diadice:
operaii diadice:

- cu acumulator:
acumulator: (d) (d) (s)

- fr acumulator:
acumulator: (d) (s1) (s2)

Arhitectura microprocesoarelor Cap.3 25


Corneliu BURILEANU
(R1,R2) (R1,R2) + (R3,R4) [ + (C)]

(A) - (s) if (A) = (s) then (Z) 1


if (A) > (s) then (C) 0
else (C) 1

Repeat
(A) - ((R3,R4))
(R3,R4) (R3,R4) + 1
(R5,R6) (R5,R6) - 1
Until (R5,R6) = 0H (A) = ((R3,R4))

Arhitectura microprocesoarelor Cap.3 26


Corneliu BURILEANU
Arhitectura microprocesoarelor Cap.3 27
Corneliu BURILEANU
3.5.3. Instruc
Instruciuni de control al programului
Teste:
A - testeaz un fanion
B - testeaz o combina
combinaie logic de fanioane
C - testeaz un bit oarecare dintr-
dintr-un operand oarecare
D - testeaz linii de intrare serie
serie

Salturi:
- dup cum urmeaz sau nu unor teste:
teste:
- necondi
necondiionate
- condi
condiionate
- dup modul de adresare

- dup cum memoreaz sau nu valoarea curent a numrtorului de program


program::
- salturi propriu-
propriu-zise
- apelurile de subprograme
- dup complexitatea salturilor:
salturilor:
A salturi cu dou posibilit
posibiliti
B salturi cu trei posibilit
posibiliti
C cicluri
Arhitectura microprocesoarelor Cap.3 28
Corneliu BURILEANU
Moduri de adresare pentru salturile propriu-
propriu-zise:
zise:

adresarea absolut:
absolut:
(PC) adr ,
n care adr face parte din formatul instruc
instruciunii

adresarea relativ:
relativ:
(PC) (PC)
PC) + disp8 | disp16 ,
n care disp8 sau disp16 fac parte din formatul instruc
instruciunii

adresarea indirect prin registru:


registru:
(PC) ((r
((ri, rj) + 1) ((r
((ri, rj))

adresarea scurt (n pagina 0


0):
(PC)l adr8
(PC)h 0H

Arhitectura microprocesoarelor Cap.3 29


Corneliu BURILEANU
Moduri de adresare pentru apeluri de subprograme

CALL adr ; (SP) (SP)


SP) - 1 (SP) (SP)
SP) - 2
((SP)) (PC)h ((SP) + 1) (PC)h
(SP) (SP)
SP) - 1 ((SP)) (PC)l
((SP)) (PC)l (PC) adr
(PC) adr

RET ; (PC)l ((SP)) (PC)l ((SP))


(SP) (SP)
SP) + 1 (PC)h ((SP) + 1)
(PC)h ((SP)) (SP) (SP)
SP) + 2
(SP) (SP)
SP) + 1

Arhitectura microprocesoarelor Cap.3 30


Corneliu BURILEANU
Clasificare dup complexitatea salturilor

if condi
condiie = true then (PC) adr

if (ri) | (mem
(memi) > (r (rj) | (mem
(memj) then
(PC) adr1
else
if (ri) | (mem
(memi) = (r(rj) | (mem
(memj) then
(PC) adr2
else
(PC) adr3

(ri) (ri) 1
if (ri) 0H then (PC) (PC)
PC) + disp8 | disp16

Arhitectura microprocesoarelor Cap.3 31


Corneliu BURILEANU
3.5.4. Instruc
Instruciuni de intrare/ie
intrare/ieire

IN d, port; (d) (port)


OUT port, s ; (port) (s)

- d sau s - acumulatorul implicit sau dedicat


- harta porturilor este mult mai mic dect harta memoriei
- moduri de adresare foarte restrictive pentru porturi:
direct
indirect prin registru

Acces rapid la porturi

Arhitectura microprocesoarelor Cap.3 32


Corneliu BURILEANU
3.5.5. Instruc
Instruciuni de control al
al microcalculatorului

Instruc
Instruciuni care sincronizeaz microcalculatorul cu anumite stri speciale
speciale ale
microprocesorului:
- stare de a
ateptare;
- func
funcionare pas cu pas;
- acces direct la memorie;
- partajarea resurselor sistemului cu alte procesoare.

Accesul la anumite fanioane (setare, resetare), n special fanioanele care semnaleaz


ac
aciuni specifice (ca de pild validarea cererilor de ntrerupere).

Arhitectura microprocesoarelor Cap.3 33


Corneliu BURILEANU