Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MICROPROCESADORES
Universidad Nacional Federico
Villarreal
Ing. Javier Barriga Hoyle
Unidad 1
Introduccin al
microprocesador
Microprocesadores
Contenido
1.
2.
3.
4.
5.
6.
7.
Introduccin.
Definicin y partes del microprocesador (P).
Arquitectura interna del P 8086/8088.
Arquitectura del sistema P.
La memoria y el P.
Modos de direccionamiento.
Direccionamiento de la Pila.
1. Introduccin al Procesador
Microprocesadores
1. Introduccin al Procesador
Tubo
de
vaco
uP
8088
Transistor
Circuito Integrado
1. Introduccin al Procesador
La unin complejidad-programabilidad se
ha extendido a dos famosos derivados del
Microprocesador: Microcontrolador (C) y
Procesador Digital de Seal (DSP).
DSP
Microcontrolador
Procesador de voz
Microprocesadores
1. Introduccin al Procesador
FPGA
2.1 Qu es un Procesador?
Totalmente programable.
Opera a grandes velocidades ( 3 GHz).
Parte principal de las microcomputadoras.
Microprocesadores
2.1 Qu es un Procesador?
2.1 Qu es un Procesador?
Otras aplicaciones:
Controladores de buses industriales VME.
Microprocesadores
2.1 Qu es un Procesador?
Robtica y control numrico.
2.1 Qu es un Procesador?
Biosensores para el control de procesos
biolgicos.
Microprocesadores
Unidad
de
Registros
Unidad
de
Control
Unidad de Registro:
Almacenan temporalmente los datos cuando
se ejecuta un programa.
Unidad de Control:
Genera las seales de temporizacin y
control para la CPU y los elementos de E/S.
Microprocesadores
Bus de datos
Bus de control
Figura 2. Buses de un Microprocesador.
Microprocesadores
Qu es un Bus?
Son canales o hilos fsicos por donde fluye la
informacin digital (0, 1) en forma de seales
elctricas.
Bus de datos:
Bus bidireccional, sirve para enviar o recibir
datos desde la memoria o dispositivo de E/S.
Su tamao determina la arquitectura del
microprocesador.
Bus de direccin:
Bus unidireccional.
Slo el P puede seleccionar alguna posicin
de memoria o dispositivo de E/S.
Su nmero de bits determina la capacidad de
direccionamiento. Por ejemplo, Si n es el
nmero de bits:
n = 10; 2n = 210 = 1024 = 1KB
n = 20; 2n = 220 = 1048576 = 1MB
n = 30; 2n = 230 = 1048576 = 1GB
Microprocesadores
P 8086:
Registros de 16 bits.
Bus de datos: 16 bits.
Bus de direcciones: 20
bits (220 = 1M).
Memoria total: 1 MB
Frecuencia: 5, 8 y 10
MHz.
Nmero transistores:
29000 (3 micrones).
Fabricacin: 8/6/78.
16 bits
B. Datos
uProcesador
8086
(16 bits)
20 bits
B. Direccin
B. Control
P 8088:
Registros de 16 bits.
Bus de datos: 8 bits.
Bus de direcciones de
20 bits (220 = 1M).
Memoria total: 1 MB.
Frecuencia: 5 y 8 MHz
Nmero transistores:
29000 (3 micrones).
Fabricacin: 1/6/79.
8 bits
B. Datos
uProcesador
8088
(16 bits)
20 bits
B. Direccin
B. Control
10
Microprocesadores
Registros generales
AH
AL
BH
BL
CH
CL
DH
DL
SP
BP
SI
DI
Control de programa
CS
DS
SS
ES
CU: Unidad de
control
1
2
3
4
Registro de
banderas
Cola de
instrucciones
ALU: Unidad
aritmtico - lgico
IP: Puntero de
instrucciones
Unidad
de
control
del bus
Bus
Figura 3. Arquitectura
interna del uP Intel
8086/8088.
11
Microprocesadores
BIU (cont.):
Enva las instrucciones y datos a la EU.
Es capaz de adelantarse y buscar con
anticipacin instrucciones, de manera que
siempre haya una cola de instrucciones listas
para ser ejecutadas.
Registro AX (acumulador):
Se usa en instrucciones de multiplicacin,
divisin y en ciertas instrucciones de carcter
especfico como entrada, salida y traduccin.
Ejemplo1:
MOV BX, 3450h ;BX = 3450h
MOV AX, 100h ;AX = 100h
MUL BX
;Multiplica AX * BX
;y el resultado lo almacena en:
;AX = Word LSB, y en DX = Word MSB.
;Entonces: AX = 5000h y DX = 0034h
12
Microprocesadores
Registro AX (cont.):
Ejemplo 2:
MOV BX, 100h ;BX = 100h
MOV AX, 3450h ;AX = 3450h
DIV BX
;Esta instruccin divide AX / BX
;Entonces: AX = 0034h y DX = 0050h
Ejemplo 3:
MOV DX, 0300h
IN AL, DX
MOV DX, 0301h
MOV AL, 56h
OUT DX, AL
Registro BX (base):
Se usa para direccionar memoria en modo de
direccionamiento indirecto.
Ejemplo 4:
MOV BX, 0500h
MOV AH, [BX]
MOV AL, [BX+2]
MOV CX, [BX+1]
ADD AX, CX
MOV 3[BX], AX
; BX = 500h
; AH = 23h
; AL = 9Ch
; CX = 9C42h
; AX = AX+CX = BFDEh
; [503] = BFDE
BF
DE
9C
42
23
504h
503h
502h
501h
500h
Memoria
13
Microprocesadores
Registro CX (contador):
Se emplea como contador en bucles y en
operaciones de manejo de cadenas.
Ejemplo 5:
MOV BX, 808h ; BX = 0808h
MOV AH, 0
; AH = 0
MOV CX, 5
; CX = 5
L1: ADD AH, [BX]; AH = AH+[BX]
INC BX
; BX = BX + 1
LOOP L1
; CX = CX -1
; CX = 0?, No, regresa a L1
4E
16
50
23
05
80Ch
80Bh
80Ah
809h
808h
Memoria
Registro CX (cont.):
Ejemplo 6:
MOV CL, 3
MOV AH, 11100100b
ROL AH, CL
MOV CL, 12
MOV DX, 3456h
ROR DX, CL
MOV CL, 8
SHR DX, CL
MOV CL, 4
SHL DX, CL
; CL = 3, veces a rotar.
; AH = 0E4h.
; AH = 00100111b = 27h.
; CL = 12, veces a rotar.
; DX = 3456h
; DX = 4563h
; CL = 8, veces a desplazar.
; DX = 0045h
; CL = 4, veces a desplazar.
; DX = 0450h
14
Microprocesadores
DS
SS
ES
FFFFFh
SI
IP
64K
SP
DI
BX
00000h
Segmento
de Cdigo
Segmento
de Datos
BP
Segmento
de Pila
Segmento
Extra
15
Microprocesadores
16
Microprocesadores
17
Microprocesadores
Registro IP (cont.):
Ejemplo:
Direccin
30AD:0120
30AD:0123
30AD:0125
30AD:0127
CS
Cdigo de
Nemnicos
mquina del Assembler
BA0301
B409
CD21
CD20
IP
18
Microprocesadores
19
Microprocesadores
; DF = 0, (incrementa SI y DI)
; SI = direccin de fuente
OF DF
IF
TF SF ZF
4
AF
PF
0
CF
20
Microprocesadores
21
Microprocesadores
22
Microprocesadores
SS
DS
ES
IP
Si
No
No
No
SP
No
Si
No
No
BP
Prefijo
defecto
Prefijo
Prefijo
BX
Prefijo
Prefijo
defecto
Prefijo
SI
Prefijo
Prefijo
defecto
Prefijo
DI
Prefijo
Prefijo
defecto
Prefijo*
Memorias
MICROPROCESADOR
ROM
RAM
E/S
Bus de datos
Bus de control
23
Microprocesadores
5. La memoria y el P
Memoria Lgica:
Es el sistema de memoria como lo ve el
programador o usuario final.
Realmente es la memoria instalada en la PC.
Es el mismo en todos los microprocesadores
INTEL y se numera por bytes.
En la figura 6, se ilustra el mapa de la
memoria lgica de todos los miembros de la
familia Intel.
5. La memoria y el P
8 bits
FFFFFFFF
FFFFFFFE
FFFFFFFD
8 bits
8 bits
FFFFFF
FFFFFE
FFFFFD
FFFFF
FFFFE
FFFFD
4 GB
16 MB
1MB
(a)
00000002
00000001
00000000
000002
000001
000000
00002
00001
00000
(b)
(c)
24
Microprocesadores
5. La memoria y el P
Memoria Fsica:
Las memorias fsicas de los miembros de la
familia Intel difieren en ancho. Es decir,
depende del bus de datos del Procesador
(Figura 7).
La memoria del 8088 es de 8 bits de ancho,
Las memorias del 8086, 80186, 80286 y
80386SX tienen 16 bits de ancho; las
memorias del 80386DX, 80486 y Pentium son
de 32 bits de ancho.
5. La memoria y el P
25
Microprocesadores
5. La memoria y el P
Banco alto
(banco impar)
FFFFF
FFFFE
FFFFD
FFFFFF
FFFFFD
FFFFFB
Banco bajo
(banco par)
FFFFFE
FFFFFC
FFFFFA
8 bits
1MB
8MB
00002
00001
00000
000005
000003
000000
8MB
000004
000002
000000
D15 - D8
Microprocesador
8088/8086
D7 - D0
Microprocesador 80186
Microprocesador 80286
Microprocesador 80386SX
Microprocesador 80386LS (memoria de 32M byte)
5. La memoria y el P
Continuacin.
Banco 3
FFFFFFFF
FFFFFFFB
FFFFFFF7
Banco 2
FFFFFFFE
FFFFFFFA
FFFFFFF6
1MB
0000000B
00000007
00000003
Banco 1
FFFFFFFD
FFFFFFF9
FFFFFFF5
1MB
0000000A
00000006
00000002
Banco 0
FFFFFFFC
FFFFFFF8
FFFFFFF4
1MB
00000009
00000005
00000001
1MB
00000008
00000004
00000000
Microprocesador 80386DX
Microprocesador 80486SX
Microprocesador 80486DX
Microprocesador PENTIUM
26
Microprocesadores
T.P.A
640 KB
Area sistema
(BIOS)
384 KB
Modo real
Memoria Extendida
Modo protegido
27
Microprocesadores
28
Microprocesadores
64K
1FFFFh
10450h
desp = 0450h
10000h
CS = 1000h
00000h
Memoria
FFFFFh
Pila
0A480h
0A47Fh
Cdigo
Pila
0A280h
0A27Fh
Datos
0A0F0h
0A0EFh
Cdigo
090F0h
0908Fh
(a)
00000h
SS=0A28h
DS=0A0Fh
CS=090Fh
DOS y
controladores
(b)
29
Microprocesadores
6. Modos de direccionamiento
DESTINO, FUENTE
AX,
CX
6. Modos de direccionamiento
Sintaxis: (1 operando)
INSTRUCCIN
MUL
DIV
PUSH
DESTINO
AX
CX
BX
Sintaxis: (0 operandos)
INSTRUCCIN
CLI
STI
PUSHF
30
Microprocesadores
MOV AX,1000
; AX = 03E8h
MOV BX,500h
; BX = 0500h
ADD CX,0F45Ah ; CX = CX + F45A
SUB BX,100
; BX = BX 64
MOV AH, 255
; AH = FFh
ADD DL,0A5h
; DL = DL + A5
NOTA: Cuando una constante empieza con una letra
(A,B,C,D,E o F), se debe anteponer un cero.
; AX = BX
; DS = AX
; CX = CX + DX
; BH = BH BL
; intercambia valores entre ellos
MOV AX,BL
ADD BH,CX
No se puede direccionar
porque son de diferentes
tamaos
SUB DX,AL
31
Microprocesadores
32
Microprocesadores
33
Microprocesadores
7. Direccionamiento de pila
La pila es un bloque de memoria de
estructura LIFO (Last Input First Output).
Se direcciona mediante desplazamientos
desde el registro SS.
Las posiciones individuales dentro de la
pila se calculan sumando al contenido del
segmento de pila SS un desplazamiento
contenido en el registro puntero de pila
SP.
34
Microprocesadores
7. Direccionamiento de pila
Todos los datos que se almacenan en la
pila son de longitud palabra (16 bits).
Para acceder a la pila se usa:
7. Direccionamiento de pila
La pila es utilizada frecuentemente al
principio de una subrutina para preservar
los registros que no se desean modificar;
al final de la subrutina se recuperan en
orden inverso al que fueron depositados.
La pila permite que algunas subrutinas
llamen a otras, que a su vez pueden
llamar a otras y as sucesivamente.
35
Microprocesadores
7. Direccionamiento de pila
En la pila se almacenan las direcciones de
retorno (Ej. call delay).
Los compiladores de los lenguajes de alto
nivel la emplean tambin para pasar los
parmetros de los procedimientos y para
generar en ella las variables automticas
(variables locales que existen durante la
ejecucin del subprograma y se destruyen
inmediatamente despus).
7. Direccionamiento de pila
Memoria
Memoria
Memoria
SS:SP
14C0:1024
34
SS:SP
SS:SP
12
14C0:1026
14C0:1026
F3
F3
F3
21
21
21
Despus de
PUSH AX
AX = 1234h
Despus de
POP AX
AX = 1234h
Situacin inicial
AX = 1234h
36
Microprocesadores
7. Direccionamiento de pila
CX
BX
AX
7. Direccionamiento de pila
delay
L2:
L1:
delay
PROC
PUSH
MOV
PUSH
MOV
LOOP
POP
LOOP
POP
RET
ENDP
NEAR
CX
CX, 0FFFFh
CX
CX, 1000h
L1
CX
L2
CX
37