Sunteți pe pagina 1din 30

SISTEME CU

MICROPROCESOARE
2014
CURS 2 MICROPROCESORUL 8086
.l. dr. ing. Radu PIETRARU

radu.pietraru@aii.pub.ro

MICROPROCESORUL 8086
Descriere general:
Lansat n 1978, aflat n producie pn n anii 90
Primul circuit al familiei x86
Frecven de funcionare ntre 5 MHz i 10 MHz
Procesor pe 16 bii (cuvnt de date)
Magistral extern de adres de 20 de bii, putea
accesa un spaiu de memorie extern de 1M (220)
Magistral intern de adrese pe 16 bii (spaiul de
adrese intern 64K)
Urmat un an mai trziu de 8088 variant cu
magistral extern de date pe 8 bii primul
circuit care a echipat IBM PC.

ARHITECTUR INTERN

REGISTRE INTERNE

REGISTRE DE UZ GENERAL

AX registru acumulator (AH / AL):

Registru implicit, genereaz cel mai scurt cod main;


Utilizat n instruciuni aritmetice, logice i de transfer de date.

BX registru baz n adresare (BH / BL).

CX registru numrtor (CH / CL):


Utilizat n instruciunile LOOP i REP (n conjuncie cu
operaiile pe iruri);
Numr biii (n CL) n cazul instruciunilor de shift-are i
rotaie.

DX registru de date (DH / DL):


Registrele DX:AX se pot concatena pentru operaii pe 32 de bii
pentru anumite operaii de tip MUL i DIV;
Specific porturile n anumite operaii IN i OUT.

REGISTRE DE UZ GENERAL

SI - source index register:

DI - destination index register:

Poate fi utilizat n adresarea indirect a datelor;


Utilizat ca destinaie n anumite instruciuni de procesare a irurilor;
Utilizat ca offset relativ la ES.

BP - base pointer:

Poate fi utilizat n adresarea indirect a datelor;


Utilizat n anumite instruciuni de procesare a irurilor;
Utilizat ca offset relativ la DS.

Utilizat n principal pentru a accesa parametrii transmii prin stiv;


Utilizat ca offset relativ la SS.

SP - stack pointer:

Indic vrful stivei;


Offset relativ la SS;
Totdeauna indic un word (byte la adres par);
O stiv goal echivaleaz cu SP = FFFEh.

REGISTRE DE UZ SPECIAL

IP - the instruction pointer:


Indic urmtoarea instruciune ce urmeaz a fi executat;
Offset relativ la registrul CS registrul IP funcioneaz
mpreun cu registrul de segment CS;

Flags Register arat starea curent a UCP . Este


modificat n mod automat de ctre acesta dup
instruciunile aritmetice permind aflarea de
informaii suplimentare despre rezultat i luarea de
decizii pe baza acestora.

Aceste registre nu pot fi accesate n mod direct.


7

REGISTRU FLAGS

Carry Flag (CF) este 1 la o operaie terminat cu unsigned


overflow.
Parity Flag (PF) 1 cnd rezultatul conine un numr par de bii 1.
Auxiliary Flag (AF) - este 1 la o operaie terminat cu unsigned
overflow pentru low nibble (cei mai puini semnificativi 4 bii).
Zero Flag (ZF) 1 cnd rezultatul este zero.
Sign Flag (SF) 1 cnd rezultatul este negativ. Se bazeaz pe cel
mai semnificativ bit al rezultatului.
Trap Flag (TF) Utilizat pentru on-chip debugging.
Interrupt enable Flag (IF) cnd este 1 UCP ia n considerare
ntreruperile de la dispozitivele externe.
Direction Flag (DF) utilizat de anumite instruciuni pentru a
prelucra fluxuri de date; cnd este 0 prelucrarea se face nainte
cresctor, cnd este 1 prelucrarea se face invers descresctor.
Overflow Flag (OF) 1 la finalizarea unei operaii cu signed
overflow (cnd reprezentarea se face -128 127).
8

REGISTRE DE SEGMENT
CS indic segmentul coninnd programul
curent.
DS indic segmentul unde sunt definite
variabilele.
ES - extra segment register, folosire lsat la
latitudinea programatorului.
SS indic segmentul ce conine stiva.

Este posibil ca unul sau mai multe segmente s se


suprapun. UCP nu asigur protecia memoriei
(suprapunere date / program). Aceste registre pot
fi utilizate i n scop general.

ACCESAREA MEMORIEI - SEGMENTAREA

10

MODURI DE ADRESARE
Registru MOV AX,BX
Imediat MOV CH, 3AH
Direct MOV [1234H], AX
(DSx10H+deplasament)
Indirect prin registru MOV [BX],CL
(DSx10H+BX)
Indexat MOV [BX+SI],BP
(DSx10H+BX+SI)
Relativ la registru MOV CL,[BX+4]

11

CONFIGURAIA PINILOR

12

SEMNIFICAIA PINILOR
RESET pin de RESET, trebuie inut timp de 4
cicluri main pe 1. Adresa de reset este FFFF0h;
la reset este ters bitul IF sunt dezactivate
ntreruperile.
CLK ofer semnalul de baz de ceas pentru
microprocesor.
Vcc 5V
GND mas
READY pin de intrare care permite strilor de
WAIT n funcionarea microprocesorului. Cnd
este 0 microprocesorul intr n stare de ateptare
i nu efectueaz alte operaii.

13

CIRCUITUL SUPORT 8284A

14

