Você está na página 1de 20

Arquitetura de Processadores Digitais / Ricardo Zelenovsky

8086/88-1
O PC e a Arquitetura x86
Sumrio:
1) Pinagem.
2) Barramentos.
3) Registradores.
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-2
AH AL
8086/8088 Dois mdulos: EU e BIU
BH BL
CH CL
DH DL
SP
BP
SI
DI
ALU
Reg Instr
AX
BX
CX
DX
CS
DS
SS
ES
0000
0000
0000
0000
IP
6
5
4
3
2
1
EU BIU
BUS 8086
EU =
Execution
Unit
BIU =
Bus
Interface
Unit
Fila
de
6
Bytes
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-3
AH AL
BH BL
CH CL
DH DL
SP
BP
SI
DI
AX (Acc) Acumulador primrio
BX Acc e Registrador Base
CX Acc e Contador
DX Acc e Enderaador de I/O
CS
DS
SS
ES
IP
Flags
16 bits
A
H L
B C
D E
SP
PC
Flags
16 bits
8
0
8
5
Stack Pointer
Base Pointer
Source Index
Destination Index
Instruction Pointer
Code Segment
Data Segment
Stack Segment
Extra Segment
Flags (Estado)
Pilha
Indexao
Segmentao
8
0
8
6
Registradores 8085/8086
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-4
C - P - A - Z S T I D O - - - -
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Registrador de Flags
C = Carry
P = Paridade
A = Carry Auxiliar
Z = Zero
S = Sinal
T = Trap
I = Hab da Interrupo
D = Direo
O = Overflow
- = Reservado
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-5
Segmentao de Memria
Code
Data
Stack
Extra
64 KB
CS
DS = 592CH
SS
ES
1
M
B
00000H
FFFFFH
MOV AL,[9BD4H]
5 9 2 C 0
0 9 B D 4
6 2 E 9 4
+
Segmento
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-6
Segmentao de Memria
Data
DS = 6000H
MOV AL,[200H]
6 0 0 0 0
0 0 2 0 0
6 0 2 0 0
+
Offset = 200H
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-7
Segmentao de Memria no 8086
Code
CS = FB4AH
1
M
B
00000H
FFFFFH IP = A900H
1 1
F B 4 A 0
0 A 9 0 0
0 5 D A 0
+
20 bits
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-8
Segmentao de Memria no 80386
Code
CS = FB4AH
1
M
B
00000H
FFFFFH
IP = A900H
1 1
F B 4 A 0
0 A 9 0 0
1 0 5 D A 0
+
32 bits
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-9
Segmentao de Memria no 80386
Code
(HMA)
CS = FFFFH
1
M
B
00000H
FFFFFH
F F F F 0
0 0 0 0
0 0 0 F F F F 0
+
32 bits
HMA = High Memory Area
(DOS=HIGH)
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-10
Modos de Endereamento de Dados
a) Imediato
IP + CS = m
m
m+1
m+2
m+3
05
33
22
ADD AX, 2233
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-11
Modos de Endereamento de Dados
b) Endereamento Direto
IP + CS = m
m
m+1
m+2
m+3
03
06
zz
yy
ADD AX, [yyzz]
y y z z
D S 0
a b c d e
+
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-12
Modos de Endereamento de Dados
c) Endereamento Direto, Indexado
IP + CS = m
m
m+1
m+2
m+3
03
84
zz
yy
ADD AX, [SI] + yyzz
y y z z
D S 0
0 S I
a b c d e
+
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-13
Modos de Endereamento de Dados
d) Endereamento Implicado
IP + CS = m
m
m+1
m+2
m+3
03
04
ADD AX, [SI]
D S 0
0 S I
a b c d e
+
Degenerao do
anterior
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-14
Modos de Endereamento de Dados
e.1) Endereamento Direto, Relativo Base
IP + CS = m
m
m+1
m+2
m+3
03
87
zz
yy
ADD AX, [BX + yyzz]
y y z z
D S 0
0 B X
a b c d e
+
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-15
Modos de Endereamento de Dados
e.2) End. Direto, Indexado, Relativo Base
IP + CS = m
m
m+1
m+2
m+3
03
80
zz
yy
ADD AX, [BX + rrss] [SI + ttuu]
y y z z
D S 0
0 B X
0 S I
a b c d e
y y z z = r r s s + t t u u
+
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-16
Modos de Endereamento de Dados
e.3) Endereamento Implicado, Relativo Base
IP + CS = m
m
m+1
m+2
m+3
03
00
ADD AX, [BX] [SI]
D S 0
0 B X
0 S I
a b c d e
+
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-17
Modos de Endereamento de Dados
f.1) Endereamento Direto, Relativo ( Pilha)
IP + CS = m
m
m+1
m+2
m+3
03
86
zz
yy
ADD AX, [BP + yyzz]
y y z z
S S 0
0 B P
a b c d e
+
BP no lugar de BX.
Vlido p/ os anteriores.
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-18
Paginao de Memria
Problemas:
No se conhece priori quanta memria um
programa vai usar (alocao dinmica).
Como compartilhar a memria principal entre os
programas?
Como evitar fragmentao?
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-19
Problema da Alocao de Memria
RAM
1) P1 criado com 2 KB (P1a)
2) P2 criado com 4 KB (P2a)
P1a = 2K
3) P1 pede 2 KB (P1b) descont.
4) P3 criado com 4 KB (P3a)
5) P2 pede 2 KB (P2b) descont.
6) P4 criado com 6 KB (P4a)
7) P2 libera 2 KB (P2b)
8) P1 libera 2 KB (P1b)
P2a = 4K
P1b = 2K
P3a = 4K
P2b = 2K
P4a = 6K
9) P5 criado com 4 KB (P5a e b) ?
Descontinuidade !
Fragmentao !
Arquitetura de Processadores Digitais / Ricardo Zelenovsky
8086/88-20
Paginao (P. Ex de 4 KB)
R
A
M
1) P1 criado 4 KB (a)
2) P2 criado 8 KB (b,c)
3) P1 pede 2 KB (d)
4) P3 criado 4 KB (e)
5) P2 pede 2 KB (f)
6) P4 criado 6 KB (g,h)
7) P2 libera 2 KB (f)
8) P1 libera 2 KB (d)
9) P5 criado 4 KB
P1
P2
P3
P4
a
a
b
c
b
c
d
d
e
e
f
f
g
h
g
h
Traduo
de
Pginas End=0
End=0
End=0
End=0
Swap
Memo
Virtual