Mia 316-1
Mia 316-1
Mia 316-1
050
RIF. G20000068-6
La Universidad Nacional
Abierta (UNA) es una
institución destinada
a la formación de
profesionales en áreas
prioritarias para
el desarrollo social bajo
la modalidad de estudios
a distancia, basada en la
utilización de medios
impresos, audiovisuales
y electónicos para la
transmisión de
conocimiento; tiene
cobertura nacional
mediante una red de
Centros Locales y Unidades
de Apoyo, lo cual permite al
estudiante permanecer
en su medio geográfico,
social y laboral.
ISBN 978-980-236-682-8
Primera reimpresión, 2009
Registro de Publicaciones de la
Universidad Nacional abierta
Nº UNA-MIA-2009-5862
4
UNIVERSIDAD NACIONAL ABIERTA
VICERRECTORADO ACADÉMICO
ÁREA: INGENIERÍA / CARRERA: INGENIERÍA DE SISTEMAS
MICROPROCESADORES
316
CARRERA
Ingeniería de Sistemas
Código: 236
Ubicación curricular
VII Semestre
AUTOR
Ing. Olga E. Rodríguez Durán
ASESORES TÉCNICOS
Ing. Judit Carvallo (Coordinadora Ingeniería de Sistemas)
Lic. Carmen Velásquez de Rojas (Evaluadora)
DISEÑO INSTRUCCIONAL
MsC. Antonio Alfonzo
Prof. Reina Hernández
5
6
TABLA DE CONTENDO
I. Introducción 9
V. Bibliografía 133
7
8
I. INTRODUCCIÓN
9
AMPLIACIÓN DE CONOCIMIENTOS: está dirigido al estudiante que
desea profundizar más en sus conocimientos en determinado tema.
10
II. OBJETIVO DEL CURSO
11
12
IV. CONTENIDO
MÓDULO I
13
14
UNIDAD 1
15
16
Actividades recomendadas para el estudio del contenido de la unidad 1
MATERIAL DE
TEMA CONTENIDO CAPITULO
REFERENCIA
Arquitectura interna
del microprocesador.
Direccionamiento de
memoria en modo
1.1 El microprocesador y real.
El texto Los
su arquitectura
Microprocesadores 2
Introducción al
Intel, B. B. Brey.
direccionamiento de
memoria en modo
protegido.
Paginación de
memoria.
Modos de
direccionamiento de
datos.
Modos de
1.2 Modos de
El texto Los direccionamiento de
direccionamiento 3
Microprocesadores la memoria del
Intel, B. B. Brey. programa.
Modos de
direccionamiento de
la memoria de la pila.
Instrucciones para
movimiento de datos.
4
El texto Los
1.3 Instrucciones Instrucciones 5
Microprocesadores
aritméticas y lógicas.
Intel, B. B. Brey.
Instrucciones de
6
control de programa.
17
ATENCIÓN: muchos de los ejemplos que presenta el texto Los
Microprocesadores Intel, de B.B. Brey usan el Microsoft MACRO
Assembler (MAMS) como herramienta de desarrollo, pero la mayoría de
ellos pueden ser ensamblados con otros ensambladores, por ejemplo,
ASM (Intel Assembler) y TASM (Borland Turbo Assemler). En el curso
Microprocesadores se utilizará el Software Simulador incluido en el
paquete instruccional. No obstante, se recomienda al estudiante
investigar sobre el uso del MAMS, con el objeto de ampliar sus
conocimientos.
Una vez estudiado el contendido del tema 1.1 indicado en la tabla 1, usted estará
en capacidad de responder las siguientes preguntas:
Se sugiere la lectura de la sección 2-1 incluida en el capítulo 2 del texto del curso,
a fin de favorecer los conocimientos básicos que se requieren para la comprensión
del tema.
18
EJEMPLO 1.1.1: Modelo de programación del microprocesador 8080
Intel
Registro acumulador
B C
D E
H L
SP (Stack Pointer)
PC (Program Counter)
Flags (banderas)
19
ATENCIÓN: El registro Flags contiene 8 bits, pero sólo se utilizan los
cincos bits menos significativos, que corresponden a las cinco banderas:
S, C, A, P y C.
A F A´ F´
B C B´ C´
D E C´ E´
H L H´ L´
Registros Índice
IX
IY
SP
PC
I
R
20
Como puede ser apreciado en la figura anterior, el modelo de programación del
microprocesador Z80 está compuesto por un banco principal, otro alternativo y,
por último, un banco compuesto por registros especiales. La existencia del
banco alternativo mejora la velocidad ante la presencia de las interrupciones ya
que permite cambiar desde el banco principal al alternativo. Los registros son:
21
EJERCICIO 1.1.1. Compare los dos modelos de programación mostrados
en los ejemplos 1.1.1 y 1.1.2 y reflexione sobre cuál de ellos le presenta
más ventajas al programador a la hora de elaborar un programa y por
qué. Discuta su respuesta con el asesor del centro local.
EJERCICIO 1.1.2. Investigue las razones por las que se puede asegurar
que el microprocesador 8080 Intel es una versión mejorada tanto en
circutería como en características de programación del modelo Intel 8080.
22
FFFFF H
Registros de puntero
Segmento de código
IP
Fin de la pila
SP
Segmento de pila
BP
Registros de segmento
CS
SS Segmento de datos
DS
Segmento extra de
ES datos
00000 H
Lea la sección 2-2 incluida en el capítulo 2 del libro de texto del curso y revise los
ejemplos que allí se incluyen. Posteriormente revise el ejercicio 1.1.3. Ante
cualquier duda consulte al asesor del centro local.
23
EJERCICIO 1.1.3. En la figura 4 se muestra un caso de acceso al sistema
de memoria cuando el microprocesador opera en modo real. Se pide que
usted describa con sus propias palabras: ¿cómo se accede a la memoria
usando la técnica de direccionamiento de memoria en modo real?
Tabla de segmentos
Po 400
P1 250
250
P2 1200
P1
Dirección lógica Dirección absoluta
400
Po 12 + 400+12 Po
1200
P2
24
condiciones el contenido del registro de segmento de datos DS es el mostrado en
la figura 5:
0000000000001 0 00
Base = 00100000 H
Límite = 000FF H
Final = Base + Límite = 00100000 H + 000FF H
Final = 001000FF H.
25
Paginación de memoria
26
La figura 7 ilustra la combinación de los mecanismos de segmentación y
paginación disponibles en el Intel Pentium II.
S
e
g
m
e
n Memoria
Directorio Tabla de principal
t de páginas páginas
o
Tabla de
segmentos
27
1.2 MODOS DE DIRECCIONAMIENTO
El uso masivo del direccionamiento a registros indica que los registros del
procesador se emplearán intensamente. Con el objeto de que usted se familiarice
con los registros disponibles en las arquitecturas de microprocesadores Intel de 8,
16 y 32 bits utilizados para este tipo de direccionamiento, se presenta la tabla 2.
Esta información será de importancia para el estudio de los temas siguientes,
especialmente aquéllos relacionados con la programación del procesador.
AH AX EAX
AL BX EBX
BH CX ECX
BL DX EDX
CH SP ESP
CL BP EBP
DH DI EDI
DL SI ESI
CS
ES
DS
SS *
FS
GS
* Nota: Son utilizados por algunas instrucciones MOV, así como también por las instrucciones
PUSH y POP.
28
EJEMPLO 1.2.1: Modos de direccionamiento del Pentium II
29
Registro de segmento
Selector SS
GS Registro base
Selector
FS
Selector ES
Selector
DS
Selector Registro índice
CS
Selector
Escala: 1,2 u 8
Desplazamiento (en
+ la instrucción, 0, 8 ó
32 bits)
30
MODO ALGORITMO DESCRIPCIÓN
El operando se incluye en la instrucción. El
operando puede ser un byte, una palabra o
una palabra doble de datos. Este modo
Inmediato Operando = A
puede utilizarse para definir y utilizar
constantes, o para fijar valores iniciales de
variables.
El operando está situado en un registro. Si
se hace un uso masivo de este
direccionamiento en un repertorio de
instrucciones, los registros de la CPU se
Registro LA = R emplearán intensamente, y debido al
número limitado de registros en
comparación con el número de posiciones
de la memoria principal, se recomienda
usarlo eficientemente.
El desplazamiento del operando está
incluido, formando parte de la instrucción.
Debido a que implica instrucciones largas,
Con
LA = (SR) + A se puede encontrar en pocas máquinas. En
desplazamiento
el Pentium II, el valor del desplazamiento
puede ser de 32 bits, haciendo que la
instrucción tenga 6 bytes.
LA = (SR) + Especifica que uno de los registros de 8, 16
Base
(B) o 32 bits contiene la dirección efectiva
La instrucción incluye un desplazamiento
que hay que sumar a un registro base, que
puede ser cualquiera de los registros de uso
general. Un ejemplo de uso de este modo es
Base con LA = (SR) + la utilización por un compilador para apuntar
desplazamiento (B) + A al comienzo de una zona de variables; en
este caso el registro base apunta al
comienzo de un marco de pila, que contiene
las variables locales para el procedimiento
correspondiente.
La instrucción incluye un desplazamiento a
ser sumado a un registro, llamado en este
caso registro índice. El registro índice puede
ser cualquiera de los registros de uso
Índice escalado general excepto el ESP. Este modo es muy
LA = (SR) + (I)
con conveniente para indexar matrices.
xS+A
desplazamiento
31
MODO ALGORITMO DESCRIPCIÓN
Suma los contenidos de los registros base e
índice, y un desplazamiento para formar la
dirección efectiva. Podría emplearse para
Base con índice y LA = (SR) +
manejar una matriz bidimensional; en este
desplazamiento (B)+ (I) + A
caso el desplazamiento apunta al inicio de la
matriz, y cada registro gestiona una
dimensión de la misma.
Suma el contenido del registro índice,
multiplicado por un factor de escala, con el
Base con índice contenido del registro base y el
LA = (SR) + (I)
escalado y desplazamiento. Permite la indexación
x S + (B) + A
desplazamiento eficiente de una matriz bidimensional
cuando los elementos de la misma tienen
longitudes de 2, 4 u 8 bytes.
Suma un desplazamiento al valor del
contador del programa que apunta a la
Relativo LA = (PC) + A siguiente instrucción, se emplea en
instrucciones de transferencia del control
(control de flujo).
LA = dirección lineal (X) = contenido de X
SR = Registro de segmento PC = Contador de programa
A = Contenido de un campo de R = Registro
dirección de la instrucción B = Registro base
I = Registro índice S = Factor de escala
Lea la sección 3-2 incluida en el capítulo 3 del texto. Posteriormente examine los
ejemplos allí incluidos.
32
Modos de direccionamiento de la memoria de la pila
Se sugiere la lectura de la sección 3-3 incluida en el capítulo 3 del texto del curso,
con el fin de favorecer los conocimientos básicos que se requieren para la
comprensión del tema.
Segmento de pila
Final de la pila
(valor inicial de ESP)
Variables locales
pasadas al
procedimiento llamado
33
El orden en el que se insertan los parámetros en la pila es importante. Los
últimos parámetros en insertarse en la pila son los primeros parámetros en la
declaración de la función C.
1.3 INSTRUCCIONES
34
Instrucciones para movimiento de datos
0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1
W
D
Byte 3 (E8 H)
1 1 1 0 1 0 0 0
El byte 2: contiene el código de operación conformado por los seis bits más
significativos (100010), que corresponden a la operación MOV. El bit de dirección
D indica que la palabra doble (W = 1) será movida al registro destino.
El byte 3: puesto que el campo MOD contiene 11, el campo R/M indica que es un
registro. Las asignaciones de REG y R/M serán las siguientes:
35
La instrucción escrita en lenguaje ensamblador es MOV EBP, EAX. Esta
instrucción mueve la palabra doble desde el registro EAX al registro EBP.
ORG 1000 H
var_byte DB 20 H
var_word DW ?
ORG 2000 H
MOV AX, 1000 H
MOV BX, AX
MOV BL, var_byte
MOV var_word, BX
END
36
EJEMPLO 1.3.3: uso de las instrucciones aritméticas ADD (suma) y ADC
(suma con acarreo).
ORG 1000 H
dato1_l DW 0FFFF H
dato1_h DW 0015 H
dato2_l DW 0011 H
dato2_h DW 0002 H
ORG 2000 H
MOV AX, dato1_l
ADD AX, dato2_l
MOV BX, dato1_h
ADC BX, dato2_h
END
IF AL = 4 THEN
BEGIN
BL = 1;
CL = CL + 1;
END;
37
Una solución que permite esto es la siguiente:
• En el final del IF, se ejecuta un HLT (6) para terminar la ejecución del
programa.
EJERCICIOS PROPUESTOS
38
3.- Determine la dirección de memoria a la cual accede cada una de las siguientes
instrucciones con el modo de operación real (asuma para ello que DS = 0200
H, BX = 0300 H y DI = 400 H):
a) MOV EAX,[BX]
b) MOV [DI],AL
4.- Realice el ejemplo 1.3.1, pero considerando que el modo de instrucciones es
de 32 bits.
5.- Desarrolle una secuencia de instrucciones que intercambie el contenido de AX
con BX, el de ECX con EDX y el de SI con DI.
6.- Explique cómo se convierte la instrucción AAM de binario a BCD.
EJERCICIOS DE AUTOEVALUACIÓN
2.- ¿Cuáles son las localidades de inicio y final que direcciona un descriptor del
microprocesador 80286 con una dirección de base de A00000 H y un límite
de 1000 H?
39
CONSULTA EN OTROS LIBROS
[Flyn85] Flynn, M, ;Jonson, J.; and Wakefield, S. On Instruction Sets and Their
Formats IEEE Transactions on Computer, September 1987. Contiene aspectos de
diseño de repertorios de instrucciones, particularmente aquellos relativos a los
formatos.
CONSULTA EN LA WEB
http://www.itlp.edu.mx/publica/tutoriales/ensamblador/indice5.htm: contiene
información sobre los elementos básicos del lenguaje ensamblador.
http://weblidi.info.unlp.edu.ar/catedras/organiza/download/apunte4.pdf: contiene
información sobre las instrucciones y directivas del lenguaje ensamblador.
http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo4.html: incluye
información interesante sobre la segmentación y la paginación de memoria.
http://futura.disca.upv.es/~eso/es/t2-arquitectura/gen-t2-arquitectura.html: presenta
una introducción a la arquitectura IA-32 de los microprocesadores Intel.
40
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
41
4.- A continuación se genera la dirección para la instrucción MOV AL,[1234 H]:
AH AL
EAX 8A H 8A H 8A H 3134 H
EBX
ECX
CS
0200 H DS x 10 H
DS +
1234 H
5.- La secuencia será la siguiente:
MOV SI, DI
OR SI, 1F H
42
UNIDAD 2
Una vez estudiados los componentes que conforman la memoria principal del
microprocesador, es necesario que se ensamblen estos componentes en forma
correcta a objeto de producir un sistema de memoria adecuado para un
microprocesador. Debe considerarse la cantidad de memoria requerida y el
método óptimo de conectar a toda la memoria del microprocesador. Por esto se
incluye, en la unidad 2, la solución de problemas de conexión de la memoria al
microprocesador mediante la interfaz adecuada, específicamente para la familia
de los microprocesadores Intel.
Objetivo de la Unidad 2: Resolver problemas de conexión de la memoria al
microprocesador, mediante el uso de la interfaz apropiada.
44
Dirección 2n
Selección
Matriz de celdas
n 2n x m celdas
R/W
Circuito de
Detección/escritura CS
m m
CS
Figura 13. Terminales y señales típicas de un chip encapsulado
El chip encapsulado tiene 32 terminales, siendo éste uno de los tamaños estándar
de encapsulado. Los terminales son los siguientes:
45
ATENCIÓN: Para efectos del desarrollo de ejercicios y o problemas en el
curso Microprocesadores no se considerarán el uso de los terminales
Vcc, Vss y Vpp.
46
Dirección de columna
1. . . . . . . s
Decodificador
2s
Dirección de
fila
1
. Arreglo de
. Decodi- memoria
. ficador 2t
.
.
t
Celda de la
memoria
Salida Entrada
47
• ¿Cuáles son los terminales de conexión comunes a todos los dispositivos
de memoria?
• ¿Para qué son utilizadas las líneas de dirección en un dispositivo de
memoria?
• ¿Para qué son utilizadas las conexiones de datos en un dispositivo de
memoria?
• ¿Cuántas localidades de memoria se pueden direccionar con 10 terminales
de dirección?
• ¿Por qué es necesario decodificar las líneas de dirección del
microprocesador para direccionar la memoria?
• ¿Qué tipos de conexión son comunes para todos los dispositivos de
memoria?
• ¿Cuántas palabras se encuentran en un dispositivo de memoria que tenga
8 conexiones de dirección?
Dispositivos de memoria
Lea la sección 10-1 incluida en el capítulo 10 del libro de texto del curso
posteriormente desarrolle el ejercicio 2.1.1.
Decodificación de la dirección
Lea la sección 10-2 incluida en el capítulo 10 del libro de texto del curso y revise
los ejemplos que allí se incluyen.
48
A0
A7
A8
Decodificador
de 2 a 4
A9 Figura 15. Sistema de memoria de 1 Kbyte x 8 bits
Lea la sección 10-3, 10-6 y 10-7 incluida en el capítulo 10 del libro de texto del curso y
revise los ejemplos que allí se incluyen.
EJERCICIOS PROPUESTOS
49
1.- Describa cómo se realiza la selección de la dirección requerida en el arreglo de
memoria presentado en la figura 14, para el caso en que la memoria sea del
tipo RAM.
EJERCICIOS DE AUTOEVALUACIÓN
50
A15
A14
. Líneas de dirección
.
Microprocesador A0
_
D0 a D7 R/W
Canal de control
Canal de datos
A 0 A1 A11
A0 A 1 A11 __
___ CS
__ CSR ___
CS CSE
EPROM
RAM 4kX8
4kX8
_
__ D0 a D7 R/W
D0 a D7 OE
51
CONSULTA EN LA WEB
1.- Como las direcciones contienen tres bytes, se requieren 24 líneas de dirección
(desde A0 hasta A24). La cantidad de dispositivos RAM a utilizar es de 4 (ya
que 4 x 256 bytes = 1024 bytes = 1k) y dos dispositivos EPROM. El sistema de
memoria así configurado será el siguiente:
000000 H
000200 H
0003FF H
30F000 H
30FFFF H
FFFFFF H
52
Y la tabla de decodificación será la siguiente:
A23 A22 A21 A20 A19 A16 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X 0 RAM1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X 1 RAM2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X X X X X X X X 0 RAM3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 X X X X X X X X 1 RAM4
0 0 1 1 0 0 0 0 1 1 1 1 X X X X X X X X X X X 0 EPROM1
0 0 1 1 0 0 0 0 1 1 1 1 X X X X X X X X X X X 1 EPROM2
53
LINEAS DE DIRECCIÓN A15
A12
A11
____ A1
Microprocesador A0
___
CSR
CSE A 0 A1 A11 A 0 A1 A11
_ __
D0 a D7 R/W
__
CS CS
RAM EPROM
4kX8 4kX8
CANAL
DE _ __
CONTROL D0 a D7 R/W D0 a D7 OE
CANAL DE DATOS
54
UNIDAD 3
Interfaz de E/S básica, interrupciones y E/S controlada por DMA
Por muy poderosa que sea una unidad central de procesamiento (CPU), la utilidad
de una computadora depende esencialmente de sus capacidades de entrada y
salida. Es decir, sin ellas no habría, por ejemplo, entrada desde el teclado, ni
salida hacia la pantalla, ni salida impresa y ni siquiera almacenamiento y
recuperación en disco. Para ello se requiere utilizar rutinas y medios
especializados que permitan procesar la entrada y la salida.
MATERIAL DE
TEMA CONTENIDO CAPITULO
REFERENCIA
Introducción a la interfaz de E/S
55
Microprocesadores Interrupciones por hardware.
Intel, B. B. Brey.
Expansión de la estructura de
interrupciones
Controlador de interrupción
programable 8259A.
56
Microprocesador Memoria principal
Bus
Líneas de control
Registros de
Decodificador Circuitos de datos y de Interfaz de E/S
de direcciones control estado
Dispositivo de E/S
57
Una vez estudiado el contendido del tema 3.1 indicado en la tabla 5, usted estará
en capacidad de responder las siguientes preguntas:
• ¿Qué dispositivos se utilizan para construir la interfaz básica de entrada,
que permite conectar un dispositivo de E/S al bus del computador?
• ¿Qué instrucciones utiliza la E/S aislada para la transferencia de datos
entre un dispositivo de E/S y el microprocesador?
• ¿Cuál es la ventaja que tiene la E/S ubicada en memoria, con respecto a
las instrucciones que utiliza para la transferencia de datos?
• ¿En qué se diferencia un decodificador de puerto de E/S del decodificador
de memoria?
• ¿Por qué se puede decir que el dispositivo 82C55 puede utilizarse para
controlar diversos periféricos?
Lea la sección 11-1 incluida en el capítulo 11 del libro de texto del curso y revise los
ejemplos que allí se incluyen. Posteriormente estudie los ejemplos 3.1.1 y 3.1.2. Ante
cualquier duda consulte al asesor del centro local.
Parte transmisora:
La parte transmisora chequea la línea busy para ver si la parte receptora
está ocupada. Si la línea busy está activa, la parte transmisora espera en
un bucle hasta que la línea busy esté inactiva.
La parte transmisora coloca la información en las líneas de datos.
La parte transmisora activa la línea de strobe.
La parte transmisora espera en un bucle hasta que la línea acknowledge
está activa.
La parte transmisora inactiva la línea de strobe.
La parte transmisora espera en un bucle hasta que la línea acknowledge
esté inactiva.
La parte transmisora repite los pasos anteriores por cada byte a ser
transmitido.
Parte receptora:
La parte receptora inactiva la línea busy (asumiendo que está lista para
recibir información).
La parte receptora espera en un bucle hasta que la línea strobe esté activa.
La parte receptora lee la información de las líneas de datos (y si es
necesario, procesa los datos).
La parte receptora activa la línea acknowledge.
58
o La parte receptora espera en un bucle hasta que esté inactiva la
línea de strobe.
La parte receptora inactiva la línea acknowledge.
La parte receptora repite los pasos anteriores por cada byte que debe
recibir.
59
Microprocesador 74X541
DB0 READ G1
D0 Puerto 1
DB1 INSEL1 G2
D1
DB2 INSEL2
D2 A1 DB0
INSEL3 Y1
DB3
D3 . A2 DB1
. Y2
DB4 D4 . A3 DB2
. Y3
DB5
D5 A4 DB3
Y4
DB6 D6 A5
Y5 DB4
DB7
D7 A6 DB5
Y6
A7 DB6
Y7
A8 DB7
Y8
74X541
G1 Puerto 2
G2
A1 DB0
Y1
A2 DB1
Y2
A3 DB2
Y3
A4 DB3
Y4
A5
Y5 DB4
A6 DB5
Y6
A7 DB6
Y7
A8
Y8
Bus de datos
60
Cuando el microprocesador ejecuta una instrucción IN se puede leer un dato
de cualquiera de los dos puertos; la selección del puerto se realiza mediante la
activación de una de las líneas INSEL, lo que ocasiona que las conexiones de
entrada de datos (A) sean conectadas a la conexión de salida de datos (Y).
El diagrama de la figura 19 es la interfaz interna con el bus del 8086. Ésta incluye
un bus de datos bidireccional de 8 bits (D0 a D7), usado para transferir datos a y
desde, los puertos de E/S, y para transferir la información al registro de control.
Las dos líneas de direcciones (A0 y A1) especifican uno de los dos puertos de E/S
o el registro de control. Una transferencia se producirá cuando la línea de
selección de chip (CHIP SELECT) se activa junto con la línea de lectura (READ) o
escritura (WRITE). La línea RESET se utiliza para iniciar el módulo.
61
Buffer de Bus interno
datos de 8 bits
Bus de
datos A
del 8086 8 8 8
Fuente
de
alimentación + 5 V (Vdd) 4 CA
Tierra (GND)
A0 CB
4
A1
Read Lógica
de
Write control
B
Reset 8
Registro
Chip de
select control
Buffer de
datos
62
conformidad (handshaking). La pantalla también está conectada a un puerto de
datos de 8 bits. De nuevo, dos de los bits tienen un significado específico que es
transparente para el 82C55A. Junto a las dos líneas para la sincronización
mediante conformidad, hay dos líneas más para funciones de control adicionales.
El emisor utiliza una línea de control como línea de datos listos (DATA READY)
para indicar que hay un dato en las líneas de datos de E/S. El receptor utiliza otra
línea como reconocimiento (ACKNOWLEDGE), para indicar que el dato se ha
leído y que las líneas de datos se pueden liberar. Se puede designar otra línea
como línea de petición de interrupción (INTERRUPT REQUEST) en el bus del
sistema.
Petición de
interrupción
C3 A0
A0 R0
A1 R1 Teclado
A2 R2
A3 R3
A4 R4
A5 R5
A6 Shift (desplazamiento)
Control
C4
C5 Dato preparado
Reconocimiento
82C55A
B0 S0
B1 S1 Pantalla
B2 S2
B3 S3
B4 S4
B5 S5
B6 Back space
B7 Borrar
C1 Dato preparado
C2 Reconocmiento
C6 Blanking
C0 C7 Borrar línea
Petición de
Interrupción
Figura 20. Interfaz teclado/pantalla en el 82C55A
Lea la sección 11-4 incluida en el capítulo 11 del texto y revise los ejemplos allí
presentados.
63
3.2 Interrupciones
Una alternativa es que el procesador, tras enviar una orden de E/S a un módulo,
continúe realizando algún trabajo útil. Después el módulo de E/S interrumpirá al
procesador para solicitar su servicio cuando esté preparado para intercambiar
datos con él. El procesador ejecuta entonces la transferencia de datos, como
antes, y después continúa con el procesamiento previo. Por ejemplo para procesar
una entrada, el módulo de E/S recibe una orden READ del procesador. Entonces,
el módulo de E/S procede a leer el dato desde el periférico asociado. Una vez que
el dato está en el registro de datos del módulo, el módulo envía una interrupción al
procesador a través de una línea de control. Después, el módulo espera hasta que
el procesador solicite su dato. Cuando ha recibido la solicitud, el módulo sitúa su
dato en el bus de datos y pasa a estar preparado para otra operación de E/S.
Por otra parte, desde el punto de vista del procesador, las acciones para una
entrada comienzan con una orden READ de lectura. Entonces el procesador pasa
a realizar otro trabajo, al final de cada ciclo de instrucción, el procesador
comprueba las interrupciones, cuando se pide la interrupción desde el modulo de
E/S, el procesador guarda el contexto del programa en curso y procesa la
interrupción. En este caso, el procesador lee la palabra de datos del módulo de
E/S y la almacena en memoria. Después recupera el contexto del programa que
estaba ejecutando y continúa su ejecución.
Una vez estudiado el contendido del tema 3.2 indicado en la tabla 5, usted estará
en capacidad de responder las siguientes preguntas:
64
EJEMPLO 3.2.1: secuencia de pasos para leer un bloque de datos en
una E/S mediante interrupciones.
E/S CPU
Comprobar
el estado
Condición de error
E/S CPU
Escribir una palabra
en memoria
CPU Memoria
Comprobar
el estado
No
Si
Instrucción siguiente
65
Interrupciones por hardware y expansión de la estructura de interrupciones
Lea las secciones 12-2 y 12-3 incluidas en el capítulo 12 del texto y revise los
ejemplos allí presentados.
66
Controlador de interrupciones 82C59A esclavo
Dispositivo externo
Dispositivo externo 01
00
IR0
IR1 INT
IR2
IR3
IR4
IR5
IR6
IR7
Dispositivo externo 07
Controlador de Concentrador de Procesador
Interrupciones interrupciones 80386
82C59A esclavo 82C59A maestro
IR0
Dispositivo externo 08 IR1 INT IR0
IR2 IR1
Dispositivo externo 09 IR3 IR2 INT INTR
IR4 IR3
IR5 IR4
IR6 IR5
IR7 IR6
IR7
Dispositivo externo 15
Controlador de
interrupciones
82C59A esclavo
67
Operación básica del DMA y el controlador del DMA 8237
El DMA requiere un módulo adicional en el bus del sistema. El módulo DMA (ver
figura 3.1) es capaz de imitar al procesador y, de hecho, es capaz de recibir el
control del sistema cedido por el procesador. Necesita dicho control para transferir
datos a, y desde, memoria a través del bus del sistema. Para hacerlo, el módulo
DMA debe utilizar el bus sólo cuando el procesador no lo necesita, o debe forzar al
procesador a que suspenda temporalmente su funcionamiento. Ésta última técnica
es la más común y se denomina robo de ciclo (cycle stealing), puesto que, en
efecto, el módulo DMA roba un ciclo de bus.
Contador de
datos
Registro de
Líneas de
datos
datos
Registro de
Líneas de dirección
direcciones
DMA REQ
DMA ACK
Lógica de
INTR control
Read
Write
Cuando el procesador desea leer o escribir un bloque de datos, envía a una orden
al módulo de DMA, incluyendo la siguiente información:
68
El número de palabras a leer o escribir, también indicando a través de las
líneas de datos y almacenado en el registro de cuenta datos.
CPU DMA
Mandar orden de
lectura de bloque Hacer otra cosa
al módulo DMA
Una vez estudiado el contendido del tema 3.3 indicado en la tabla 5, usted estará
en capacidad de responder las siguientes preguntas:
Lea las secciones 13-1 y 13-2 incluidas en el capítulo 13 del texto y revise los
ejemplos allí presentados.
69
carácter transmitido. El procesamiento de interrupciones es costoso. Razón por la
cual es necesario una forma de reducir la mayor parte de las interrupciones.
La solución es regresar a la E/S programada, pero encargársela a otro dispositivo
que no sea el CPU. La figura 25 muestra cómo se logra esto. Se ha añadido un
nuevo chip al sistema, un controlador de acceso directo a la memoria (DMA), con
acceso directo al bus.
Dirección
100
Cuenta
32 Controlador
RS232C
4 100
1
Dispositivo Sentido
Bus
Figura 25. Sistema controlador DMA
El chip DMA contiene al menos cuatro registros, todos los cuales pueden ser
cargados por software que se ejecuta en la CPU. El primero contiene la dirección
de memoria que se leerá o en la que se escribirá. El segundo contiene el número
de bytes (o palabras) que se transferirán. El tercero específica el número de
dispositivo o espacio de direcciones de E/S que se usará, con lo que se especifica
qué dispositivo de E/S se desea. El cuarto indica si los datos se escribirán en el
dispositivo de E/S o se leerán de él.
70
Si el registro de cuenta sigue siendo mayor que 0, se lee otro byte de la memoria y
se escribe en el dispositivo.
Cuando la cuenta por fin llega a 0, el controlador de DMA deja de transferir data y
habilita la línea de interrupción en el chip del CPU. Con DMA, la CPU solo tiene
que inicializar unos cuantos registros. Una vez hecho eso, queda libre para hacer
otras cosas hasta que se completa la transferencia.
Lea la sección 13-3 incluida en el capítulo 13 del texto y revise los ejemplos allí
presentados.
EJERCICIOS PROPUESTOS
2.- Una impresora de caracteres simples podría usar razonablemente bien una
entrada/salida programada, pues su velocidad es lenta comparada con la
unidad central de procesamiento. Sin embargo, la mayoría de las impresoras
modernas utiliza el acceso directo a la memoria. ¿Por qué?
3.- ¿Por qué el acceso directo a la memoria (DMA) sería inútil si la computadora
careciera de la capacidad de interrupción?
71
EJERCICIOS DE AUTOEVALUACIÓN
72
[Lameda, 1984]: presenta un estudio de los métodos para introducir y extraer
datos del computador, también incluye el estudio de las interfaces con
dispositivos para entrada/salida.
CONSULTA EN LA WEB
http://www.iuma.ulpgc.es/users/armas/asignaturas/fundamentos/tutorial/entradas_
y_salidas/index.htm: es un tutorial con información asociada a la E/S del
sistema.
1.- En la siguiente figura se presenta una solución que permite el control de la E/S,
mediante el uso de un controlador DMA.
73
2.- La disposición de la PPI 82C55 en este tipo de sistema se muestra a
continuación:
8 Bus de direcciones
(16 bits)s)
CS A0 A1
Puerto A 8
D0
D7
82C55
Puerto C
8
A1
A0
__
CS
Puerto B 8
__ __
RD WR RESET
74
UNIDAD 4
75
MATERIAL DE
TEMA CONTENIDO SECCIÓN
REFERENCIA
El bus ISA 15-1
Arquitectura de los buses ISA 15-2
El texto Los extendido (EISA) y VESA Local.
4.1 Interfaz del El bus de Interconexión de 15-3
Microprocesadores
bus componentes periféricos (PCI)
Intel, B. B. Brey.
El bus serial Universal (USB) 15-4
Puerto gráfico acelerado (AGP) 15-5
Tabla 6
76
EJEMPLO 4.1.1: Interfaz de bus ISA que contiene un 82C55 accedido
por medio de direcciones de puertos.
SD7 27 D6 PA6 37
___ D7 PA7
IOR 5 18
___ __
IOW 36 RD PB0 19
__
SA0 9 WR PB1 20
SA1 8 A0 PB2 21
RESET 35 A1 PB3 22
6 RESET PB4 23
__
CS PB5 24
PB6 25
SA2 1 19
I1 O1 PB7
SA3 2 18
I2 O2 14
SA4 3 17
PC0
I3 O3 15
SA5 4 16
PC1 16
I4 O4
SA6 5 15
PC2 17
I5 O5
SA7 6 14
PC3 13
I6 O6
SA8 7 13
PC4 12
SA9 8 I7 O7 12
PC5 11
SA10 9 I8 O8
PC6 10
SA11 11 I9
I10 82C55
16L8
SA12
SA13
SA14
SA15
Figura 26. Interfaz de bus ISA decodificada en las direcciones 800H a 803H
77
Arquitectura de los buses ISA Extendido (EISA) y VESA local
Lea la sección 15-2 incluida en el capítulo 15 del libro y revise los ejemplos que allí
se incluyen.
Lea la sección 15-3 incluida en el capítulo 15 del libro y revise los ejemplos que allí
se incluyen.
Procesador
Monitor
Cache
Adaptador/controlador
de memoria
DRAM Audio Imágenes
en
movimiento
Bus PCI
Gráficos
Adaptador Dispositivos
del bus de de E/S
expansión básicos
Graficador
Bus de expansión
78
El Bus Serial Universal (USB)
Lea la sección 15-4 incluida en el capítulo 15 del libro y revise los ejemplos que allí
se incluyen.
Puerto Gráfico Acelerado (AGP)
Lea la sección 15-5 incluida en el capítulo 15 del libro y revise los ejemplos que allí
se incluyen.
EJERCICIOS PROPUESTOS
1.- Explique, mediante el uso de un diagrama de tiempos, cómo se realiza la
operación de escritura en un bus PCI.
2.- Desarrolle una interfaz del bus ISA, similar a la del ejemplo 4.2, pero que sea
decodificada en las direcciones 0820H a 0823H.
EJERCICIOS DE AUTOEVALUACIÓN
CONSULTA EN LA WEB
http://www.des.udc.es/~emilioj/ECm2/ecm2_p2_t2-doc.pdf: presenta de una
manera sencilla la interconexión con buses, toma como ejemplos los buses PCI y
USB.
http://www.die.upm.es/cursos/BUSES1.pdf: incluye información interesante sobre
la evolución de los buses.
79
http://www.redeweb.com/microbit/articulos/7107125.pdf: expone aspectos
relacionados con las aplicaciones del bus PCI.
http://www.terra.es/personal/zyryab/buspci.htm: es un documento que incluye el
diseño de una interfaz PCI para una aplicación.
80
MÓDULO II
Objetivo del Módulo II: Analizar, con sentido lógico y creativo, la evolución de
una familia de microprocesadores y programas que resuelvan problemas
aritméticos.
81
82
UNIDAD 5
FAMILIA DE MICROPROCESADORES
83
Actividades recomendadas para el estudio del contenido de la unidad 5
Proceda a realizar las lecturas indicadas en la tabla 7, las cuales lo guiarán en el
estudio de los temas contentivos de la Unidad 5 y que le permitirán una mejor
comprensión para el logro del objetivo 5.
MATERIAL DE
TEMA CONTENIDO CAPÍTULO
REFERENCIA
Arquitectura de los
80186 / 80188.
5.1 Los microprocesadores
El texto Los Programación de las
80186, 80188 y 80286.
Microprocesadores mejoras de los 80186 16
Intel, B. B. Brey. / 80188.
Introducción al
80286.
Introducción al
microprocesador
80386. Registros
especiales del 80386
Administración de la
memoria del 80386.
Acceso al modo
5.2 Los microprocesadores protegido
El texto Los
80386 y 80486. 17
Microprocesadores
Intel, B. B. Brey. Modo 8086 virtual.
Mecanismo de
paginación de
memoria.
Introducción al
procesador 80486.
Introducción al
procesador Pentium.
Registros especiales
del Pentium.
Administración de la
memoria del Pentium.
5.3 Los microprocesadores El texto Los
Nuevas instrucciones
Pentium y Pentium Pro. Microprocesadores 18
del Pentium.
Intel, B. B. Brey.
Introducción al
microprocesador
Pentium Pro.
Características
especiales del
Pentium Pro.
84
Tabla 7
MATERIAL DE
TÍTULO CONTENIDO CAPITULO
REFERENCIA
Introducción al
5.4 El microprocesador El texto Los microprocesador
Pentium II. Microprocesadores Pentium II. 19
Intel, B. B. Brey. Cambios al software
del Pentium II.
Tabla 7 (Continuación)
Una vez estudiado el contendido del tema 5.1 indicado en la tabla 7, usted estará
en capacidad de responder las siguientes preguntas:
Lea las secciones 16-1 y 16-2 incluida en el capítulo 16 del libro y revise los
ejemplos que allí se incluyen.
Introducción al 80286
Lea la sección 16-4 incluida en el capítulo 16 del libro de texto del curso y revise la
información que allí se presenta.
85
5.2 Los microprocesadores 80386 Y 80486
Una vez estudiado el contendido del tema 5.2 indicado en la tabla 6, usted estará
en capacidad de responder las siguientes preguntas:
Lea las secciones 17-1 y 17-2 incluidas en el capítulo 17 del libro de texto del
curso y revise la información que allí se presenta.
Lea las secciones 17-3, 17-5 y 17-6 incluidas en el capítulo 17 del libro de texto
del curso y revise la información que allí se presenta.
Lea la sección 17-7 incluida en el capítulo 17 del libro de texto del curso y revise la
información que allí se presenta.
86
Block Diagram of Intel`s 80486
Prefetch Buffer
32-bit Internal
and External
Pathways
Single Fiver-Stage
Integer Pipeline
Registers
87
5.3 Los microprocesadores Pentium y Pentium Pro
La diferencia principal entre el microprocesador Pentium y sus antecesores
(80386/80486) se basa en que se le incluyó una memoria caché dual (de datos y
de instrucciones) y una unidad de enteros dual. Posteriormente los diseñadores
de la compañía Intel lanzaron el microprocesador Pentium Pro quien al igual que
su antecesor incluye una caché de nivel dos para datos e instrucciones, adicional
a la caché de nivel 1.
Una vez estudiado el contendido del tema 5.3 indicado en la tabla 7, usted estará
en capacidad de responder las siguientes preguntas:
Lea las secciones 18-1 y 18-2 incluidas en el capitulo 18 del libro de texto del
curso y revise la información que allí se presenta.
Lea las secciones 18-3 y 18-4 incluidas en el capitulo 18 del libro de texto del
curso y revise la información que allí se presenta.
Lea las secciones 18-5 y 18-6 incluidas en el capítulo 18 del libro de texto del
curso y revise la información que allí se presenta.
Una vez estudiado el contendido del tema 5.4 indicado en la tabla 7, usted estará
en capacidad de responder las siguientes preguntas:
88
Introducción al microprocesador Pentium II
Lea la sección 19-1 incluidas en el capitulo 19 del libro de texto del curso y revise
la información que allí se presenta.
Unidad de
Captación y Unidad de Unidad de
decodificación envío y retirada
de ejecución
instrucciones
89
EJEMPLO 5.4.2: uso de arquitectura superescalar en el microprocesador
Pentium II.
90
Desde la cache de
instrucciones
Camino de 32 bytes
16 bytes
Etapa de alineación
IFU3 para los
decodificadores
16 bytes
Secuenciador de
Decodificador 0 Decodificador 1 Decodificador 2
ID1 (Complejas) (Sencillas) (Sencillas)
instrucciones de
microcódigo
6 x 118 bits
Cola de instrucciones Predicción estática
ID2 decodificadas de saltos
3 x 118 bits
3 x 118 bits
RAT Asignador de registros
Al ROB
Etapa IFU1
Capta instrucciones desde la caché de instrucciones, una línea (32 bytes) cada
vez. La unidad <<Siguiente IP>> proporciona la dirección de la siguiente
instrucción a captar, y se capta en el buffer IFU1 la línea de caché que contiene la
instrucción. Esta operación no se calcula sencillamente incrementando el puntero,
porque podría haber un salto o una interrupción pendiente que moviese el puntero
a una posición diferente. Después el contenido del buffer IFU1 pasa IFU2 (16
bytes cada vez).
91
Etapa IFU2
Esta unidad lleva a cabo dos operaciones en paralelo. IFU2 examina los bytes
para determinar los límites de las instrucciones; ésta es una operación necesaria,
debido a que las instrucciones del Pentium son de longitud variable. Si alguna de
las instrucciones es de salto, la unidad pasa la dirección de memoria
correspondiente a la unidad de predicción dinámica de saltos. IFU2 pasa después
el bloque de 16 bytes a IFU3, que es responsable de alinear las instrucciones para
presentarlas al decodificador apropiado.
Etapa IFU3
92
Hay cinco puertos que unen la RS a las cinco unidades de ejecución. El puerto 0
se usa para instrucciones con enteros y coma flotante, con la excepción de las
operaciones sencillas con enteros y la gestión de las predicciones de saltos
erróneas que se asignan al puerto 1. Las unidades de ejecución MMX se asignan
también a estos puertos. Los puertos restantes se utilizan para cargas y
almacenamientos en memoria.
Cuando se completa una ejecución, se actualiza la entrada adecuada del ROB, y
la unidad de ejecución queda disponible para otra microoperación.
Unidad de ejecución
Puerto 4 de almacenamientos
d Desplazador MMX
e
ALU MMX
R Puerto 1 IEU (sencillas) Y JEU
e
s
e
r ALU MMX
v
Multiplicador MMX
a
s IEU (complejas)
FPU (complejas)
Puerto 0 FPU (sencillas)
Unidad de Retiro
93
registros de la arquitectura afectados por esta instrucción, y quita del ROB la
microoperación.
Lea la sección 19-2 incluida en el capítulo 19 del libro de texto del curso y revise la
información y los ejemplos que allí se presentan.
EJERCICIOS PROPUESTOS
1.- Examine la tabla 8 presentada a continuación y establezca diferencias en la
arquitectura de los microprocesadores Intel estudiados en la Unidad 5. Discuta
estas diferencias con el asesor de su centro local.
8 MHz.
134.000 De 3 a 6 veces las
1
80286 1/2/82 10 MHz. 16 Bits 16 Megabytes prestaciones del
Gigabyte
(1.5 micras) 8086
12 MHz.
16 MHz.
33 MHz.
Microprocesador 16 MHz. 275.000 64 Bus capaz de
direccionar 16 bits
16/6/88 16 Bits 4 gigabytes
procesando 32bits
Intel 386 SX® 20 MHz. (1 micra) Terabytes a bajo coste
Microprocesador (1 micra, 0.8 64
Cache de nivel 1
10/4/89 25 MHz. 32 Bits micras en 50 4 Gigabytes
en el chip
Intel 486 DX® MHz.) Terabytes
94
33 MHz.
50 MHz.
16 MHz.
Idéntico en diseño
Microprocesador 20 MHz. 1.185.000 64 al Intel 486DX,
22/4/91 32 Bits 4 Gigabytes pero sin
Intel 486 SX® 25 MHz. (0.8 micras) Terabytes coprocesador
matemático
33 MHz.
60 MHz.
66 MHz.
75 MHz.
90 MHz.
Arquitectura
Procesador 100 MHz. 3,1 millones 64 escalable. Hasta 5
22/3/93 32 Bits 4 Gigabytes veces las
Pentium® 120 MHz. (0.8 micras) Terabytes prestaciones del
486 DX a 33 MHz.
133 MHz.
150 MHz.
166 MHz.
200 MHz.
150 MHz.
Arquitectura de
Procesador 5,5 millones 64 ejecución
27/3/95 180 MHz. 64 Bits 4 Gigabytes dinámica con
PentiumPro® (0.32 micras) Terabytes procesador de
altas prestaciones
200 MHz.
233 MHz.
Procesador 7,5 millones 64 S.E.C., MMX,
Doble Bus Indep.,
7/5/97 266 MHz. 64 Bits 4 Gigabytes
Ejecución
PentiumII® (0.32 micras) Terabytes Dinámica
300 MHz.
95
2.- Elabore una clasificación de los tipos de memoria caché disponibles en los
microprocesadores de la familia Intel.
3.- Explique cómo el modo pipeline alarga el tiempo de acceso para muchos
accesos de memoria en un sistema basado en el microprocesador 80386.
EJERCICIOS DE AUTOEVALUACIÓN
96
CONSULTA EN OTROS LIBROS
CONSULTA EN LA WEB
http://www.ac.uma.es/educacion/cursos/telecomunicacion/FundCompST/mas_mat
erial/prestaciones/evolucion_80x86_n05.pdf: muestra un cuadro en donde
se resume la evolución de la familia de microprocesadores Intel.
2.- La unidad de coma flotante del Pentium II hace uso de nuevos algoritmos que
aceleran la ejecución de las operaciones e incluye nuevos elementos de
hardware dedicados, como son: un multiplicador, un sumador y un divisor.
97
98
UNIDAD 6
Los procesadores del tipo 8086 solo podían realizar operaciones aritméticas con
números enteros. Para los fraccionarios debían utilizar complicados artificios, por
lo que desde el principio se crearon procesadores específicos y costosos para
operaciones aritméticas con números fraccionarios. Puesto que la CPU no hace
otra cosa que cálculos, el estudiante podría estar preguntándose por qué necesita
ayuda para realizarlos. Lo que ocurre es que la CPU solo puede llevar a cabo
operaciones aritméticas básicas con números enteros, para procesar operaciones
con valores fraccionarios, requiere bastante tiempo lo que disminuye su velocidad
considerablemente, debido especialmente a que la CPU tiene que ejecutar
también otras tareas simultáneamente. En aquellos campos de aplicación donde
se requieren muchas posiciones decimales y los errores de redondeo deben
mantenerse tan insignificantes como sea posible, resulta imprescindible la
utilización de un coprocesador aritmético.
99
Actividades recomendadas para el estudio del contenido de la unidad 6
Proceda a realizar las lecturas indicadas en la tabla 9, las cuales lo guiarán en el
estudio de los temas contentivos de la Unidad 6 y que le permitirán una mejor
comprensión para el logro del objetivo 6. Es importante que cumpla esta actividad
antes de proceder a realizar las actividades que se le indican posteriormente.
MATERIAL DE
TEMA CONTENIDO CAPÍTULO
REFERENCIA
. Introducción a la
6.2 La tecnología
tecnología MMX. Tipo de
MMX: Tipos de datos
datos e instrucciones.
y conjunto de
instrucciones.
Una vez estudiado el contendido del tema 6.1 indicado en la tabla 9, usted estará
en capacidad de responder las siguientes preguntas:
100
Formato de datos para el coprocesador aritmético
Lea la sección 14-1 incluida en el capítulo 14 del libro de texto del curso y revise
los ejemplos que allí se incluyen.
Conjunto de instrucciones
Lea la sección 14-3 incluida en el capítulo 14 del libro de texto del curso y revise
los ejemplos que allí se incluyen.
Lea la sección 14-4 incluida en el capítulo 14 del libro de texto del curso y revise
los ejemplos que allí se incluyen. Posteriormente revise el ejemplo 6.1.1, cualquier
duda consulte al asesor del centro local.
.MODEL SMALL
.386
.387
.DATA
REAL1 DD 30.0
REAL2 DD 1.3
TOTAL DD ?
.CODE
.STARTUP
FLD REAL1
FLD REAL2
FADD ST(0),ST(1)
FSTP TOTAL
.EXIT
END
La pila del coprocesador está conformada por 8 registros: ST(0), ST(1), ST(2),….,
ST(7) y se accede a ellos por el número de entrada que ocupa en la pila. En el
caso del programa a analizar solo se utilizan los registros ST(0) y ST(1). En la
figura 32, presentada en la siguiente página, se muestra la operación de la pila del
coprocesador después de la ejecución de cada instrucción del programa:
101
FLD REAL1 FLD REAL2
ST(2) ST(2)
ST(3) ST(3)
ST(2) ST(2)
ST(3) ST(3)
102
Introducción a la tecnología MMX. Tipo de datos e instrucciones
Lea la sección 14-5 incluida en el capitulo 14 del libro de texto del curso y revise
los ejemplos que allí se incluyen.
Acarreo
Acarreo
1111 1111 1111 1111 = FFFFH
103
EJEMPLO 6.2.2: composición de una imagen típica de vídeo mediante el
uso de instrucciones MMX.
104
Alpha Alpha
Azul Azul
Verde Verde
Rojo Rojo
Imagen A Imagen B
1. Desempaquetar
bytes de Ar3 Ar2 Ar1 Ar0 Br3 Br2 Br1 Br0
componentes de
pixel rojo de las Sustracción
imágenes A y B
2. Restar la imagen
r3 r2 r1 r0
B de la imagen
A
X X X X
3.Multiplicar el
resultado por el fade fade fade fade
valor de fade
105
A continuación se presenta el código MMX que ejecuta las operaciones antes
indicadas:
EJERCICIOS PROPUESTOS
1.- La siguiente línea corresponde a una sección de un programa escrito para ser
ejecutado por el coprocesador aritmético:
FST DATA
2.- Describa cómo ocurre la saturación con signo, si las cantidades a ser sumadas
son de un byte.
EJERCICIOS DE AUTOEVALUACIÓN
106
MODEL SMALL
.
.
.
RAD .DD 2.34
.
.
FLD RAD
.
.
.
[Stallings 2000]: destaca las mejoras del diseño los microprocesadores tomando
como ejemplos el microprocesador Pentium II y el Power PC.
2.- Solución:
107
108
MÓDULO III
El módulo III está conformado por las unidades 7 y 8. El estudio de estas unidades
permite desarrollar en el estudiante las competencias necesarias en la solución de
problemas, haciendo uso de los microprocesadores.
Objetivo del Módulo III: Implementar, con sentido lógico y creativo, programas
específicos, haciendo uso de los microprocesadores.
109
110
UNIDAD 7
111
Actividades recomendadas para el estudio del contenido de la unidad 7
Proceda a realizar las lecturas indicadas en la tabla 10, las cuales lo guiarán en el
estudio de los temas contentivos de la Unidad 7 y le permitirán una mejor
comprensión para el logro del objetivo 7.
MATERIAL DE
TEMA CAPÍTULO
REFERENCIA
El texto Los
microprocesadores
Intel, B. B. Brey. 7
Tabla 10
112
7.1 Programación Modular
Una vez estudiado el contendido del tema 7.1 indicado en la tabla 10, usted estará
en capacidad de responder las siguientes preguntas:
N=I+J+K
113
3. Suma a AC el contenido de la posición 203.
4. Memorizar el contenido de AC en la posición 204.
El uso de programas simbólicos hace la vida mucho más fácil, pero es aún
engorroso. En particular, hay que dar una dirección absoluta para cada palabra.
Un procedimiento mejor es emplear direcciones simbólicas. Esto se ilustra en la
figura 7.1d. Cada línea sigue teniendo tres campos. El primero sigue siendo para
la dirección, pero se utiliza un símbolo en lugar de una dirección numérica
absoluta. Algunas líneas carecen de dirección, indicando que la dirección de dicha
línea es uno más que la dirección precedente. Para las instrucciones que hacen
referencia a memoria, el tercer campo contiene también una dirección simbólica.
114
Dirección Contenido
101 0010 0010 0000 0001 101 LDA 201
102 0001 0010 0000 0010 102 ADD 202
103 0001 0010 0000 0011 103 ADD 203
104 0011 0010 0000 0100 104 STA 204
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
115
STACK SEGMENT STACK ; Segmento de pila
DW 64 DUP (?) ; Define espacio en la pila
STACK ENDS
DATA SEGMENT ; Segmento de datos
SALUDO DB "Hola mundo",13,10,"$" ; Cadena
DATA ENDS
CODE SEGMENT ; Segmento de Código
ASSUME CS:CODE, DS:DATA, SS:STACK
116
• Las últimas dos instrucciones del segmento CODE usa la función 4CH de
MS-DOS para regresar el control al sistema operativo. Existen muchas
otras formas de hacer esto, pero ésta es la más recomendada.
SUBMÓDULO: TASK.ASM
NAME TASK
PUBLIC PRINT
EXTRN EXIT:NEAR
117
ENTRADA DB "Entrando a un submodulo....",13,10,"$"
SALIDA DB ".......saliendo del submodulo.",01,07,13,10,"$"
DATA ENDS
CODE SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CODE, DS:DATA
PRINT:
MOVE AH,06H ; Función para borrar pantalla
MOV AL,0 ; todas las líneas
MOV CX,0 ; de 0,0
MOV DH,24D
MOV DL,79D
MOV BH,0 ; atributo en líneas vacías
INT 10H ; Ser vicio de e/s vídeo
MOV DX, OFFSET ENTRADA
MOV AH,09H
INT 21H
MOV DX, OFFSET SALIDA
INT 21H
JMP EXIT ; Regresa al otro modulo
CODE ENDS
END
EJERCICIOS PROPUESTOS
1.- Codifique una rutina en el lenguaje ensamblador del 80286 que permita el
ingreso de caracteres, verificando si se ha oprimido una tecla pero sin esperar
que ocurra. Si esto ha ocurrido entonces devuelve su codificación ASCII en un
registro; en caso contrario, devuelve cero.
2.- Considere una cadena como una secuencia de caracteres terminada por un
byte cero. Se requiere calcular su longitud.
Con base en lo antes planteado, codifique en el lenguaje ensamblador 80286
un algoritmo que permita calcular la longitud de la cadena de caracteres.
EJERCICIOS DE AUTOEVALUACIÓN
1.- Desarrolle un procedimiento llamado SUMS, que permita sumar el valor del
contenido de los registros BX, CX y DX con el contenido de AX. Utilice la
definición de procedimiento cercano (NEAR).
118
DISP PROC NEAR
MOV AH, 2
INT 21H
RET
DISP ENDP
3.- Dada la siguiente sentencia lógica:
X ← P OR Q
Considere que, previo a la ejecución del programa, se han cargado los valores
de las variables Y, Z, U y W en:
119
longitud) y almacenar cada una de ellas en localidades consecutivas de
memoria.
CONSULTA EN LA WEB
http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68HC1
1.html:Contiene información interesante relacionada con el lenguaje
ensamblador.
120
RET
SUMS ENDP
2.- A continuación se muestra el programa:
MODEL TINY
.CODE
STARTUP
MOV BX, OFFSET DISP
MOV DL, ‘O’
CALL BX0
MOV DL, ‘K’
CALL BX
.EXIT
END
ORG 0000 H
XRA A
LXI H, 0100 H
MOV A, M
INX H
MOV D, 00 H
CMP B
JC N1
MOV D, 01 H
N1: MOV A, M
MOV E, 00 H
CMP C
JNZ N2
MOV E, 01 H
N2: MOV A, D
ORA E
OUT 02 H
HLT
END
121
MOV M, A
INX H
122
UNIDAD 8
123
Actividades recomendadas para el estudio del contenido de la unidad 8
1.- Lea los siguientes basamentos teóricos, relacionados con software simulador
de los microprocesadores:
Esta aproximación permite que los alumnos asimilen en relativamente poco tiempo
algunos conceptos básicos de las arquitecturas de computadores, pero tiene la
desventaja de que los alumnos no acaban de comprender los procesos reales que
ocurren en el interior de un microprocesador, puesto que éste es visto como una “caja
negra” de la cual no se sabe nada de su contenido. En otras palabras, con la mayoría de
las herramientas tradicionales, los alumnos pueden entender qué ocurre, pero no cómo
se llega a los resultados de la ejecución. En particular, no suele mostrarse el camino de
datos de las instrucciones. Por otro lado, muchas de estas aplicaciones se diseñaron
hace bastante tiempo, y por ello su interfaz suele ser poco claro, limitándose en la
mayoría de las ocasiones a mostrar los cambios producidos en los distintos registros
internos accesibles por el programador. Pocas permiten mostrar los cambios en el
estado de los elementos internos de un micro de forma visual, a pesar de que una
representación gráfica animada permite ilustrar conceptos tales como la segmentación
(pipelining) de forma sencilla. Además, la mayoría de las aplicaciones existentes deben
ser ejecutadas en un sistema operativo determinado, lo que limita su difusión.
http://www.euitt.upm.es/taee06/papers/SP/p93.pdf
(Consultada el 19.08.2007)
124
Simulador del microprocesador 8085 versión 3 para Windows
http://www.insoluz.com/Sp/Micro/Micro.html
125
Figura 8.1. Simulador del microprocesador 8085 versión 3 para Windows – Proceso de entrada
126
Figura 8.2. Simulador del microprocesador 8085 - Ejecución
127
Figura 8.3. Simulador del microprocesador 8085 – Editor de textos del ensamblador
128
Simulador del microprocesador 8085 versión 1.0.0
129
Descargar
Figura 8.4. Simulador del microprocesador del microprocesador 8085 versión 1.0.0
130
Simulador del microprocesador 8085 Versión 1.0
Este simulador desarrollado por: Ángel Manuel Gómez García, Pedro Mesas García y
José Ignacio Ruiz Núñez, del Departamento de arquitectura y Tecnología de
Computadores E.T.S. Ingeniería Informática, Universidad de Granada, 2001, se
encuentra disponible en forma gratuita en la dirección:
http://www.angelfire.com/or3/micropymicroc/#2
En la figura 8.5 puede apreciarse todos los detalles de cada uno de los
componentes que forman la pantalla principal del simulador de 8085.
131
3.- Consulte el Módulo Práctico y realice todas las actividades que allí se le
indican.
CONSULTA EN LA WEB
http://www.softwareforeducation.com/sms32v50/simulator.htm: encontrará
información de un software simulador de microprocesador para principiantes.
132
V. BIBLIOGRAFÍA
133
134