Académique Documents
Professionnel Documents
Culture Documents
UNIDAD TEMTICA 5
ARQUITECTURA
CONVENCIONAL
Objetivos:
Objetivo General (Segn Plan de Estudios vigente)
Aplicar los aspectos centrales que hacen a la tecnologa de la computacin y
conceptos sobre hardware, plataformas y arquitecturas, para abordar las cuestiones
vinculadas al procesamiento y a las comunicaciones.
Objetivos especficos:
Los objetivos especficos en la Unidad Temtica 5, de la Ctedra Arquitectura de
Computadoras, son que el estudiante:
Pg. 1
ndice:
1 Visin General............................................................................................. 4
1.1 Formato de Instrucciones .......................................................................... 4
1.1.1 Formato de Cuatro Direcciones .............................................................. 4
1.1.2 Formato de Tres Direcciones .................................................................. 5
1.1.3 Formato de Dos Direcciones .................................................................. 5
1.1.4 Formato de Una Direccin ...................................................................... 6
1.2 Modos de Direccionamiento ...................................................................... 6
1.2.1 Operando en la CPU............................................................................... 8
1.2.2 Operando en la Memoria ........................................................................ 8
2 Nuevo Hardware y Nuevo Software........................................................... 12
2.1 Registros Nuevo ........................................................................................ 12
2.1.1 Registros ndices .................................................................................... 12
2.1.2 Registros Base........................................................................................ 13
2.2 Mquina Elemental Indexada .................................................................... 16
2.2.1 Conjunto de Instrucciones de la Mquina Elemental Indexada .............. 17
2.2.2 Ciclos de Mquina .................................................................................. 22
2.2.3 Interrupciones ......................................................................................... 29
2.2.3.1 Manejo de Entrada/Salida Bajo Control del Procesador ...................... 29
2.2.3.2 Manejo de Entrada/Salida con Interrupciones ..................................... 30
2.2.4 Sistema Elemental de Interrupciones ..................................................... 31
2.2.4.1 Ciclo de Interrupciones ........................................................................ 32
2.2.4.2 Rutina de Interrupcin.......................................................................... 33
2.2.4.3 Polling .................................................................................................. 35
2.2.4.4 Vector de Interrupciones ...................................................................... 37
2.2.5 Inicio de una Transferencia ..................................................................... 38
2.2.5.1 Controladores Elementales de Perifricos ........................................... 42
2.2.5.2 Registro Puntero de Pila ...................................................................... 43
2.3 Hacia una Estructura Convencional ........................................................... 44
3 Microprocesador Intel 8088 ....................................................................... 46
3.1 Introduccin ............................................................................................... 46
3.2 Diagrama en Bloques ................................................................................ 48
3.2.1 BIU y EU ................................................................................................. 49
3.2.2 Registros del 8088 .................................................................................. 51
3.2.3 Organizacin de la Memoria ................................................................... 53
3.2.4 Modos de Direccionamiento ................................................................... 54
3.2.5 Conjunto de Instrucciones ...................................................................... 56
3.2.6 Direccionamiento de Entrada/Salida ....................................................... 57
3.2.7 Interrupciones del 8088 .......................................................................... 57
Pg. 2
Pg. 3
1 VISIN GENERAL
En esta Gua Didctica veremos inicialmente dos conceptos: el formato de las
instrucciones y los modos de direccionamiento. Luego, haremos modificaciones a la
Mquina Elemental para obtener nuestra Mquina Elemental Indexada (MEI), que se
parece ms a la arquitectura actual de una computadora. Despus, agregaremos
Interrupciones a la Mquina Elemental Indexada (MEI) y, finalmente, estudiaremos
el microprocesador INTEL 8088 como ejemplo de mquina (CPU) convencional.
Direccin del
Operando A
Direccin del
Operando B
Direccin del
Resultado C
Direccin de la
prxima
instruccin D
Pg. 4
Direccin
Operando A
Direccin
Operando B
Direccin del
Resultado
Direccin
Operando A
Direccin
Operando B
Pg. 5
Direccin
Operando B
OPER2, OPER1
OPER1
Pg. 6
OPERdestino, OPERfuente
De lo mencionado, queda claro que si se trata de una instruccin que usa dos
operandos, es posible que coexistan en la misma dos Modos de Direccionamiento.
De acuerdo a donde est ubicado el operando y a cmo se especifica, tenemos
los siguientes modos de direccionamiento:
MODO DE
DIRECCIONAMIENTO
INMEDIATO
OPERANDO
EN LA CPU
MODOS DE
DIRECCIONAMIENTO
MODO DE
DIRECCIONAMIENTO
POR REGISTRO
MODOS DE
DIRECCIONAMIENTO
DIRECTO
OPERANDO EN
LA MEMORIA
MODOS DE
DIRECCIONAMIENTO
INDIRECTO POR
MEMORIA
MODOS DE DIRECCIONAMIENTO
INDIRECTO POR REGISTRO
(INDEXADO)
Pg. 7
Pg. 8
Pg. 9
Pg. 10
Pg. 11
Campo
Modificador
(2 bits)
Directo:
Si el contenido del Campo Modificador es 0, usa el Campo de Direccin
como la direccin de un operando, por ejemplo:
LDA 0, 1000
Carga el Acc con el contenido de la posicin 1000
Pg. 12
Sumador de Direcciones
Para realizar la suma indicada para el direccionamiento indexado, agregamos
un sumador en la CPU dedicado slo a esta tarea. De esta forma, no usamos
tiempo de la ALU. Este Sumador tiene dos registros de entrada: el Registro W y el
Registro X de 16 bits cada uno. Adems, siempre suma al resultado el contenido de
un tercer registro que agregaremos: el Registro Base de 16 bits.
Decodificador del Campo Modificador
Para poder decodificar el campo Modificador implementamos en la Unidad de
Control un nuevo decodificador: el DECODIFICADOR DEL CAMPO MODIFICADOR,
adems del Decodificador de Instrucciones ya existente. Esto permite realizar
simultneamente la decodificacin del Cdigo de Operacin de la instruccin y del
Campo Modificador.
2.1.2 REGISTROS BASE
Cuando un programador escribe un programa debe definir la direccin de
comienzo del mismo, y la memoria que necesita para su programa y datos
asociados. Una idea arbitraria, aunque comnmente usada, es que comience en la
Pg. 13
direccin CERO. Sin embargo hay razones por las cuales un programa no puede
comenzar en la direccin CERO. Una de ellas es que puede existir ms de un
programa residente en memoria en un momento dado (Multiprogramacin) y no
todos pueden comenzar en la direccin CERO. Otra, es que las primeras posiciones
de memoria se reservan para otras tareas, como el manejo de entrada salida (se
discutir posteriormente). Aqu, el alumno puede imaginar la necesidad de un
programa administrador del sistema (que podramos llamar Monitor). Este programa
debera, entre otras tareas, encargarse de decidir la ejecucin de los programas de
usuario, asignndole direcciones de comienzo y rea de memoria a utilizar (Proceso
llamado ensamblado del programa).
El programador no tiene forma de conocer de antemano cual ser la direccin
de comienzo de su programa disponible en el momento de ejecucin. Peor an, una
vez que el programa ha sido cargado, el Monitor puede necesitar reubicarlo a fin de
consolidar reas vacas en la memoria (desfragmentacin).
Un Programa Cargador Reubicable (Relocating Loader) podra ser una solucin
a fin de reubicar programas en la memoria. Este programa del Monitor debera ser
capaz de distinguir entre las constantes del programa de usuario (que no debe
modificar) y direcciones reubicables del programa (que debe modificar) para luego
ensamblarlo.
Una alternativa que permite reubicar programas utilizando una herramienta de
hardware es agregar un registro nuevo llamado REGISTRO BASE de 16 bits. El
Registro Base es como el Registro ndice en el sentido que su contenido se suma al
campo de direccin de la instruccin a fin de obtener la direccin efectiva. La
diferencia consiste en que:
El usuario comn no tiene control sobre el contenido del Registro Base, y
El contenido del Registro Base se suma siempre a la direccin efectiva
cuando se realiza una referencia a memoria en la Ejecucin de la instruccin.
Aclaremos mediante un ejemplo. Supongamos que el usuario escribe un
programa que comienza en la direccin CERO:
Pg. 14
Pg. 15
RB (16)
Sumador de
Direcciones ()
SR (16)
ACC (16)
W (16)
PC (16)
RIF (16)
X (16)
MBR (16)
IR (16)
RID (16)
Memoria
65536
posiciones
de
16 bits
BUS
Z (16)
Y (16)
ALU
MAR (16)
Unidad de
Control
Decodificador
de
Instrucciones
(32)
Decodificador
del Campo
Modificador
(4)
Secuenciador
Lgica
de
Control
Hardware de
Interrupciones
Pg. 16
Cdigo
Operacin
(Octal)
Campo
Modificad
Mnemnico
(Octal)
00
(1)
HTL
01
(2)
00
ADD
01
10
Campo de
Direccin
(0ctal)
Accin
Pg. 17
11
02
(2)
03
(2)
04
(2)
00
XOR
01
10
11
00
AND
01
10
11
00
IOR
Pg. 18
05
(1)
06
(2)
07
(2)
01
10
11
NOT
00
LDA
01
10
11
00
STA
01
10
11
10
(2)
SRJ
11
(2)
JMA
Pg. 19
12
(2)
13
(1)
JMP
14
(1)
15
(1)
OUT
16
(1)
CSA
17
(1)
20
(1)
NOP
21
(2)
INP
RAL
00
CRR
10
11
10
SIX
XXXXXX
XXXXXX
XXXXXX
XXXXXX
XXXXXX
01
XXXXXX
10
XXXXXX
10
LIX
11
23
(2)
01
11
22
(2)
00
ENI
Pg. 20
11
24
(1)
10
3
INC
11
25
(2)
10
JRI
11
26
(1)
27
(1)
30
(1)
31
(1)
32
33
34
35
36
37
SKF
ION
Habilita Interrupciones
IOF
Inhabilita Interrupciones
RTI
Pg. 21
Campo
Modificador
de 2 bits (3)
Bsqueda
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
Pasar a Ejecucin
Ejecucin
Enve PC, Cargue MAR, Cargue Z, Orden de
lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve RID, Cargue X
Enve MBR, Cargue W
Seguir en Ejecucin
Pg. 22
Ejecucin
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Pg. 23
Cdigo de Operacin de 5
bits (LDA)
Campo
Modificador
de 2 bits (1)
Bsqueda
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
Pasar a Ejecucin
Ejecucin
Enve PC, Cargue MAR, Cargue Z, Orden de
lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve 1, Cargue Z
Enve MBR, Cargue W
Enve ALU(XOR), cargue X
Seguir en Ejecucin
Ejecucin
Enve Sumador, Cargue MAR, Orden de
Lectura
Enve MBR, Cargue W
Seguir en Ejecucin
Pg. 24
Ejecucin
Enve Sumador, Cargue MAR, Orden de
Lectura
Enve MBR, Cargue Acc
Pasar a Bsqueda
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Campo
Modificador
de 2 bits (0)
Bsqueda
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
Pasar a Ejecucin
Pg. 25
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Ejecucin
Enve PC, Cargue MAR, Cargue Z, Orden de
lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve 1, Cargue Z
Enve MBR, Cargue W
Enve ALU(XOR), Cargue X
Seguir en Ejecucin
Ejecucin
Enve Sumador, Cargue MAR, Orden de
lectura
Enve MBR, Cargue Acc
Pasar a Bsqueda
Campo
Modificador
de 2 bits (2)
Pg. 26
Bsqueda
Pulso de
Reloj
CP1
Accin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
Pasar a Ejecucin
Ejecucin
Enve RIF, Cargue Z
Enve IR0-8, Cargue Y
Enve ALU(ADD), Cargue RIF
Pasar a Bsqueda.
CP2
CP3
CP4
CP5
CP6
CP7
CP8
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Cdigo de Operacin de 5
bits (ENI)
Campo
Modificador
de 2 bits (3)
Pg. 27
Bsqueda
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
Pasar a Ejecucin
Ejecucin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue RID
Pasar a Bsqueda.
Pg. 28
2.2.3 INTERRUPCIONES
Todas las entradas-salidas en la Mquina Elemental se llevan a cabo bajo
control de la CPU, usando las instrucciones INP y OUT. Sin embargo, existen otras
formas de manejar las operaciones de entrada-salida que no inmovilizan la CPU
mientras ocurre una transferencia de datos. Esto tiene que ver con la velocidad de
los perifricos que, en general, es inferior a la de la CPU. Por otro lado, existen
eventos que se producen con poca frecuencia, o bien por su importancia, sera
conveniente atenderlos en el momento que ocurren. Estos eventos son externos, es
decir, no se generan directamente por el programa sino por algn perifrico.
El modo ms conveniente de manejar estos problemas es arreglar el hardware
de tal forma que cuando estos eventos ocurren, se produzca una suspensin
(interrupcin) automtica del programa corriente, y se transfiera el control
temporariamente a una rutina diseada especialmente para manejar estos eventos.
As planteadas las cosas podramos clasificar la transferencia de Entrada/Salida
de la siguiente forma:
Bajo Control de la CPU
Manejo E/S
Mediante Interrupciones
Pg. 29
Interrupciones
Vectorizadas
Pg. 30
Pg. 31
IO
N
CP
8
IOF
CP
I
8
CP1
S Q
E
E
S Q
CP8
S Q
I
R Q*
SI
RQ
*
ESTADO
Q*
IRQ
Instrucciones B
de un Ciclo
PR
O
PRO
RTI
R Q*
E
CP
8
Fig. 5.7 Unidad de Control incluyendo sistema elemental de interrupciones
2.2.4.1 Ciclo de Interrupcin
La siguiente Tabla 5.7 indica el ciclo de interrupcin.
Pg. 32
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve 1, cargue Z, Cargue Y, SI = 0
Enve PC, Cargue MBR
Enve ALU (XOR), Cargue MAR, OE
Enve 1, Cargue PC
Biestable I = 0
Pg. 33
Accin
Enve PC, Cargue MAR, Orden de Lectura
Enve MBR, IR
Enve 1, Cargue Z, Cargue Y
Pasar a Ejecucin
Pg. 34
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve ALU(XOR), Cargue MAR, OL
Enve MBR, Cargue PC
PRO = 0, SI = 0, Pasar a Bsqueda
Pg. 35
JMP Rutina3
SKF 4
JMP Rutina4
-
IRQ
Pg. 36
Las Banderas de Dispositivo (BD), que son bits que provienen de los
dispositivos que solicitan atencin, se borran por la propia instruccin SKF XX
despus que lee la bandera.
2.2.4.4 Vector de Interrupciones
Otro mtodo (que no se implementa en la Mquina Elemental Indexada) que se
usa para determinar quin interrumpe es el llamado VECTORIZADO. En este
esquema, a cada dispositivo que puede interrumpir se le asigna una direccin
llamada vector de interrupcin (Trap Vector Address). Esta direccin es suplida por
el dispositivo que interrumpe y en la misma, el programador debe almacenar la
direccin de comienzo de la Rutina de Atencin que corresponda. De esta forma
toma lugar un salto indirecto a travs del vector a la Rutina de Atencin (Figura
5.10).
Como puede inferirse, este mtodo es ms rpido que el POLLING ya que no es
necesario preguntar bandera a bandera. Por otro lado, es conveniente considerar
una seal de reconocimiento de interrupcin ACK, generada por la Unidad de
Control, cuando ha reconocido una solicitud de interrupcin y comienza el proceso
de su atencin.
La Figura 5.11 indica el conexionado externo a la CPU, y la seal de
reconocimiento ACK que se encadena del Dispositivo 1 a los siguientes. La prioridad
la tiene el Dispositivo de la izquierda.
La seal I (similar a la seal BD) es la bandera de solicitud de interrupcin. Se
pone en 1 si el dispositivo correspondiente necesita atencin. Cuando el dispositivo
recibe la seal de reconocimiento ACK vuelca al BUS (no dibujado) su direccin y
pone a 0 su bandera I.
La seal M es un bit del registro mscara (ahora distribuido en los perifricos) y
se pone a 0 o 1 por programa.
El hardware y software necesario para la implementacin de la verificacin
vectorizada no se desarrolla aqu. Se invita al lector al planteo del mismo.
Pg. 37
MEMORIA
Rutina
Dispositivo1
Rutina
Dispositivo2
_
_
_
_
Saltos
rea de Memoria
para las Subrutinas
de Servicio de
Interrupcin
Rutina
Dispositivo N
Direccin DN
Direccin D2
Direccin D1
Vectores
Pg. 38
CPU
D
1
D
2
D
N
ACK
ACK1
ACK2
ACKN
Pg. 39
Pg. 40
OUT YY
Pulso de
Reloj
CP1
CP2
CP3
CP4
CP5
CP6
CP7
CP8
Accin
Enve PC, Cargue MAR, Cargue Z, OL
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
TRA = 1
TRA = 0, Pasar a Bsqueda
Accin
Enve PC, Cargue MAR, Cargue Z, Orden de
Lectura
Enve 1, Cargue Y
Enve SUMA, Cargue PC
Enve MBR, Cargue IR
Si PRO = 0, TRA = 1
Si PRO = 1, Enve PYY, Cargue ACC
TRA = 0, Pasar a Bsqueda
Pg. 41
Se sugiere al lector, como ejercitacin, escribir una Subrutina para manejar una
impresora (Perifrico de salida), que es capaz de escribir un caracter ASCII por vez.
Se desean escribir 100 caracteres ubicados en la Memoria desde la posicin 1000.
2.2.5.1 CONTROLADORES ELEMENTALES DE PERIFRICOS
PERIFRICO DE SALIDA
Si se trata de un Perifrico de Salida y se ha ejecutado una instruccin OUT YY,
su Registro de Datos se cargar con el dato que est en el BUS de E/S cuando el
perifrico seleccionado (YY) reciba la seal TRA e iniciar acciones.
Ejemplo para Perifrico de Salida P32: OUT 32 (Figura 5.12)
BUS
E/S
(8)
LNEAS DE
SELECCIN DE
PERIFRICO
IR0-5
INICIAR
ACCIONES
TRA
Fig. 5.12 Transferencia de salida sobre el perifrico 32
PERIFRICO DE ENTRADA
Si se trata de un Perifrico de Entrada y se ha ejecutado una instruccin INP YY
pueden hay dos opciones:
o Si PRO = 0, la Mquina no est atendiendo una interrupcin. Por lo tanto,
cuando se ejecuta INP YY, el perifrico YY recibe TRA e inicia las acciones
para obtener el dato solicitado.
o Sin PRO = 1, la Mquina est atendiendo una interrupcin y su Registro de
Datos tendr el dato solicitado y estar disponible en el Bus de E/S cuando el
perifrico sea seleccionado (CP7 de la instruccin INP YY). La seal TRA no
se genera en este caso por la instruccin INP YY.
Pg. 42
BUS
E/S
(8)
LNEAS DE
SELECCIN DE
PERIFRICO
IR0-5
TRA
REGISTRO DE SALIDA
(8)
INICIAR
ACCIONES
Pg. 43
Pg. 44
Pg. 45
8
0
8
8
40 VCC
39 A15
38 A16/S3
37 A17/S4
36 A18/S5
35 A19/S6
34 SS0
33 MN/MX
32 RD
31 HOLD
30 HLDA
29 WR
28 I/O/M
27 DT/R
26 DEN
25 ALE
24 INTA
23 TEST
22 READY
21 RESET
Pg. 46
FUNCIN
BUS DE DATOS Y DIRECCIONES. Estas lneas estn multiplexadas en el
tiempo.
BUS DE DIRECCIONES
BUS DE DIRECCIONES Y ESTADO. Estas lneas estn multiplexadas en el
tiempo.
BUS DE CONTROL. Lneas de control de lectura y escritura
E
E
Alimentacin
Tierra
S
S
Pg. 47
Bus A
TEMP
4
3
2
1
SUMADOR
TEMP
Cola de
Instrucciones
(4 Bytes)
TEMP
UNIDAD DE CONTROL
Bus B
ES
CS
SS
DS
IP
15
ROM de
traslacin
SR
I
R
PLA
MICRO
M
D
E
C
O
Bus C
N
X
B
15
MICRO
ROM
(504X21)
MICRO MBR
A (AH o AL)
B (BH o BL)
C (CH o CL)
D (DH o DL)
SP
BP
SI
DI
UNIDAD DE EJECUCIN (EU)
Seales de control
TEMP
TEMP
TEMP
ALU
8 o 16 bits
REGISTRO DE ESTADO
Pg. 48
3.2.1 BIU Y EU
Las funciones internas del 8088 estn divididas lgicamente en dos unidades de
procesamiento: la BIU y la EU. Estas unidades pueden interactuar directamente,
realizando las operaciones asincrnicamente.
1) La Unidad de Interfaz al bus (BIU) cumple las siguientes funciones:
a) Busca las instrucciones en la memoria.
b) Llena la cola de instrucciones que consta de 4 bytes (FIFO).
c) Proporciona el control del bus.
d) Proporciona a la EU los operandos a procesar.
La BIU est formada por un sumador, un conjunto de 5 registros de 16 bits y
la cola de instrucciones (4 bytes). Los circuitos relacionados con el control
del bus y tareas de pre-bsqueda de instrucciones que realiza la BIU, no
estn indicados en la figura 4.
2) La Unidad de ejecucin (EU) recibe la instruccin buscada previamente por la
BIU y se encarga de ejecutarla.
La EU consta de la Unidad de Control (CU), la Unidad Lgico-Aritmtica
(ALU) y un conjunto de 9 registros de 16 bits.
En la Figura 5.15 se observa que el 8088 posee tres buses internos (A, B, C).
La ALU posee tres registros temporarios de entrada (estando limitada una entrada a
uno solo de ellos). La salida de la ALU (sin registro temporario) puede fluir por el bus
a cualquier registro, incluidos los de su propia entrada. Puede realizar operaciones
de 8 o 16 bits, y las condiciones resultantes son almacenadas en el registro de
condiciones.
Cuando la BIU detecta que el bus externo est ocioso, enva una solicitud a la
memoria para leer el siguiente byte en el flujo de instrucciones. Los bytes ledos son
almacenados temporariamente en la cola de instrucciones. Cuando la EU requiere
un nuevo byte de instruccin, lo toma de esta cola. La dimensin de cuatro bytes de
la cola responde al compromiso de que la EU no tenga que estar esperando por un
nuevo byte por un lado. Y por otro lado, colas demasiado largas ocuparan mucho al
bus llenndose con bytes que podran no utilizarse (por ejemplo, cuando se ejecuta
una instruccin de salto).
Pg. 49
DESTINO
5 Bits
TIPO
3 Bits
ALU
4 Bits
REG.
3 Bits
CC
1 Bit
Pg. 50
Pg. 51
IP
Registro de condiciones
Bit 0:
C
Acarreo, C=1 si hay acarreo.
Bit 1:
No usado
Bit 2:
P
Paridad, P=1 si el resultado tiene un nmero par de
unos.
Bit 3:
No usado
Bit 4:
AC
Acarreo auxiliar, AC = 1 si hay acarreo del bit 3 al
bit 4 del resultado.
Bit 5:
No usado
Bit 6:
Z
Cero, Z=1 si el resultado en cero.
Bit 7:
S
Signo, S=1 si el resultado es negativo.
Bit 8:
T
Trap, T=1 si ocurre alguna interrupcin.
Bit 9:
Y
Interrupcin, Y=1 indica que las
interrupciones estn habilitadas.
Bit 10:
D
Direccin, D=1 indica sentido de alto a bajo
en el procesamiento de cadenas.
Bit 11:
O
Overflow, O=1 si hay overflow.
Bit 12:
No usado
Bit 13:
No usado
Bit 14:
No usado
Bit 15:
No usado
Puntero de instrucciones, indica la direccin de la prxima instruccin
a ejecutar.
Pg. 52
0000
OFFSET
15
SEL DE SEG.
0000
SUMADOR
19
0
DIRECCIN FSICA
Pg. 53
REF. NECESARIA
Instruccin
REG. USADO
CS
Stack
SS
Dato local
DS
Dato externo
ES
REGLA
Automticamente con la
pre-bsqueda
de
la
instruccin
Operaciones de Push y Pop
y ref. a memoria que usan
el registro. BP
Todas las referencias a
datos
excepto
los
relacionados al stack u
operaciones de string.
Segmento
de
datos
alternativo y destino de
operaciones de string.
(DX) (AX)
14 AH
Pg. 54
contenido
(AL)
en
la instruccin como un
Modo indirecto por registro: el offset est contenido en uno de los registros
BX, BP, SI o DI. Por ejemplo:
MOV [BX], CX.
(CX)
2A
2A
2A
Pg. 55
2A
Pg. 56
registro a memoria
inmediato a memoria
Los tipos de datos que soporta el 8088 son:
Entero: Valor numrico signado de 8 o 16 bits. Todas las operaciones
asumen la representacin en complemento a dos.
Ordinal: Valor numrico sin signo de 8 o 16 bits.
Puntero: Una cantidad de 32 bits compuesto por un selector de segmento y
un offset, cada uno de 16 bits.
Cadena: Secuencia continua de bytes o palabras, puede contener desde 1 a
64 Kbytes.
BCD: Un byte que representa un dgito BCD.
BCD empaquetado: Un byte que representa dos dgitos BCD, uno en cada
nibble.
3.2.6 DIRECCIONAMIENTO DE ENTRADA/SALIDA
Las operaciones de entrada salida pueden direccionar hasta 64K registros de
E/S. La direccin de la E/S aparece en el bus de direcciones de la misma forma que
una direccin de memoria.
Las instrucciones de entrada/salida de puerto variable usan al registro DX para
contener la direccin del registro E/S (puerto), y tienen la capacidad total de
direccionamiento. En cambio, las instrucciones de puerto fijo slo pueden
direccionar los primeros 256 locaciones de E/S en la pgina cero.
3.2.7 INTERRUPCIONES DEL 8088
El 8088 est provisto con un sistema de interrupciones vectorizado. Se pueden
clasificar en:
Interrupciones iniciadas por hardware
Externas
- enmascarables (a travs del pin INTR)
- no enmascarables (a travs del pin NMI)
Pg. 57
Internas
Interrupciones iniciadas por software. (a travs de la instruccin INT XX)
Una interrupcin resulta en la transferencia del control a un nuevo programa. En
las primeras 1024 (03FF) posiciones de memoria reside una tabla de 256
elementos, que contiene punteros a programas de servicio de interrupcin. Cada
elemento (puntero) es de 4 bytes y se corresponde con lo que se llama tipo de
interrupcin. El dispositivo que interrumpe suministra, durante el proceso de
reconocimiento de interrupcin, un valor de 8 bits que es usado como un vector
hacia el tipo de interrupcin que corresponda.
Si la interrupcin se inicia desde el pin NMI (que tiene prioridad sobre el pin
INTR), se producir una interrupcin de tipo 2, que se usa, en general, para activar
rutinas de falla de alimentacin. El vector es suplido internamente. Cuando ocurre
una interrupcin de este tipo, automticamente se borra el bit I del registro de
estado, a fin de enmascarar posibles interrupciones iniciadas por el pin INTR.
Si la interrupcin es requerida desde el pin INTR y se encuentran habilitadas las
interrupciones (bit I=1 del registro de estado) se inicia el proceso de atencin de
interrupcin. Se termina de ejecutar la instruccin corriente, el bit I se borra, se salva
el contexto actual (contenido del conjunto de registros) en el stack, se emite la seal
de reconocimiento de interrupcin (INTA), al recibirla el dispositivo que interrumpe
vuelca en el bus su vector. Este vector se utiliza para determinar el puntero a la
rutina de atencin de interrupcin, y se transfiere el control a dicha rutina. Una vez
terminada esta rutina se restituye el contexto y se contina con la ejecucin del
programa interrumpido. En el caso de existir ms de un dispositivo externo que
pueda interrumpir, es necesario adicionar al hardware un controlador de
interrupciones (el 8258 por ejemplo es capaz de manejar hasta 8 dispositivos).
Las interrupciones por software reciben igual tratamiento que las iniciadas desde
INTR. El vector, en este caso, lo suministrar el campo XX de la instruccin INT XX.
No todos los vectores estn disponibles para ser utilizados. El 8088 se reserva
algunos para usos especficos.
Pg. 58