SEMNIFICAIA PINILOR
INTR Interrupt request linie de ntrerupere
extern hardware, dac IF=1 UCP intr n ciclul
de tratare a ntreruperii dup finalizarea
instruciunii curente.
/INTA Interrupt acknowledge rspuns la
INTR.
NMI Non-maskable interrupt similar cu
INTR dar nu testeaz IF.

15

SEMNIFICAIA PINILOR
/TEST este testat de instruciunea WAIT. Dac
este 0 instruciunea WAIT funcioneaz ca o
operaie NOP. Dac este 1 instruciunea WAIT
ateapt pn la tranziia n 0. Utilizat n
conjuncie cu coprocesorul matematic.
HOLD pin de intrare care indic solicitarea
unui ciclul DMA. Dac este 1 microprocesorul
oprete execuia programului i trece liniile de
magistral n stare de impedan mrit.
HLDA Hold acknowledge, indic c procesorul
a intrat n starea de HOLD.

16

SEMNIFICAIA PINILOR

AD15-AD0 linii multiplexate de date i adrese (la


8088 liniile A15-A8 conin doar partea high a adresei)
ALE semnal de comand pentru memorarea adresei
/RD, /WR semnale ce indic un cicluri magistral de
citire, scriere. Atta timp ct sunt 0 datele sunt valide
pe magistral.
M//IO difereniaz ciclurile magistral cu referire la
memorie sau la porturile I/O (IO//M la 8088)
DT//R Data transmit/receive indic c
microprocesorul transmite (1) sau recepioneaz (0)
date pe magistral. Utilizat pentru a comanda
buferele de pe magistrala extern de date.
DEN Data bus enable activarea buferelor de pe
magistrala extern de date.

17

CICLURI MAGISTRAL

18

CICLURI MAGISTRAL

19

SEMNIFICAIA PINILOR
A19/S6 A16/S3 Linii de adres / status
multiplexate; S6 este ntotdeauna 0, S5 indic
starea lui IF, S4 i S3 arat segmentul care este
accesat n ciclul magistral curent (00-ES, 01-SS,
10-CS sau nici un segment, 11-DS) i sunt adesea
utilizate prin decodificare pentru a accesa patru
bank-uri de memorie de 1M (rezultnd nc dou
linii de adres A21, A20).
MN//MX Mod minim / maxim pin de intrare /
selecie, pentru modul minim pinul trebuie
conectat la +5V.
/BHE/S7 Bus High Enable indic utilizarea
prii superioare a magistralei de date (D15-D8) n
cadrul unui ciclu magistral. S7 e ntotdeauna 1.

20

DEMULTIPLEXARE
(PARIAL
MOD MINIM)
MAGISTRAL

21

DEMULTIPLEXARE
(COMPLET
MOD MINIM)
MAGISTRAL

22

SEMNIFICAIA PINILOR (MOD MAXIM)

S2, S1, S0 indic funcia ciclului magistral curent,


decodate de controlerul de magistral 8288: 000
interrupt acknowledge, 001 I/O read, 010 I/O
write, 011 halt, 100 opcode fetch, 101 memory
read, 110 memory write, 111 passive
/RQ//GT0, /RQ//GT1 request / grant pin
bidirecional pentru operaiile DMA
/LOCK lock output utilizat pentru blocarea
perifericelor.
QS1, QS0 arat starea cozii interne de instruciuni
pentru coprocesorul matematic (00 idle, 01 first
byte of opcode, 10 empty, 11 subsequent byte of
opcode).

23

CIRCUIT SUPORT 8288 (CONTROLER DE


MAGISTRAL)

24

SEMNIFICAIE PINI DE IEIRE


/MRDC Memory Read Command
/MWTC Memory Write Command
/AMWC Advanced Memory Write Command
/IORC I/O Read Command
/IOWC I/O Write Command
/AIOWC Advanced I/O Write Command
/INTA Interrupt Acknowledge

+ DT//R, DEN, MCE//PDEN, ALE


25

CONFIGURAIE
MAGISTRAL MOD MAXIM

26

MEMORIA ORGANIZARE GENERAL


512 KB

(FFFFFH)

(FFFFEH)

(FFFFDH)

(FFFFCH)

(FFFFBH)

(FFFFAH)

(00005H)

(00004H)

(00003H)

(00002H)

(00001H)

(00000H)

512 KB

27
BHE/

D15 D8

A19 A1

D 7 D0

A0

ADRESAREA UNUI OCTET


512 KB

BHE/

(FFFFFH)

(FFFFEH)

(FFFFDH)

(FFFFCH)

(FFFFBH)

(FFFFAH)

(00005H)

(00004H)

(00003H)

(00002H)

(00001H)

(00000H)

D15 D8

A19 A1

MOV AH, [00004H]

D7 D0

512 KB

A0

AH

AL

(00004H)

Neafectat
AX

28

ADRESAREA UNUI CUVNT ALINIAT


512 KB

BHE/

(FFFFFH)

(FFFFEH)

(FFFFDH)

(FFFFCH)

(FFFFBH)

(FFFFAH)

(00005H)

(00004H)

(00003H)

(00002H)

(00001H)

(00000H)

D15 D8

A19 A1

MOV AX, [00004H]

512 KB

D7 D0

A0

AH

AL

(00005H)

(00004H)
AX

29

ADRESAREA UNUI CUVNT NEALINIAT


512 KB

BHE/

(FFFFFH)

(FFFFEH)

(FFFFDH)

(FFFFCH)

(FFFFBH)

(FFFFAH)

(00005H)

(00004H)

(00003H)

(00002H)

(00001H)

(00000H)

D15 D8

A19 A1

MOV AX, [00003H]

D7 D0

512 KB

A0

AH

AL

(00004H)

(00003H)
AX

30

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