Microprocesadores - Universidad Nacional Abierta

Anuncio
316
UNIVERSIDAD NACIONAL ABIERTA
Microprocesadores
Manual Instruccional de Apoyo
Sólo para uso instruccional
Sin valor comercial
Ingeniería de Sistemas
CAV
QA76.5 Microprocesadores / [elaborado por] Olga E. Rodríguez Durán. -- Caracas
M52
UNA, 2009
131 P. : il ; 29cm.
ISBN 978-980-236-682-8
Carrera de Ingeniería
En portada: Material Instruccional de apoyo
1. Microprocesadores. 2. Computadoras electrónicas digitales-Programación. 3. Microcomputadoras. 4. Educación a distancia--Módulo de estudio.
I. Universidad Nacional Abierta. II. Rodríguez Durán, Olga E.
Todos los derechos reservados. Prohibida la reproducción total o parcial por
cualquier medio gráfico, audiovisual o computarizado, sin previa autorización
escrita.
Universidad Nacional Abierta
Apartado Postal Nº 2096
Caracas 1.010 A, Carmelitas, Venezuela
Copyright
©
UNA 2009
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
MATERIAL INSTRUCCIONAL DE APOYO
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
Caracas, Mayo 2009
5
Cómo citar este documento:
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de
Apoyo. Caracas: UNA
TABLA DE CONTENDO
I. Introducción
9
II. Objetivo del curso
11
III. Estructura del curso
11
IV. Contenido
13
Módulo I El microprocesador, arquitectura e interfaces
14
Unidad 1: Arquitectura del microprocesador
15
Unidad 2: Interfaz con la Memoria
43
Unidad 3: Interfaz de E/S Básica, interrupciones y E/S
55
controlada por DMA
Unidad 4: Interfaz del bus
74
Módulo II Familia de microprocesadores, el coprocesador
aritmético 68 y la tecnología MMX
81
Unidad 5: Familia de microprocesadores
83
Unidad 6: El coprocesador aritmético y la tecnología MMX
99
Módulo III Programación del microprocesador
109
Unidad 7: Programación en Lenguaje Ensamblador
111
Unidad 8: Implementación de programas en el microprocesador
123
V. Bibliografía
133
7
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
I. INTRODUCCIÓN
El estudio a distancia, e incluso el presencial, en algunos momentos es una forma
de aprendizaje que se basa específicamente en el trabajo personal de los
estudiantes con mayor o menor independencia respecto de la guía directa de los
profesores. El estudiante, al estar provisto de material autoinstruccional, puede de
esta forma acceder a un mayor grado de aprendizaje, puesto que logra profundizar
o aprender según sus ritmos y conocimientos previos. Aquí radica el potencial que
tiene la elaboración del presente Material Instruccional de Apoyo (MIA), el cual
conforma, junto con el plan de curso y el libro Los Microprocesadores Intel, de
Barry B. Brey y el Software Simulador, el paquete instruccional del curso
Microprocesadores. Aunado a ello, el estudiante cuenta con la asesoría en los
centros locales para aclarar dudas, tanto de manera presencial como a través del
correo electrónico.
El Material Instruccional de Apoyo se ha elaborado tomando en cuenta el nivel de
conocimientos que ha obtenido el estudiante en los cursos anteriores,
particularmente en el curso Arquitectura de Computadoras, el cual define las
conductas de entrada necesarias para el estudio de los microprocesadores y la
implementación de programas, para resolver un problema específico. También se
ha considerado la complejidad de cada tópico y el uso del software simulador; este
software apoya el estudio de aquellas unidades en las cuales se realiza la
descripción y programación de un microprocesador comercial.
El Material Instruccional de Apoyo se ha organizado atendiendo a la estructura del
curso. El Módulo I: El Microprocesador, Arquitectura e Interfaces, consta de
cuatro unidades. El Módulo II: Familia de Microprocesadores, el Coprocesador
Aritmético y la Tecnología MMX, incluye dos unidades. Por su parte, el Módulo III,
Programación del Microprocesador, se compone del estudio de dos unidades.
Para cada módulo se presenta una breve introducción, el objetivo del módulo y
las unidades que lo componen. Por su parte, cada unidad incluye una breve
presentación, el objetivo de la unidad, una sinopsis del contenido y una serie de
actividades que el estudiante debe realizar para complementar su estudio; dentro
de estas actividades se hace énfasis en la presentación de aspectos teóricos,
ejemplos, ejercicios resueltos, ejercicios de autoevaluación, consultas a material
bibliográfico y consultas a direcciones electrónicas en la Web. Cabe destacar que
algunas de estas direcciones pueden no estar activadas al momento de la
consulta, por lo que se recomienda al estudiante acceder a otras direcciones
relativas al tema a través de un buscador (Browser) en la Web.
El estudio del curso Microprocesadores exige el uso simultáneo del Plan de
Curso y el paquete instruccional. Estos dos componentes se interrelacionan para
proporcionarle una visión general del curso y las herramientas necesarias para el
logro del objetivo terminal.
A lo largo de la lectura de este material encontrará diversos iconos, cuyo
significado se explica a continuación.
9
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
AMPLIACIÓN DE CONOCIMIENTOS: está dirigido al estudiante que
desea profundizar más en sus conocimientos en determinado tema.
ATENCIÓN: se presenta cuando se quiere hacer una aclaratoria, una
advertencia o una reflexión sobre algún aspecto del contenido.
CASO DE ESTUDIO: es la exposición de una situación muy similar a la
realidad a la cual se le dará solución.
CONSULTA EN LA WEB: indica referencias a páginas Web.
CONSULTA EN OTROS LIBROS: se refiere a un llamado a consulta en
libros que no figuran como textos de carácter obligatorio para el curso.
EJERCICIOS Y ACTIVIDADES PROPUESTAS: son ejercicios o
actividades sugeridas a manera de práctica sobre algún tema de la unidad.
EJERCICIOS DE AUTOEVALUACIÓN: ejercicios que debe realizar el
estudiante y posteriormente verificar contra los resultados aquí presentados.
EJEMPLO: es la exposición de un caso alusivo al tema en cuestión y su
resolución.
RECORDATORIO: indica algún aspecto sobre el cual debe hacerse
énfasis, relacionado con los conocimientos adquiridos previamente por el
estudiante.
10
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
II. OBJETIVO DEL CURSO
Implementar soluciones utilizando los microprocesadores para resolver problemas
específicos, con sentido lógico y creativo.
III. ESTRUCTURA DEL CURSO
El curso Microprocesadores consta de 8 unidades, que incluyen los temas que
conforman el contenido del curso, según se aprecia en la siguiente figura:
Software Simulador de un
microprocesador
Ejemplos de software
simulador de
microprocesadores
específicos
El microprocesador y su
arquitectura
UNIDAD 8:
Implementación de
Programas en el
Microprocesador
UNIDAD 1:
Arquitectura del microprocesador
Direccionamiento de
memoria
Paginación de memoria
Modos de
direccionamiento.,
Direccionamiento de la
pila de memoria
Uso del software simulador
Instrucciones
Lenguaje ensamblador,
Lenguaje de máquina
Mnemónicos, Conjunto de
instrucciones de un
microprocesador
específico
Dispositivos de memoria
UNIDAD 7:
Programación
del
Microprocesador
UNIDAD 2: Interfaz
con la Memoria
Programación modular
MICROPROCESADORES
02/05/2008 - v27
Conjunto de instrucciones
y programación del
coprocesador aritmético.
Interfaz de memoria para
los microprocesadores de
8, 16, 32 y 64 bits
RAM dinámica
Codificación de
algoritmos en un lenguaje
ensamblador específico
Formato de datos y
arquitectura del
coprocesador aritmético
Decodificación de la
dirección
UNIDAD 6 : El
Coprocesador
Aritmético y la
Tecnología MMX
UNIDAD 3: Interfaz
de E/S Básica,
Interrupciones y
E/S Controlada por
DMA
Interfaz básica de E/S
Interrupciones
Acceso directo a la
memoria
E/S controlada por DMA
La tecnología MMX: Tipos
de datos y conjunto de
instrucciones
Los microprocesadores
80186, 80188 y 80286
Los microprocesadores
80386 y 80486
Los microprocesadores
Pentium y Pentium Pro.
El bus ISA, Arquitectura
de los buses ISA
extendido (EISA) y
(VESA) Local
UNIDAD 4: Interfaz
del Bus
UNIDAD 5: Familia
de
Microprocesadores
El bus de interconexión
de los componentes
periféricos (PCI).
El bus serial universal
USB
Puerto grafico acelerado
(AGP)
El microprocesador
Pentium II
11
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
IV. CONTENIDO
MÓDULO I
EL MICROPROCESADOR, ARQUITECTURA E INTERFACES
En este módulo se estudia la configuración interna del microprocesador visible al
programador, la manera como se direcciona la memoria y como funciona cada
instrucción en la familia de los microprocesadores Intel. El establecimiento de las
interfaces apropiadas para la conexión de los sistemas de memoria y de los
dispositivos de entrada-salida (E/S) también son objetos de estudio en este
módulo. Finalmente se profundiza en la implementación de interfaces sencillas
que se conectan a los sistemas de bus ubicados en la computadora.
Objetivo del Módulo I: Resolver con sentido lógico y creativo, problemas
inherentes a la arquitectura del microprocesador y al establecimiento de interfaces.
El módulo I está estructurado en cuatro unidades:
Unidad 1: Arquitectura del microprocesador.
Unidad 2: Interfaz con la memoria.
Unidad 3: Interfaz de E/S básica, interrupciones y E/S controlada por DMA.
Unidad 4: Interfaz del Bus.
13
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 1
Arquitectura del microprocesador
El estudio del modelo de programación de los microprocesadores, puede
realizarse través de la descripción de la arquitectura interna visible para el
programa. Esta arquitectura comprende los registros que son utilizados por el
programador en el desarrollo de aplicaciones, mediante instrucciones que hacen
uso de ellos. En la Unidad I se presentan los modelos de programación de los
microprocesadores 8086 al Pentium II, pertenecientes éstos a la familia Intel, así
como su modo de funcionamiento en modo real y protegido.
Las características de diseño de los microprocesadores establecen sus
capacidades y limitaciones. Por ejemplo, es conveniente para el programador que
el microprocesador tenga diversos modos de direccionamiento, ya que eso le
permitirá desarrollar software más eficiente. La Unidad I presenta los modos de
direccionamiento de datos, de la memoria y de la pila, para la familia de
microprocesadores Intel. Finalmente se incluye en esta unidad el estudio de las
instrucciones con que cuentan los miembros de esta familia. Este estudio
contempla entre otros aspectos la sintaxis del lenguaje ensamblador y algunas de
sus directivas, así como también la función de cada instrucción, lo que permite
sentar bases para la programación de los microprocesadores en unidades
posteriores.
Objetivo de la Unidad 1: Aplicar los conceptos de arquitectura de los
microprocesadores en la descripción de su estructura y/o funcionamiento, dada o
no una situación.
Contenido de la Unidad 1: el contenido de la unidad contempla el estudio de los
siguientes temas:
1.1 El microprocesador y su arquitectura.
.2 Modos de direccionamiento.
.3 Instrucciones.
15
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Actividades recomendadas para el estudio del contenido de la unidad 1
Proceda a realizar las lecturas indicadas en la tabla 1, las cuales lo guiarán en el
estudio de los temas contentivos de la Unidad 1 y le permitirán una mejor
comprensión para el logro del objetivo 1. Es importante que cumpla esta actividad
antes de proceder a realizar las actividades que se le indican posteriormente.
TEMA
MATERIAL DE
REFERENCIA
CONTENIDO
CAPITULO
Arquitectura interna
del microprocesador.
1.1 El microprocesador y
su arquitectura
Direccionamiento de
memoria en modo
real.
El texto Los
Microprocesadores
Introducción al
Intel, B. B. Brey.
direccionamiento de
memoria en modo
protegido.
2
Paginación de
memoria.
Modos de
direccionamiento de
datos.
1.2 Modos de
direccionamiento
Modos de
El texto Los
direccionamiento de
Microprocesadores la memoria del
Intel, B. B. Brey.
programa.
Modos de
direccionamiento de
la memoria de la pila.
Instrucciones para
movimiento de datos.
1.3 Instrucciones
El texto Los
Instrucciones
Microprocesadores
aritméticas y lógicas.
Intel, B. B. Brey.
Instrucciones de
control de programa.
Tabla 1. Temas de la Unidad 1
17
3
4
5
6
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
1.1 El microprocesador y su arquitectura
El microprocesador es la parte de la computadora diseñada para llevar a cabo o
ejecutar los programas, viene a ser el cerebro de la computadora. Es un chip, un
tipo de componente electrónico en cuyo interior existen millones de elementos
llamados transistores.
El programador de un microprocesador debe conocer el conjunto de recursos de la
Unidad Central de Proceso (siglas en inglés, CPU) que son manejables desde las
instrucciones de un programa (modelo de programación) para poder hacer un
mejor uso de éste. El modelo de programación visible para el programador está
constituido por el conjunto de registros de que dispone el microprocesador:
registros de propósito general, registros de propósito específico y registro de
segmentos.
Una vez estudiado el contendido del tema 1.1 indicado en la tabla 1, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Qué es el modelo interno de programación de un microprocesador?
 ¿Por qué se puede afirmar que el modelo de programación de los
microprocesadores Intel, es visible para el programa?
 ¿Cuáles microprocesadores Intel contienen registros de 8 y 16 bits?
 ¿Cuál es la función de los registros de propósito específico para los
microprocesadores Intel?
 ¿Cuál es la función y propósito de los registros de segmento: CS, DS, ES
y SS?
Arquitectura interna del microprocesador
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 1.1.1: Modelo de programación del microprocesador 8080
Intel
En la figura 1 mostrada a continuación se presenta el modelo de programación
de este microprocesador:
Registro acumulador
A
Registros de propósito general
B
D
H
C
E
L
Registros de propósito específico
SP (Stack Pointer)
PC (Program Counter)
Flags (banderas)
Figura 1. Modelo de programación del microprocesador Intel 8080
El cual dispone de los siguientes registros:
 Un registro acumulador de 8 bits (también llamado registro A).
 Seis registros de propósito general de 8 bits (B, C, D, E H y L.), que con
algunas instrucciones pueden usarse como registros pares de 16 bits (B-C,
D-E y H-L).
 Dos registros de 16 bits de propósito específico: un puntero de Stack (SP,
siglas en inglés de Stack Pointer) y un contador de programa (PC, siglas en
inglés de Counter Program).
 Cinco flags (banderas) de 1 bit cada una que poseen la unidad (aritméticológica) y cuyo contenido es modificado luego de la ejecución de numerosas
instrucciones lógicas y aritméticas. Estas flags son: S, C, A, P y C.
19
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
EJEMPLO 1.1.2: Modelo de programación del microprocesador Zilog Z80
El modelo de programación de este microprocesador es presentado en la
figura 2.
Registros del banco principal
A
B
D
H
Registros del banco alternativo
F
C
E
L
A´
B´
C´
H´
F´
C´
E´
L´
Registros Índice
IX
IY
Registros de pila y contador del programa
SP
PC
Registro de interrupciones y de refresco de memoria
I
R
Figura 2. Modelo de programación de microprocesador Zilog Z80.
20
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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:
 Hay 2 grupos de registros de propósito general. Cada grupo contiene 6
registros de 8 bits, que pueden ser usados individualmente como registros
de 8 bits o en parejas como registros de 16 bits. Un grupo se llama BC, DE
y HL y el otro BC’, DE’ y HL’. El programador puede cambiar a cualquiera
de los dos grupos de registros con una simple instrucción de intercambio.
 Registros de acumuladores y banderas: el Z80 tiene 2 registros
acumuladores independientes de 8 bits (comúnmente llamados A y A´) y 2
registros de banderas asociados a los 2 acumuladores (F y F´). Los
acumuladores almacenan los resultados de operaciones aritméticas o
lógicas de 8 bits, y los registros de banderas indican condiciones para
operaciones de 8 y 16 bits. Estas banderas son S, Z, A, P, N y C. El
programador puede usar el par acumulador-bandera que desee y puede
cambiar al otro par con una simple instrucción de intercambio.
 Registros de propósito específico:
- Dispone del registro Program Counter (PC) de 16 bits, que contiene la
dirección de la instrucción que se debe buscar en la memoria.
- El Stack Pointer (SP) de 16 bits, el cual contiene la dirección del tope
actual de la pila.
- Dos Registros Índice (IX, IY), son dos registros independientes que
contienen los 16 bits de direcciones que se usan en modos de
direccionamiento indexado. En este modo, un registro índice se usa
como base para apuntar a una región en memoria en la cual el dato
será almacenado o recuperado.
- El Registro de Interrupciones (I): el Z80 puede operar en un modo
donde cualquier posición de memoria puede lograrse en respuesta de
una interrupción. Este registro se usa para almacenar los 8 bits más
significativos de la dirección, mientras el periférico que interrumpe
provee los 8 bits menos significativos. Esto da la posibilidad de que las
rutinas de interrupción sean localizadas dinámicamente en cualquier
parte de la memoria con un mínimo tiempo de acceso a la rutina.
- El Registro de Refresco de Memoria (R), de 8 bits, que almacena el
bloque de memoria a cuyo refresco se va a proceder.
ATENCIÓN: el texto utilizado para el estudio del curso
Microprocesadores se basa en los modelos fabricados por la compañía
Intel; sin embargo, se utiliza en este ejemplo el microprocesador Z80
desarrollado por la compañía Zilog, con el objeto de que el alumno amplíe
sus conocimientos.
21
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
EJEMPLO 1.1.3: uso de los registros de segmento para direccionar el
almacenamiento de un programa de aplicación en el sistema DOS de
memoria.
El bus del PC XT contiene 20 líneas; estas líneas contienen las direcciones que
identifican la parte del computador que comunica. Las direcciones son de dos
tipos; unas se refieren a direcciones de memoria; otras a direcciones de puertos
de E/S. Con los datos anteriores, resulta evidente que el PC XT puede manejar
1.048.576 direcciones (220). Sin embargo, el microprocesador 8088 presente en el
XT dispone de registros de 16 bits que solo pueden albergar 65.536 posiciones
(216), muy alejado del valor anterior. Para resolver el problema, se utilizan las
direcciones segmentadas, compuestas por dos palabras de 16 bits que se
componen para formar una dirección de 20 bits (esta dirección es denominada
también como dirección absoluta). Para generar estas direcciones, el 8088
dispone de cuatro registros de segmento: CS, SS, DS y ES.
Visualice en la figura 3 como se utilizan los registros de segmento para señalar
las direcciones de inicio de los diversos módulos de un programa cargado en
memoria, dentro del espacio de memoria direccionable con 20 bits (00000-FFFFF
H).
22
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
FFFFF H
Registros de puntero
Segmento de código
IP
Fin de la pila
SP
Segmento de pila
BP
Registros de segmento
CS
Segmento de datos
SS
DS
Segmento extra de
datos
ES
00000 H
Figura 3. Programa de aplicación cargado en un sistema de memoria DOS
Se observa en la figura 3 cómo el registro de segmento de código (CS) referencia
el segmento que contiene las instrucciones. El registro de pila SS referencia el
segmento que contiene una pila visible para el usuario. Los demás registros de
segmento (DS, SS) permiten referenciar hasta dos segmentos de datos distintos.
ATENCIÓN: los aspectos concretos de almacenamiento dependen de la
plataforma, no existe un modelo único.
Direccionamiento de memoria en modo real
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
P2
1200
250
P1
Dirección lógica
Dirección absoluta
400
Po
12
+
400+12
Po
1200
P2
Figura 4. Esquema de direccionamiento de memoria en modo real
ATENCIÓN: una dirección lógica indica una posición relativa al
comienzo de un programa, las instrucciones de programas contienen solo
direcciones lógicas. Una dirección física (absoluta) es, por supuesto, la
posición actual en la memoria principal. Cuando el procesador ejecuta un
proceso, automáticamente convierte las direcciones lógicas en físicas.
Direccionamiento de memoria en modo protegido
Lea la sección 2-3 incluida en el capítulo 2 del libro de texto del curso y revise los
ejemplos que allí se incluyen.
EJEMPLO 1.1.4: Manejo de memoria en modo protegido.
En la ejecución de un programa en un sistema basado en microprocesador 80386,
se requiere en un instante dado almacenar datos en la memoria, bajo estas
24
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
condiciones el contenido del registro de segmento de datos DS es el mostrado en
la figura 5:
0000000000001
0
00
Solicita nivel de privilegio 00
Elige descriptor en la tabla de descriptores
globales
Selecciona descriptor número 1
Figura 5. Contenido del registro de segmento DS
Y el formato del descriptor número 1 contenido en la tabla de descriptores
globales es el siguiente:
Ocho bytes del
descriptor
7
0000 0000
0000 0000
6
5
1111 0010
0001 0000
4
3
0000 0000 0000 0000
2
1
0000 0000 1111 1111
0
Figura 6. Formato del descriptor número 1
El inicio y fin del segmento de datos será el siguiente:
Base =
Límite =
Final =
Final =
00100000 H
000FF H
Base + Límite = 00100000 H + 000FF H
001000FF H.
EJERCICIO 1.1.4. Con base en el ejemplo 1.1.4, en el cual se aplica el
manejo de memoria en modo protegido, se pide que usted realice lo
siguiente y lo discuta con su asesor del centro local:


Responda: ¿cuáles localidades de memoria utilizará el
microprocesador para almacenar el segmento de datos?
Describa de qué manera el microprocesador controla el acceso
del segmento de memoria.
25
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Paginación de memoria
Se recomienda la lectura de la sección 2-4 incluida en el capítulo 2 del texto del
curso, con el fin de favorecer los conocimientos básicos que se requieren para la
comprensión del tema.
EJEMPLO 1.1.5: Combinación de los mecanismos de segmentación y
paginación disponibles en el Intel Pentium II.
El Pentium II incluye hardware, tanto para segmentación como para paginación.
Cuando ambos mecanismos están activados, se puede ver la memoria
segmentada paginada. La segmentación define particiones lógicas de memoria en
el control de acceso. Por su parte, con la paginación se gestiona la asignación de
memoria dentro de las particiones.
Cuando se utiliza segmentación las direcciones utilizadas en los programas son
direcciones virtuales (llamadas también direcciones lógicas); estas direcciones
constan de una referencia al segmento de 16 bits y un desplazamiento de 32 bits.
El mecanismo de traducción de dirección para la segmentación implica hacer
corresponder una dirección lógica con la dirección lineal. El siguiente paso es la
traducción de una dirección lineal a una dirección física de 32 bits.
26
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
La figura 7 ilustra la combinación de los mecanismos de segmentación y
paginación disponibles en el Intel Pentium II.
Dirección
lógica
Segmentación
Paginación
Dirección lineal
D
e
s
p
l
a
z
a
m
i
e
n
t
o
+
Dir.
Página
Desplazamiento
Dirección
física
+
S
e
g
m
e
n
t
o
Directorio
de páginas
Tabla de
páginas
Memoria
principal
Tabla de
segmentos
Figura 7. Gestión de memoria en el Pentium II
ATENCIÓN: Las particiones son bloques de memoria que pueden tener
tamaño fijo o tamaño variable.
27
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
REGISTROS DE 8
BITS
REGISTROS DE 16
BITS
REGISTROS DE 32
BITS
AH
AL
BH
BL
CH
CL
DH
DL
AX
BX
CX
DX
SP
BP
DI
SI
CS
ES
DS
SS
FS
GS
EAX
EBX
ECX
EDX
ESP
EBP
EDI
ESI
*
* Nota: Son utilizados por algunas instrucciones MOV, así como también por las instrucciones
PUSH y POP.
Tabla 2. Registros disponibles en microprocesadores de 8, 16 y 32 bits
Una vez estudiado el contendido indicado en la tabla 1, usted estará en capacidad
de responder las siguientes preguntas:
 ¿Cuáles son las principales ventajas de los siguientes direccionamientos
de datos: inmediato, directo, indirecto, registro, indirecto con registro?
 ¿Cuáles son los tres modos de direccionamiento de memoria de
programa?
 ¿Cuáles registros controlan la memoria de la pila?
Modos de direccionamiento de datos
Lea la sección 3-1 incluida en el capítulo 3 del texto. Posteriormente examine los
ejemplos allí incluidos.
28
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 1.2.1: Modos de direccionamiento del Pentium II
En el mecanismo de traducción de direcciones del Pentium II presentado en la
figura 8, se obtiene una dirección lineal que pasa por un mecanismo de
traducción de páginas para producir una dirección física. En el ejemplo que se
presenta a continuación se ignora el paso de paginación, ya que éste es
transparente para el repertorio de instrucciones y para el programador.
El Pentium II está equipado con diversos modos de direccionamiento, ideados
para permitir la ejecución eficiente de lenguajes de alto nivel. En la figura 8 se
muestra el hardware involucrado y, en la Tabla 3, los modos de
direccionamiento disponibles en este microprocesador.
29
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Registro de segmento
SS
Selector
GS
Selector
FS
Selector
ES
Selector
DS
Selector
CS
Selector
Registro base
Registro índice
X
Escala: 1,2 u 8
Desplazamiento (en
la instrucción, 0, 8 ó
32 bits)
+
Registros descriptores
Derechos de SS
acceso
Derechos de GS
acceso
Límite de FS
Derechos
acceso
Límite de ES
Derechos
Dirección
base
acceso
Derechos
de DS
Límite
Dirección base
acceso
Derechos
Límite de CS
Dirección
base
acceso
Límite
Dirección base
Límite
Dirección base
Dirección base
Dirección
efectiva
Dirección lineal
+
Figura 8. Cálculos en el modo de direccionamiento del Pentium II
30
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MODO
Inmediato
Registro
Con
desplazamiento
Base
Base con
desplazamiento
Índice escalado
con
desplazamiento
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
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
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,
LA = (SR) + A se puede encontrar en pocas máquinas. En
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
(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
LA = (SR) + la utilización por un compilador para apuntar
(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
general excepto el ESP. Este modo es muy
LA = (SR) + (I)
conveniente para indexar matrices.
xS+A
31
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MODO
Base con índice y
desplazamiento
Base con índice
escalado y
desplazamiento
Relativo
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
LA = (SR) +
manejar una matriz bidimensional; en este
(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
contenido
del registro
base
y
el
LA = (SR) + (I)
desplazamiento. Permite la indexación
x S + (B) + A
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
LA = (PC) + A siguiente instrucción, se emplea en
instrucciones de transferencia del control
(control de flujo).
LA = dirección lineal
SR = Registro de segmento
A = Contenido de un campo de
dirección de la instrucción
I = Registro índice
(X)
PC
R
B
S
= contenido de X
= Contador de programa
= Registro
= Registro base
= Factor de escala
Tabla 3 Modos de direccionamiento del Pentium II.
EJERCICIO 1.2.1 Elabore una tabla similar a la Tabla 3 en la cual se
incluyan los modos de direccionamiento disponibles en el
microprocesador Intel 8080, posteriormente establezca una comparación
entre ambas tablas y reflexione sobre la ventaja que representa para el
programador el disponer de una diversidad de modos de
direccionamiento. Discuta esta actividad con sus pares y presente sus
resultados al asesor del centro local.
Modos de direccionamiento de la memoria del programa
Lea la sección 3-2 incluida en el capítulo 3 del texto. Posteriormente examine los
ejemplos allí incluidos.
32
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
EJEMPLO 1.2.2: uso de la pila cuando se invoca una función en lenguaje
En el lenguaje C normalmente se utiliza la pila para pasar parámetros entre
funciones. Antes de realizar la llamada a una función se insertan en la pila todos
los parámetros luego se invoca a la función y ésta lee los parámetros de la pila.
Cuando se realiza la invocación de una función utilizando las instrucciones CALL y
RET, la estructura típica de la pila es la que se muestra en la figura 9. En la figura
puede apreciarse el uso de la pila para el paso de parámetros entre funciones, en
el lenguaje C de alto nivel.
Segmento de pila
Final de la pila
(valor inicial de ESP)
Variables locales
pasadas al
procedimiento llamado
EBP apunta a la
dirección de la
instrucción de
retorno
Parámetros pasados
al procedimiento
llamado
Dirección de la instrucción de
retorno
Registro EBP
Registro ESP
Tope de la pila
Figura 9. Uso de la pila cuando se invoca una función en lenguaje C
33
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
EJERCICIO 1.2.3 La memoria de pila juega un papel importante en
todos los microprocesadores, ya que contiene datos y almacena
direcciones de retorno para procedimientos. Las instrucciones PUSH y
POP permiten almacenar y recuperar datos de la memoria de la pila.
Por ejemplo, la instrucción PUSH BX permite almacenar el contenido del
registro BX en la pila. Aplique el direccionamiento de memoria en modo
real, en la ejecución de la instrucción PUSH BX, y explique cómo se
realiza el almacenamiento del contenido del registro BX en la pila.
Asuma para ello los siguientes valores: SS = 0300H; SP = 07FEH y BX
= 1234H. Consulte al asesor del centro local sobre los resultados
obtenidos.
1.3 INSTRUCCIONES
Estas Instrucciones pueden ser representadas mediante secuencias de ceros y
unos. Tales secuencias no son cómodas de manejar, por ello se emplean
nombres simbólicos o nmónicos para representarlas, tales como MOV, ADD, INC,
etc. El conjunto completo de dichos nombre simbólicos y reglas para su uso
constituyen un lenguaje de programación, referido generalmente como lenguaje
ensamblador.
Los programas escritos en lenguaje ensamblador pueden ser traducidos
automáticamente a una secuencia de instrucciones de máquina, mediante un
programa llamado ensamblador. Las instrucciones de máquina tienen una longitud
variable desde instrucciones de un byte a instrucciones de 12 bytes. El formato
para representar estas instrucciones varía de una arquitectura a otra dependiendo
del microprocesador a utilizar y del modo en que el mismo opere.
Una vez estudiado el contendido indicado en la tabla 1, usted estará en capacidad
de responder las siguientes preguntas:
 ¿Qué es una directiva de lenguaje ensamblador?
 ¿Para qué son empleadas las directivas PROC y ENDP?
 Un microprocesador 80386 opera en el modo protegido y utiliza un
registro de 32 bits, ¿Es necesario que el código de operación esté
precedido del prefijo de tamaño de registro? Razone su respuesta.
 ¿Cuál es la función de la directiva .MODEL?
34
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Instrucciones para movimiento de datos
Lea la el capítulo 4 incluido en el texto y revise los ejemplos allí expuestos.
EJEMPLO 1.3.1: Instrucción 668BEC H convertida a su forma de
lenguaje ensamblador, cuando es ejecutada en un microprocesador
80386 o posteriores, operando en el modo de instrucciones de 16 bits.
El microprocesador opera en el modo de instrucciones de 16 bits
La instrucción consta de tres bytes: 66 H, 8B H
instrucción en binario será el siguiente:
Byte 1 (66 H)
0
1
1
0
0
y EC H y el formato de la
Byte 2 (8B H)
1
1
0
1
0
0
0
1
0
1
1
W
D
Prefijo de tamaño de registro
Código de operación
Byte 3 (E8 H)
1
1
MOD
1
0
1
REG
0
0
0
R/M
El byte 1: selecciona operandos de registro de 32 bits.
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:
-
REG = 101, que corresponde al registro de 32 bits EBP (operando destino)
R/M = 000, que corresponde al registro de 32 bits EAX (operando fuente)
35
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
ATENCIÓN: el ejemplo 1.3.1 está incluido en el texto Los
microprocesadores Intel, pero es explicado con más detalle en el presente
material.
EJEMPLO 1.3.2: uso de las directivas ORG, DB, DW y de la instrucción
MOV para la transferencia de datos.
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
EJERCICIO 1.3.1 Analice el programa mostrado en el ejemplo
1.3.2 y realice lo siguiente:



Describa la función que realizan las directivas ORG, DB y DW
Mencione el tipo de direccionamiento de datos utilizado
Describa la forma como opera cada una de las instrucciones
MOV
Compare su respuesta con la de otro estudiante y consulte al
asesor del centro local.
Instrucciones aritméticas y lógicas
Lea el capítulo 5 incluido en el texto, y posteriormente examine los ejemplos allí
presentados.
36
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 1.3.3: uso de las instrucciones aritméticas ADD (suma) y ADC
(suma con acarreo).
ORG 1000 H
dato1_l
dato1_h
dato2_l
dato2_h
ORG 2000 H
MOV
ADD
MOV
ADC
END
DW
DW
DW
DW
0FFFF H
0015 H
0011 H
0002 H
AX, dato1_l
AX, dato2_l
BX, dato1_h
BX, dato2_h
Note que la segunda suma es realizada usando un ADC y no un ADD. De esta
manera, si en el ADD se produce un acarreo, éste es sumado junto a dato1_h
y dato2_h durante el ADC, produciendo el resultado correcto.
EJEMPLO 1.3.4: uso de instrucciones del lenguaje ensamblador para
codificar la estructura de control IF THEN ELSE del lenguaje Pascal.
No existe una instrucción en el lenguaje ensamblador que sea capaz de hacer
lo que hace la estructura IF-THEN-ELSE de Pascal. Sin embargo, es posible
emularla mediante la combinación de instrucciones CMP y saltos condicionales
e incondicionales.
Por ejemplo, para simular el siguiente código de Pascal:
IF AL = 4 THEN
BEGIN
BL = 1;
CL = CL + 1;
END;
Se debe comenzar calculando la condición del IF, en este caso, comparar AL
con 4. Eso se logra la instrucción CMP AL, 4.
Esta instrucción alterará los flags y, en particular, interesa ver al flag Z, ya que
si dicho flag está en 1, implica que al restar AL con 4, el resultado dio 0, por lo
que AL tiene que valer 4. Entonces, si esa condición es verdadera, se debería
ejecutar las instrucciones que están dentro del THEN. Si no, se evita
ejecutarlas.
37
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Una solución que permite esto es la siguiente:
Then:
Fin_IF:
CMP AL, 4
JZ
Then
JMP Fin_IF
MOV BL, 1
INC CL
HLT
;(1)
;(2)
;(3)
;(4)
;(5)
;(6)
Analizando el código se puede establecer lo siguiente para cada uno de los
comentarios:

Si la comparación en (1) establece el flag Z en 1, se produce el salto en (2)
haciendo que la ejecución continúe en la etiqueta Then. Ahí, se ejecutan las
instrucciones (4) y (5) que hacen lo que se encuentra en el THEN del IF y
continúa la ejecución en la instrucción apuntada por la etiqueta Fin_IF

Si el flag Z quedó en 0 en (1), el salto en (2) no se produce, por lo que la
ejecución continúa en la próxima instrucción, el JMP en (3), que saltea las
instrucciones y continúa la ejecución en la instrucción apuntada por la
etiqueta Fin_IF , que señala el final del IF.

En el final del IF, se ejecuta un HLT (6) para terminar la ejecución del
programa.
Instrucciones de control de programa
Lea el capítulo 6 incluido en el texto y posteriormente revise los ejemplos allí
presentados.
EJERCICIOS PROPUESTOS
A continuación se le presentan una serie de ejercicios para que los resuelva. Se
le sugiere comentar la solución de los mismos con sus pares y/o el asesor del
centro local.
1.- Aplique los conceptos de modelo de programación estudiados y describa el
modelo interno de programación de los microprocesadores de 16 y 32 bits de
la familia Intel, utilizando el mismo esquema presentado en los ejemplos 1.1.1
y 1.1.2.
2.- Realice el ejemplo 1.1.4 utilizando el sistema de codificación hexadecimal para
especificar el contendido del descriptor.
38
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
1.- Responda con sus propias palabras los siguientes cuestionamientos:
a) ¿Cuál es la función de un registro de segmento en el direccionamiento de
memoria en modo protegido?
b) ¿Cuál es la función del TLB (buffer de referencia de traducción), ubicado
dentro del microprocesador 80486?
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?
3.- Represente en forma gráfica un descriptor que describa un segmento de
memoria bajo las siguientes condiciones:



Inicie en la localidad 03000000 H y termine en la localidad 05FFFFFF H.
El segmento de memoria es un segmento de datos que crece hacia arriba
en el sistema de memoria y puede ser escrito.
El descriptor es para un microprocesador 80386.
4.- Genere en forma gráfica la dirección de memoria a la cual accede la instrucción
MOV AL,[1234 H] con el modo de operación real (suponga para ello
que DS = 0200 H y que en la localidad de memoria 3134 H se encuentra
almacenado el valor 8A H).
5.- Desarrolle una secuencia corta que incluya instrucciones de transferencia de
datos y lógicas, la cual permita establecer en 1 los cinco bits del extremo
derecho de DI, sin cambiar los bits restantes de éste. La secuencia guardará el
resultado en SI, con el objeto de no cambiar el contenido original de DI.
39
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
[Lameda 1984]: presenta el estudio de microprocesadores de 8 bits.
[Sayers 1995]: trata arquitecturas prácticas de microprocesadores de 8, 16 y 32
bits.
[Stallings 2000]: incluye material sobre: la organización de los registros visibles al
usuario (modelo de programación), los modos de direccionamiento y el repertorio
de instrucciones.
[Tanenbaum 2000]: presenta los formatos de las instrucciones, los modos de
direccionamiento y los tipos de instrucciones. También presenta el nivel del
lenguaje ensamblador.
ATENCIÓN: además se encuentra información sobre la arquitectura del
microprocesador en cualquiera de los textos recomendados
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
1.- A continuación las respuestas:
a) El registro de segmento contiene un selector que elige a un descriptor de la
tabla de descriptores ya sea local, o global, también contiene el nivel de
privilegio solicitado.
b) El TLB almacena las 32 últimas traducciones de la dirección lineal a la física
de la unidad de paginación.
2.- El inicio y fin del segmento será el siguiente:
Base = Inicio = A00000 H
Final = Base + limite = A00000 + 1000 h
Final = A01000 H
3.- Utilizando el formato presentado el ejemplo 1.3:
Ocho bytes del
descriptor
7
0000 0011
1001 0000
6
5
1001 0010
0000 0000
4
3
0000 0000 0000 0000
2
1
0010 1111 1111 1111
0
41
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
4.- A continuación se genera la dirección para la instrucción MOV AL,[1234 H]:
AH
AL
EAX
8A H
8A H
EBX
ECX
CS
DS
0200 H
DS x 10 H
+
1234 H
5.- La secuencia será la siguiente:
MOV
OR
SI, DI
SI, 1F H
42
8A H
3134 H
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 2
Interfaz con la memoria
En computadores antiguos, la forma más común de almacenamiento de acceso
aleatorio para la memoria principal consistía en una matriz de pequeños anillos
ferromagnéticos denominados núcleos. Pero con el advenimiento de la
microelectrónica y sus ventajas nació el uso de las memorias semiconductoras
para la memoria principal. En esta unidad se exploran aspectos claves de esta
tecnología. Se inicia con el estudio de la organización y funcionamiento de los
dispositivos semiconductores de memoria, específicamente los cuatro tipos más
comunes: ROM (memoria de sólo lectura), EEPROM (memoria de sólo lectura,
borrable y programable eléctricamente), SRAM (memoria estática de acceso
aleatorio) y DRAM (memoria dinámica de acceso aleatorio).
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.
Contenido de la Unidad 2: el contenido de la unidad 2 incluye el estudio del
siguiente tema:
2.1 Interfaz con la memoria
Recomendaciones para el estudio del contenido de la unidad 2
Desarrolle las lecturas del tema indicados en la tabla 4, en la cual se muestran
los temas contentivos de la unidad 2. Estas lecturas son importantes para el
desarrollo de las actividades que se le indican posteriormente.
TEMA
2.1 Interfaz
con la
memoria
MATERIAL DE
REFERENCIA
El texto Los
Microprocesadores
Intel, B. B. Brey.
CAPÍTULO
10
CONTENIDO
SECCIÓN
Dispositivos de memoria.
Decodificación de la
dirección.
Interfaz de la memoria
de los
microprocesadores de 8,
16, 32 y 64 bits.
10.1
RAM dinámica
Tabla 4. Temas de la Unidad 2
43
10.2
10.3 -10.6
10.7
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
2.1 INTERFAZ CON LA MEMORIA
La memoria principal está conformada por circuitos semiconductores
capaces de almacenar información digital. El elemento básico de una memoria
semiconductora es la celda de memoria. Una memoria principal se compone de un
conjunto de celdas básicas dotadas de una determinada organización. Cada celda
soporta un bit de información. El funcionamiento de una celda de memoria está
determinado básicamente por tres terminales para transportar señales eléctricas:



El terminal de selección permite elegir la celda para realizar una operación
de escritura o de lectura.
El terminal de control indica si se trata de una operación de lectura o una
operación de escritura.
Terminal para la entrada (ver figura 11.a) o la salida de datos (ver figura
11.b).
Control
Control
Selección
CELDA
Entrada
de datos
(a) Escritura
Selección
CELDA
Salida de
datos
(b) Lectura
Figura 11. Funcionamiento de una celda de memoria
Las memorias semiconductoras vienen en chips encapsulados, los cuales
contienen una matriz de 2n filas y m columnas. Cada fila de celdas constituye una
palabra de memoria de longitud m; todas las líneas de una fila están conectadas a
las n líneas de dirección. Las celdas de cada columna están conectadas a un
circuito de Detección/Escritura y este circuito se conecta a la entrada salida de
datos del chip. Además se dispone de las líneas de control: R/W
(Lectura/Escritura) que indica la operación deseada y CS (selección de chip), ver
figura 12.
44
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
2n
Dirección
Selección
Matriz de celdas
2n x m celdas
n
Circuito de
Detección/escritura
m
R/W
CS
m
Figura 12. Organización de un chip de memoria
La figura 13 muestra un ejemplo de una memoria EPROM encapsulada en un chip
de 8 MB organizados en 1M x 8 bits.
A0
A1
A19
Vcc
Vss
Vp
p
D0
.
.
.
.
.
.
EPROM
1mX8
D1
D7
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:






Líneas para direccionar 1M palabras. Se necesita un total de veinte
terminales (Ao – A19) ya que 220 = 1M.
Ocho líneas de datos (D0 – D7).
El terminal de alimentación del chip (Vcc)
Un terminal de tierra (Vss).
Un terminal de habilitación de chip (CS)
Una tensión de programación, que se aplica durante la programación de la
memoria (Vpp).
45
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
La figura 14 presenta una arquitectura típica de un arreglo de memoria. En el
arreglo, m bits de dirección se dividen en t bits de dirección de fila y s bits de
dirección de columna, para simplificar los decodificadores a utilizar.
La memoria de la figura 14 tiene n bits de capacidad, o sea que puede almacenar
n bits de datos. Para acceder a cualquiera de las n celdas de memoria es
necesario suministrar una dirección única para identificar la localización requerida
dentro del arreglo de memoria.
El acceso o decodificación de la dirección requerida se facilita dividiéndola en
direcciones de fila y columna para aplicarlas al arreglo de memoria. Los m bits de
dirección se dividen en t bits de dirección de fila y s de dirección de columna, lo
que simplifica mucho los decodificadores requeridos en el chip de memoria.
En vez de utilizar un decodificador de línea m a línea 2m, basta con dos
decodificadores de línea más pequeños y simples, t a línea 2t y línea s a línea 2s.
Además, si m es un número par, es decir, s y t son iguales, se puede simplificar
todavía más el chip de memoria ya que solo se requiere un tipo de decodificador
aunque se necesiten dos.
46
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Dirección de columna
1. . . . . . . s
Decodificador
2s
Dirección de
fila
1
.
.
.
.
.
t
Decodificador
Arreglo de
memoria
2t
Celda de la
memoria
______
Lectura/escritura
Controladores de escritura y amplificadores de
detección, más multiplexor de entrada/salida
Salida
Entrada
n
Figura 14. Arquitectura típica de un arreglo de memoria de 2 celdas
La diferencia existente entre el número de líneas de conexiones del bus de
direcciones de un microprocesador y las líneas de conexiones disponibles en los
dispositivos de memoria, hace que se requieran utilizar dispositivos
decodificadores para corregir esta incompatibilidad. El empleo de los
decodificadores permite, entonces, que la memoria funcione en una sección o
partición única del mapa de memoria. El uso de la decodificación permite además
conectar más de un dispositivo de memoria al microprocesador, ya que con
frecuencia se requiere un tamaño de memoria de más capacidad, por ejemplo
puede ser que se quisiera una memoria con más palabras o una que contenga un
tamaño de palabra mayor.
Una vez estudiado el contendido indicado en la tabla 4, usted estará en capacidad
de responder las siguientes preguntas:
47
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA







¿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.
EJERCICIO 2.1.1 Elabore una lista de los chips de memoria
semiconductora existentes en el mercado, incluya en la lista la
descripción de cada uno de los terminales disponibles. Discuta esta lista
con su asesor del centro local.
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.
EJEMPLO 2.1.1: Construcción de un banco de memoria de 1 Kbyte
usando cuatro dispositivos RAM de 256 x 8 bits y un decodificador de 2 a
4 líneas.
Para apuntar a las direcciones de memoria se utilizan las líneas A0 hasta A7 del
bus de direcciones. Por su parte, la selección del dispositivo RAM a ser utilizado
se realizará mediante la decodificación de los 2 bits más significativos de los 10
bits de dirección (líneas A8 y A9), utilizando para ello un decodificador de 2 a 4,
tal como se muestra en la figura 15:
48
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
A0
A7
256 x 8
256 x 8
256 x 8
256 x 8
RAM
RAM
RAM
RAM
Habilitación
Habilitación
Habilitación
A8
Decodificador
de 2 a 4
A9
Figura
15. Sistema de memoria de 1 Kbyte x 8 bits
EJERCICIO 2.1.2 Investigue cómo está configurado el sistema de
memoria SRAM del microprocesador Intel 80486 y qué tipo de
decodificadores se utilizan en su conexión. Presente la información
investigada al asesor de su centro local.
Interfaz de la memoria de los microprocesadores de 8, 16, 32 y 64 bits y RAM
dinámica
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
A continuación se le presentan una serie de ejercicios para que los resuelva. Se
le sugiere comentar la solución de los mismos con sus pares y/o el asesor del
centro local.
49
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
2.- ¿Cuántos dispositivos de memoria de 4 K x 1 se requieren para proporcionar
un complemento total de memoria para un procesador de 8 bits con 16 líneas
de dirección? Represente gráficamente la conexión adecuada de la memoria al
microprocesador.
EJERCICIOS DE AUTOEVALUACIÓN
1.- Configure la memoria de un sistema con una longitud de palabra de 16 bits. La
cantidad de memoria RAM requerida es de 1 K empezando en la posición
000000 H, y una cantidad de memoria ROM (EPROM) de 4K empezando en la
posición 30F000 H. Para ello se dispone de circuitos EPROM de 2K x 8 y
circuitos RAM de 256 x 8. Presente también la tabla de decodificación
necesaria.
2.- Se pide diseñar un sistema de microprocesador que pueda direccionar 64 K
localizaciones de memoria. La memoria deberá estar conformada por 4 K x 8
de EPROM y 4 K x 8 de RAM. El microprocesador a utilizar dispone de 16
líneas de dirección, y las señal de control R/W (cuando se desea leer un dato
de memoria se activa la señal R mediante un 1 lógico; por el contrario, si se
desea escribir en la memoria RAM la señal W deberá tomar el valor de 0
lógico). A continuación se presenta el microprocesador y los dispositivos de
memoria a ser utilizados:
50
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Microprocesador
D0 a D7
A15
A14
.
Líneas de dirección
.
A0
_
R/W
Canal de control
Canal de datos
A0 A1
A0 A1
A11
__
CS
___
CSR
A11
__
CS
EPROM
4kX8
RAM
4kX8
___
CSE
_
D0 a D7
D0 a D7
__
OE
R/W
Con base en el planteamiento dado anteriormente, presenta la conexión
adecuada de los dispositivos de memoria al microprocesador para lograr la
configuración deseada.
CONSULTA EN OTROS LIBROS
[Lameda 1984]: presenta variados ejemplos sobre el diseño de los sistemas de
memoria.
[Stallings 2000]: proporciona un tratamiento amplio sobre las memorias
semiconductoras, incluyendo la interfaz RAMLink, la cual se centra en la interfaz
procesador/memoria, en lugar de en la arquitectura interna de los chips DRAM.
[Sayers 1995]: incluye información sobre arreglos de memoria para un
microprocesador.
51
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
CONSULTA EN LA WEB
http://ortihuela.galeon.com/ram.htm: incluye información sobre los diversos tipos
de memoria RAM.
http://es.wikipedia.org/wiki/Memoria_RAM: presenta información relevante sobre
los tipos de memoria RAM y sus aplicaciones.
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Y la tabla de decodificación será la siguiente:
A23
0
0
0
0
0
0
A22
0
0
0
0
0
0
A21
0
0
0
0
1
1
A20
0
0
0
0
1
1
A19
0
0
0
0
0
0
A16
0
0
0
0
0
0
A17
0
0
0
0
0
0
A16
0
0
0
0
0
0
A15
0
0
0
0
1
1
A14
0
0
0
0
1
1
A13
0
0
0
0
1
1
A12
0
0
0
0
1
1
A11
0
0
0
0
X
X
A10
0
0
0
0
X
X
A9
0
0
1
1
X
X
A8
X
X
X
X
X
X
A7
X
X
X
X
X
X
A6
X
X
X
X
X
X
A5
X
X
X
X
X
X
A4
X
X
X
X
X
X
A3
X
X
X
X
X
X
A2
X
X
X
X
X
X
A1
X
X
X
X
X
X
2.- Para direccionar la memoria sólo se requieren utilizar 12 líneas de dirección
(212 = 4 K) y para evitar que los dispositivos RAM y ROM coloquen información
en el canal de datos, cuando las señales CSE y CSR toman el valor de cero
lógico, es necesario distinguir entre las dos memorias mediante estas señales.
Por medio de las líneas de dirección no usadas A12 a A15 se puede determinar
el estado de las líneas de selección de los chips. Debe obtenerse una relación
entre las líneas de dirección restantes de modo que ambas líneas de selección
de chip jamás estén bajas al mismo tiempo. Esto se logra mediante la
decodificación de direcciones. La decodificación se puede obtener de acuerdo
a lo siguiente:
___
___
A15
A14
A13
A12
CSE
CSR
0
0
0
.
.
.
1
0
0
0
.
.
.
1
0
0
1
.
.
.
1
0
1
0
.
.
.
1
0
1
1
.
.
.
1
1
0
1
.
.
.
1
Usando este esquema, cada localización de memoria física se identifica en
forma singular. A continuación se muestra la conexión adecuada:
53
A0
0
1
0
1
0
1
RAM1
RAM2
RAM3
RAM4
EPROM1
EPROM2
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
LINEAS DE DIRECCIÓN
A15
A12
A11
A1
A0
____
Microprocesador
___
CSR
CSE
D0 a D7
A0 A1
_
R/W
A11
__
CS
RAM
4kX8
CANAL
DE
CONTROL
A0 A1
EPROM
4kX8
_
D0 a D7
R/W
CANAL DE DATOS
54
A11
__
CS
__
D0 a D7
OE
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
Motivado a esto, se presenta en esta unidad el estudio de los componentes de E/S
y sus interfaces, específicamente con el microprocesador. Posteriormente se
introducen dos técnicas avanzadas de E/S, las interrupciones y acceso directo a
memoria, además de los componentes y las configuraciones que las hacen
posibles.
Objetivo de la Unidad 3: Resolver problemas de atención a los dispositivos de
E/S, haciendo uso de interfaces básicas programables y/o por interrupción y/o
controladas por DMA.
Contenido de la Unidad 3: El contenido de la unidad contempla el estudio de los
siguientes temas:
3.1 La interfaz de entrada-salida básica
3.2 Interrupciones.
3.3 Acceso directo a memoria y E/S controlada por DMA.
Actividades recomendadas para el estudio del contenido de la unidad 3
Lea los temas mostrados en la tabla 5, correspondientes a la unidad 3. Realice
esta actividad antes de proceder a desarrollar las actividades que se le indican
posteriormente.
TEMA
MATERIAL DE
REFERENCIA
CONTENIDO
CAPITULO
Introducción a la interfaz de E/S
El texto Los
3.1 La interfaz de
Microprocesadores
entrada/salida básica
Intel, B. B. Brey.
3.2 Interrupciones
El texto Los
La interfaz periférica programable
82C55
11
La interfaz programable de
teclado/pantalla tipo 8279
Procesamiento básico de
interrupciones.
12
55
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Microprocesadores
Intel, B. B. Brey.
Interrupciones por hardware.
Expansión de la estructura de
interrupciones
Controlador de interrupción
programable 8259A.
3.3 Acceso directo a
memoria y E/S
controlada por DMA
El texto Los
Microprocesadores
Intel, B. B. Brey.
Operación básica del DMA y el
controlador del DMA 8237.
Operación del bus compartido.
13
Tabla 5. Temas de la unidad 3
AMPLIACIÓN DE CONOCIMIENTOS: el contenido Interfaz
programable de comunicaciones 16550, incluido en el capítulo 11
sección 11-6, del texto Los Microprocesadores Intel, no es objeto de
evaluación del curso Microprocesadores. Sin embargo, se recomienda
su lectura, ya que ésta es utilizada para conectarse prácticamente a
cualquier tipo de interfaz serial.
ATENCIÓN: para el establecimiento de una interfaz se requieren ciertos
conocimientos de electrónica; el texto del curso examina algunos
hechos relacionados con ella, los cuales se recomienda leer a objeto de
obtener una mejor comprensión del contenido.
3.1 LA INTERFAZ DE ENTRADA/SALIDA BÁSICA
La mayoría de los microprocesadores tienen pocos valores funcionales por si
mismos. Muchos no contienen una memoria sustancial, y pocos tienen puertos de
entrada y salida que los conecten directamente a dispositivos periféricos. Los
microprocesadores operan como parte de un sistema, la interconexión, o enlace,
de las partes en este sistema se denomina interfaz.
Una configuración sencilla para conectar dispositivos de E/S a un computador es
una estructura de bus único, tal como se muestra en la figura 16. El bus permite
que todos los dispositivos conectados a él puedan intercambiar información. Por lo
general, el bus está conformado por tres conjuntos de líneas de transporte (de
dirección, de datos y de control). El microprocesador solicita una operación de
lectura o de escritura y los datos son transferidos a través de las líneas de datos.
56
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Microprocesador
Memoria principal
Dispositivo de E/S
Dispositivo de E/S
Bus
Figura 16. Estructura de bus único
En la figura 17 se ilustra el hardware requerido para conectar un dispositivo de E/S
al bus. El decodificador de direcciones permite al dispositivo reconocer su
dirección cuando una dirección aparece en el bus de direcciones. El registro de
datos almacena los datos a ser transferidos hacia o desde el microprocesador. El
registro de estado contiene la información relevante al funcionamiento del
dispositivo de E/S. Ambos el registro de estado y el de datos están conectados al
bus de datos. El decodificador de direcciones, el registro de datos y el de estado, y
los circuitos de control requeridos para coordinar la transferencia de E/S
constituyen los circuitos de interfaz del dispositivo.
Líneas de dirección
Bus
Líneas de datos
Líneas de control
Decodificador
de direcciones
Registros de
datos y de
estado
Circuitos de
control
Interfaz de E/S
Dispositivo de E/S
Figura 17. Conexión de un dispositivo de E/S al bus
Por lo general los dispositivos periféricos no pueden conectarse de manera directa
al microprocesador, la conexión suele hacerse mediante un chip de interfaz. Para
construir la interfaz de entrada se utiliza un conjunto de dispositivos buffers de tres
estados y para la interfaz de salida registros de dato.
57
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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?
Introducción a la interfaz de E/S
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.
EJEMPLO 3.1.1: Protocolo handshaking para comunicación en paralelo.
Una típica sesión de transmisión de datos se produce de la siguiente manera:
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA


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.
Se puede observar en la secuencia de pasos antes mostrada, como la parte
transmisora no intentará colocar varios bytes en las líneas de datos, en tanto
que la parte receptora no debe leer más datos que los que le envíe la parte
transmisora, un byte a la vez.
EJEMPLO 3.1.2: aplicación del buffer triestado para la selección de dos
puertos de entrada.
En la figura 18 se muestra la conexión que permite seleccionar entre dos
puertos de entrada para acceder al bus de datos (DB0….DB7) del
microprocesador.
59
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
74X541
Microprocesador
DB0
READ
G1
INSEL1
G2
D0
DB1
D1
DB2
INSEL2
DB4
DB5
DB6
D3
D4
DB0
A1
D2
DB3
Puerto 1
INSEL3
.
.
.
.
Y1
A2
Y2
DB2
A3
D5
A4
D6
A5
D7
A6
DB7
DB1
Y3
Y4
Y5
Y6
A7
Y7
A8
Y8
DB3
DB4
DB5
DB6
DB7
74X541
G1
Puerto 2
G2
A1
A2
A3
A4
A5
A6
A7
A8
DB0
Y1
Y2
DB2
Y3
Y4
Y5
Y6
Y7
Y8
Bus de datos
Figura 18. Uso de los buffers triestado como interfaz de
60
DB1
DB3
DB4
DB5
DB6
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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).
La Interfaz Periférica Programable (IPP) Intel 82C55
Lea la sección 11-3 incluida en el capítulo 11 del texto. Posteriormente examine
los ejemplos 3.1.3 y 3.1.4.
EJEMPLO 3.1.3: uso de la interfaz IPP 82C55 con el microprocesador
8086.
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.
El procesador escribe en el registro de control para seleccionar el modo de
operación y para definir las señales, en su caso. En el modo 0 de operación, los
tres grupos de 8 líneas externas funcionan como tres puertos de E/S de 8 bits.
Cada puerto puede ser designado como de entrada o de salida. En caso contrario,
los grupos A y B funcionan como puertos de E/S y las líneas del grupo C sirven de
líneas de control para A y B. Las líneas de control tienen dos funciones
principales: la sincronización mediante conformidad de señales (handshaking) y la
petición de interrupciones.
61
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Buffer de
datos
Bus de
datos
del 8086
8
Bus interno
de 8 bits
8
Fuente
de
alimentación
8
+ 5 V (Vdd)
4
A
CA
Tierra (GND)
A0
4
CB
A1
Read
Write
Reset
Chip
select
Lógica
de
control
8
B
Registro
de
control
Buffer de
datos
Figura 19. Diagrama de bloques de la IPP 82C55A de Intel.
EJEMPLO 3.1.4: uso de la interfaz 82C55 para controlar la conexión de
un teclado y una pantalla al microprocesador.
En la figura 20 se ilustra el uso de la interfaz programable de periféricos Intel
82C55A. El teclado proporciona 8 bits de entrada, dos de estos bits, SHIFT y
CONTROL, tienen un significado especial para el programa de gestión de teclado
que ejecuta el procesador. Sin embargo, este significado es transparente para el
82C55A, que simplemente acepta los 8 bits de datos y los pone en el bus de datos
del sistema. Existen dos líneas para la sincronización del teclado mediante
62
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
A1
A2
A3
A4
A5
A6
R0
R1
Teclado
R2
R3
R4
R5
Shift (desplazamiento)
Control
C4
C5
Dato preparado
Reconocimiento
82C55A
C0
B0
B1
B2
B3
B4
B5
B6
B7
S0
S1
Pantalla
S2
S3
S4
S5
Back space
Borrar
C1
C2
C6
C7
Dato preparado
Reconocmiento
Blanking
Borrar línea
Petición de
Interrupción
Figura 20. Interfaz teclado/pantalla en el 82C55A
La interfaz programable de teclado/pantalla tipo 8279
Lea la sección 11-4 incluida en el capítulo 11 del texto y revise los ejemplos allí
presentados.
63
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
3.2 Interrupciones
El problema de E/S programada es que el procesador tiene que esperar un tiempo
considerable a que el módulo de E/S en cuestión esté preparado para recibir o
transmitir los datos. El procesador, mientras espera, debe comprobar
repetidamente el estado del módulo de E/S. Como consecuencia, se degrada el
nivel de prestaciones de todo el sistema.
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:
 ¿Qué es una interrupción?
 ¿Cuáles son las instrucciones de que dispone el procesador para realizar
las interrupciones?
 ¿Cómo son referidas las interrupciones en el modo real y en el modo
protegido?
 Liste los terminales de interrupción del microprocesador.
 ¿Cuántas entradas de interrupción agrega el controlador de interrupción
programable 8259A?
Procesamiento básico de interrupciones
Lea la sección 12-1 incluida en el capítulo 12 del texto y posteriormente revise el
ejemplo 3.2.1.
64
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 3.2.1: secuencia de pasos para leer un bloque de datos en
una E/S mediante interrupciones.
En la figura 21 se muestra el conjunto de acciones que deben desarrollarse para
procesar una E/S haciendo uso de las interrupciones. El procesador tras enviar
una orden de E/S a un módulo, continúa 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, y después continúa con el procesamiento previo.
Mandar orden de
lectura al módulo de
E/S
CPU
I/O
Hacer otra cosa
Leer el estado del
módulo de E/S
Interrupción
E/S
CPU
Comprobar
el estado
Condición de error
Leer una palabra del
módulo de
E/S
Preparado
Escribir una palabra
en memoria
E/S
CPU
Comprobar
el estado
CPU
Memoria
No
Si
Instrucción siguiente
Figura 21. Entrada de un bloque de datos mediante interrupciones.
65
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
Controlador de Interrupción Programable 8259A
EJEMPLO 3.2.2: uso del PIC 82C59A para gestionar la interrupción de
64 módulos de E/S.
En la figura 22 se ilustra el uso del PIC 82C59A para conectar 64 módulos de E/S.
Debido a que un 82C59A sólo puede manejar hasta 8 módulos, es necesario
disponer de un sistema en cascada para controlar los 64 módulos de E/S.
La única responsabilidad del 82C59A es la gestión de interrupciones. Acepta la
solicitud de interrupción de los dispositivos conectados a él, determina qué
interrupción tiene la prioridad más alta, y se lo indica entonces al procesador
activando la señal INTR. El procesador reconoce la solicitud mediante la línea
INTA. Esto hace que el 82C59 sitúe el vector apropiado en el bus de datos.
Entonces el procesador puede iniciar el procesamiento de la interrupción y
comunicarse directamente con el módulo de E/S para leer o escribir datos.
3.3 ACCESO DIRECTO A MEMORIA Y E/S CONTROLADA POR DMA
La E/S con interrupciones, aunque más eficiente que la sencilla E/S programada,
también requiere la intervención activa del procesador para transferir datos entre
la memoria y el módulo de E/S, y cualquier transferencia de datos debe seguir un
camino a través del procesador. Por tanto, ambas formas de E/S presentan dos
inconvenientes: la velocidad de transferencia de E/S está limitada por la velocidad
a la cual el procesador puede comprobar y dar servicio a un dispositivo y el
procesador debe dedicarse a la gestión de transferencias de E/S. Cuando se
utiliza E/S programada para transferir un bloque de datos, el procesador se dedica
a la tarea de la E/S y puede transferir datos a alta velocidad al precio de no hacer
nada más. Con la E/S mediante interrupciones se libera en parte al procesador, a
expensas de reducir la velocidad de E/S. Por ello, cuando se desea transferir
grandes volúmenes de datos, se hace uso de una técnica más eficiente: el Acceso
Directo a Memoria (DMA).
66
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Controlador de interrupciones 82C59A esclavo
Dispositivo externo
externo 01
00
Dispositivo
Dispositivo externo 07
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Controlador de
Interrupciones
82C59A esclavo
Dispositivo externo 08
Dispositivo externo 09
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
Concentrador de
interrupciones
82C59A maestro
INT
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Procesador
80386
INTR
Dispositivo externo 15
Controlador de
interrupciones
82C59A esclavo
Dispositivo externo 56
Dispositivo externo 57
Dispositivo externo 63
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INT
Figura 22. Uso del controlador de interrupciones 82C59A.
67
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
Líneas de
datos
Líneas de
direcciones
DMA REQ
Registro de
datos
Registro de
dirección
DMA ACK
INTR
Lógica de
control
Read
Write
Figura 23. Diagrama típico de un módulo de DMA.
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:
 Si se solicita una lectura o una escritura, utilizando la línea de control de
lectura o escritura entre el procesador y el módulo DMA.
 La dirección del dispositivo de E/S en cuestión, indicada a través de la
línea de datos.
 La posición inicial de memoria a partir de donde se lee o se escribe,
indicada a través de las líneas de datos y almacenada por un módulo de
DMA en su registro de direcciones.
68
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
 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.
Después el procesador continúa con otro trabajo. Ha delegado la operación de E/S
al módulo de DMA, que se encargará de ella El módulo de DMA, transfiere el
bloque completo de datos palabra a palabra, directamente desde, o hacia, la
memoria, sin que tenga que pasar a través del procesador. Cuando la
transferencia se ha terminado, el módulo de DMA envía una señal de interrupción
al procesador. Así pues, el procesador sólo interviene al comienzo y al final de la
transferencia (ver figura 24).
CPU
Mandar orden de
lectura de bloque
al módulo DMA
Leer el estado del
módulo DMA
DMA
Hacer otra cosa
DMA
CPU
Figura 24. Acceso directo a memoria
Una vez estudiado el contendido del tema 3.3 indicado en la tabla 5, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Qué tipos de transferencias permite realizar el uso de la técnica DMA?
 ¿Por medio de qué señales de bus selecciona el controlador DMA la
localidad de memoria utilizada para una transferencia de DMA?
 ¿Qué es una transferencia DMA de memoria a memoria?
Operación básica del DMA y el controlador del DMA 8237
Lea las secciones 13-1 y 13-2 incluidas en el capítulo 13 del texto y revise los
ejemplos allí presentados.
EJEMPLO 3.3.1: transferencia de un bloque de 32 bytes desde
memoria a un terminal de computadora, usando la técnica de E/S de
DMA
La E/S controlada por interrupciones es un gran adelanto en comparación con la
E/S programada. El problema es que se requiere una interrupción por cada
69
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
DMA
CPU
Cuenta
Memoria
100
Controlador
RS232C
32
4
1
Dispositivo
100
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.
Para escribir un bloque de 32 bytes de la dirección 100 en una terminal (por
ejemplo, el dispositivo 4), la CPU escribe los números 100, 32 y 4 en los primeros
tres registros del DMA, y luego el código de escribir (por ejemplo, 1) en el cuarto,
como se muestra en la figura 25. Una vez inicializado con estos valores, el
controlador DMA emite una solicitud de bus para leer el byte 100 de la memoria,
del mismo modo como la CPU leería de la memoria. Una vez que obtiene el byte,
el controlador de DMA emite una solicitud de E/S al dispositivo 4, para escribir el
byte en él. Una vez completadas ambas operaciones, el controlador de DMA
incrementa en 1 su registro de dirección y decrementa en 1 su registro de cuenta.
70
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
Operación del bus compartido
Lea la sección 13-3 incluida en el capítulo 13 del texto y revise los ejemplos allí
presentados.
EJERCICIOS PROPUESTOS
1.- Asuma que un procesador de 16 bits y dos de 8 bits deben conectarse a un
bus del sistema. Considere los siguientes detalles:
 Todos los microprocesadores tiene el hardware necesario para cualquier
tipo de transferencia: E/S programada, E/S mediante interrupciones y DMA.
 Todos los microprocesadores tienen un bus de direcciones de 16 bits.
 Hay dos tarjetas de memoria, de 64 Kbytes cada una, conectada al bus. El
diseñador desea que se comparta la mayor cantidad de memoria posible.
 El bus del sistema permite un máximo de cuatro líneas de interrupción y
una de DMA.
Haga las suposiciones adicionales que necesite y:
a) Establezca las especificaciones del bus en términos del número de líneas.
b) Explique cómo es la interfaz de los dispositivos indicados arriba para
conectarse al bus.
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJERCICIOS DE AUTOEVALUACIÓN
1.- Un dispositivo periférico junto con su controlador de E/S se conectará a un
computador mediante el uso de un controlador DMA. Todos los módulos que
conforman el sistema comparten el mismo bus “master”. El periférico solicita
una transferencia al controlador de DMA, el cual a su vez solicita el bus a la
CPU. Si la CPU no está utilizando el bus ni está en estado LOCK, lo concede
al controlador de DMA, el cual a su vez informa al periférico para que prepare
los datos a transferir.
En una transferencia de entrada, los datos se mueven desde el periférico (I/O)
a la memoria por el bus de datos sin pasar por el controlador de DMA y sin
intervención de la CPU. Las líneas de control para leer la I/O (IOR) y para
escribir la memoria (MEMW) son manejadas por el controlador de DMA. De la
misma forma, en una transferencia de salida los datos se mueven desde la
memoria a la I/O y el controlador de DMA maneja las líneas de control para
leer la memoria (MEMR) y para escribir en el periférico (IOW).
Con base en lo anteriormente expuesto, solucione la manera en que debe ser
configurado el sistema para el control de la E/S mediante el uso de la técnica
DMA y que cumpla con las especificaciones dadas.
2.- La conexión a periféricos en un sistema de microcomputador puede hacerse
mediante el uso de chips especializados de entradas y salidas. Estos chips
tienen como característica común su programabilidad por software y su
conexión directa a los buses del sistema sin lógica auxiliar.
Parta de la información dada anteriormente y resuelva el problema de la
conexión de la PPI (interfaz periférica programable) tipo 82C55, en un sistema
de microprocesador directamente ligados a los buses.
CONSULTA EN OTROS LIBROS
[Stallings, 2000]: dedica un capítulo a los distintos aspectos de la organización de
E/S, también describe la interfaz entre los módulos de E/S y los dispositivos
externos.
[Tokheim, 1996]: hace una presentación de las interfaces con el microprocesador.
[Tanenbaum, 2000]: cubre algunos aspectos de los temas de esta unidad.
72
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
[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.
[Sayers 1995]: contiene aspectos orientados al estudio de problemas externos de
interfaz de un microprocesador con el mundo real.
Se sugiere consultar también los otros textos recomendados en la bibliografía.
CONSULTA EN LA WEB
http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm: contiene información
sobre el puerto paralelo del PC.
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.
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
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.
Se observa que el sistema configurado consta de un periférico con su controlador
de E/S, un controlador de DMA y las señales de pedido y concesión del bus que
permiten alternar el "bus master" entre la CPU y el controlador de DMA
73
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
2.- La disposición de la PPI 82C55 en este tipo de sistema se muestra a
continuación:
Bus de datos (8 bits)
Bus de direcciones
(16 bits)s)
8
CS
A0
A1
Puerto A
8
D0
D7
82C55
Puerto C
8
A1
A0
__
CS
Puerto B
__
RD
I/OR
__
WR
8
RESET
I/OW
74
RESET
Bus de control
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 4
INTERFAZ DEL BUS
El PC (Personal Computer) es un sistema de propósito general, que puede ser
ajustado a las necesidades del usuario agregando placas con la electrónica
necesaria, acompañadas de software que permita controlarlas. Un posible ejemplo
es el procesamiento de imágenes de video: basta colocar una tarjeta adquisidora
de video y configurar su software controlador para hacer que una aplicación de
procesamiento de imágenes, ejecutándose en el PC, pueda procesar las
imágenes adquiridas con la placa.
Se puede colocar en un sistema PC el tipo de interfaz (tarjeta) que uno desee,
para controlar los más variados dispositivos periféricos gracias a las Ranuras de
Expansión o Slots (Conector). Existen varios tipos de ranuras de expansión, de
distintas formas y características. Consisten simplemente en zócalos que sirven
para conectar los bordes de las tarjetas interfaces. El conjunto de esos zócalos, de
un cierto tipo se llama Bus de Sistema. Cada zócalo se denomina SLOT y da lo
mismo, para conectar una tarjeta, un slot que otro ya que se encuentran
conectados en paralelo.
Los computadores poseen distintos tipos de buses que proporcionan
comunicación a distintos niveles dentro de la jerarquía del sistema. El bus que
conecta los componentes principales del computador (procesador, memoria y E/S)
se denomina bus del sistema. Las estructuras de interconexión más comunes
dentro de un computador están basadas en el uso de uno o más buses.
En la unidad 4 se presenta el estudio de la arquitectura de los buses, y la
interconexión de los periféricos.
Objetivo de la Unidad 4: Resolver problemas de implementación de interfaces
sencillas que se conecten a los buses ISA extendido y/o VESA Local y/o PCI y/o
USB y/o AGP.
Contenido de la Unidad 4: el contenido de la unidad contempla el estudio del
siguiente tema:
4.1 Interfaz del bus
Actividades recomendadas para el estudio del contenido de la unidad 4
Desarrolle las lecturas del tema indicado en la tabla 6, en la cual se muestran los
contenidos de la unidad 4. Esta lectura es importante para el desarrollo de las
actividades que se le indican posteriormente.
75
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MATERIAL DE
REFERENCIA
TEMA
CONTENIDO
SECCIÓN
El bus ISA
4.1 Interfaz
bus
del
El texto Los
Microprocesadores
Intel, B. B. Brey.
Arquitectura de los buses
extendido (EISA) y VESA Local.
El bus de Interconexión de
componentes periféricos (PCI)
El bus serial Universal (USB)
Puerto gráfico acelerado (AGP)
15-1
ISA
15-2
15-3
15-4
15-5
Tabla 6
4.1 Interfaz del bus
Los computadores poseen diferentes tipos de buses que proporcionan
comunicación entre sus componentes a distintos niveles dentro de la jerarquía del
sistema. El bus del procesador es el bus definido por las señales propias del chip
del procesador. Los dispositivos que requieran una alta velocidad de conexión con
el procesador, como la memoria principal, pueden conectarse directamente a este
bus. Por razones eléctricas solo unos pocos dispositivos pueden conectarse de
esta manera. La placa madre de un computador generalmente proporciona otro
bus al que se pueden interconectar otros dispositivos. Los dos buses son
interconectados por un circuito, denominado puente, que traslada desde un bus a
otro las señales y protocolos de comunicación. Los dispositivos conectados al bus
de expansión se muestran al procesador como si estuvieran conectados
directamente al propio bus del procesador. La única diferencia es que el circuito
puente introduce un pequeño retardo en la transferencia de datos entre el
procesador y estos dispositivos.
Una vez estudiado el contendido del tema 4.1 indicado en la tabla 6, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Qué tipos de transferencias debe permitir la estructura de interconexión
(bus) de un computador?
 ¿Qué ventajas tiene una arquitectura de varios buses frente a otra de bus
único?
 ¿Se utiliza frecuentemente la interfaz del bus ISA para expansión de
memoria?
 Enumere y defina brevemente los grupos de líneas de señal para el bus
PCI
El Bus ISA
Lea la sección 15-1 incluida en el capítulo 15 del libro y revise los ejemplos que allí
se exponen.
76
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 4.1.1: Interfaz de bus ISA que contiene un 82C55 accedido
por medio de direcciones de puertos.
La figura 26 muestra una interfaz ISA decodificada en las direcciones 800H a
803H:
34
4
SD0
SD3
31
SD4
30
SD5
29
SD6
28
SD7
27
___
IOR
___
IOW
1
SA3
2
SA4
3
SA5
4
SA6
5
SA7
6
SA8
7
SA9
8
PA0
D1
PA1
D2
PA2
D3
PA3
D4
PA4
D5
PA5
D6
PA6
D7
PA7
3
32
SD2
SA2
D0
33
SD1
5
2
1
40
39
38
37
18
SA0
9
__
RD
__
WR
SA1
8
A0
PB2
21
RESET
35
A1
PB3
22
6
RESET
__
CS
PB4
23
PB5
24
PB6
25
36
19
I1
O1
PB1
20
14
O2
17
I3
19
PB7
18
I2
PB0
O3
I4
O4
I5
O5
I6
O6
I7
O7
SA10 9
I8
O8
SA11 11
I9
PC0
16
15
14
15
PC1
16
PC2
17
PC3
13
PC4
12
PC5
11
PC6
10
13
12
PC7
I10
82C55
16L8
SA12
SA13
SA14
SA15
Figura 26. Interfaz de bus ISA decodificada en las direcciones 800H a 803H
77
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
El bus de Interconexión de Componentes Periféricos (PCI)
Lea la sección 15-3 incluida en el capítulo 15 del libro y revise los ejemplos que allí
se incluyen.
EJEMPLO 4.1.2: uso de un bus PCI en un sistema uniprocesador.
En la figura 26 se muestra una configuración usual del bus PCI en un sistema
uniprocesador. En esta configuración un dispositivo que integra el controlador
DRAM y el adaptador al bus PCI proporciona el acoplamiento al procesador y
la posibilidad de generar datos a velocidades elevadas. El adaptador actúa
como un registro de acople (buffer) de datos, puesto que la velocidad del bus
PCI puede diferir de la capacidad de E/S del procesador.
Procesador
Monitor
Cache
Adaptador/controlador
de memoria
DRAM
Audio
Imágenes
en
movimiento
Bus PCI
Gráficos
Adaptador
del bus de
expansión
Dispositivos
de E/S
básicos
Graficador
Bus de expansión
Figura 27. Bus PCI en un sistema uniprocesador
78
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
Como ejercicios de autoevaluación se recomienda realizar los problemas número
6 y 8, incluidos en el capítulo 15 del texto Los Microprocesadores Intel, de Barry B
Brey, y luego comparar con tus respuestas con los resultados mostrados en el
texto.
CONSULTA EN OTROS LIBROS
[Stallings 2000]: incluye en su contenido la
específicamente la descripción del bus PCI.
interconexión
con
buses,
[Hamacher, 2003]: contiene el estudio de los buses PCI y USB.
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MÓDULO II
FAMILIA DE MICROPROCESADORES, EL COPROCESADOR ARITMÉTICO Y
LA TECNOLOGÍA MMX
En este módulo se incluyen dos unidades que permiten complementar el estudio
de los microprocesadores. En la unidad 5 se presenta la evolución de una familia
comercial de microprocesadores, en la búsqueda de mejores prestaciones. Como
consecuencia de esta evolución, se han incorporado nuevos elementos y
tecnologías que amplían su panorama de uso, tales como el coprocesador
aritmético y la tecnología MMX, los cuales son tema de estudio de la unidad 6.
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.
El módulo II está estructurado en dos unidades:
Unidad 5:
Familia de microprocesadores.
Unidad 6:
El coprocesador aritmético y la tecnología MMX
81
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 5
FAMILIA DE MICROPROCESADORES
La historia de los microprocesadores (procesadores) ha pasado por diferentes
situaciones, siguiendo la lógica evolución de este mundo. Desde aquel primer
procesador 4004 del año 1971 hasta el Itanium producido en el 2001. Según la
opinión de expertos, para el año 2011 se utilizará procesadores cuyo reloj irá a
una velocidad de 10 GHz (10.000 MHz), contendrá mil millones de transistores y
será capaz de procesar cerca de 100 mil millones de instrucciones por segundo.
El factor responsable del gran aumento de la velocidad del microprocesador es la
disminución del tamaño de los componentes del microprocesador; esto reduce la
distancia entre componentes, y, por tanto, aumenta la velocidad. Sin embargo, la
verdadera ganancia en velocidad en los últimos años se debe a la organización
del microprocesador, incluyendo el uso de técnicas para obtener mejores
prestaciones de servicio.
La unidad 5 presenta la evolución de la familia de microprocesadores Intel,
profundizando en las mejoras de hardware y software que han desarrollado los
diseñadores sobre los miembros de esta familia en la búsqueda de un mejor
desempeño. Mediante el conocimiento obtenido, se podrá describir importantes
conceptos de diseño que han conducido al desarrollo de computadores más
potentes.
Objetivo de la Unidad 5: Analizar la evolución de la arquitectura y/o
funcionamiento de microprocesadores comerciales, para la descripción de
mejoras en sus prestaciones de servicio.
Contenido de la Unidad 5: el contenido de la unidad contempla el estudio de los
siguientes temas:
5.1 Los microprocesadores 80186, 80188 y 80286.
5.2 Los microprocesadores 80386 y 80486.
5.3 Los microprocesadores Pentium y Pentium Pro.
5.4 El microprocesador Pentium II
83
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
TEMA
MATERIAL DE
REFERENCIA
5.1 Los microprocesadores
El texto Los
80186, 80188 y 80286.
Microprocesadores
Intel, B. B. Brey.
5.2 Los microprocesadores
El texto Los
80386 y 80486.
Microprocesadores
Intel, B. B. Brey.
CONTENIDO
Arquitectura de los
80186 / 80188.
Programación de las
mejoras de los 80186
/ 80188.
CAPÍTULO
16
Introducción al
80286.
Introducción al
microprocesador
80386. Registros
especiales del 80386
Administración de la
memoria del 80386.
Acceso al modo
protegido
17
Modo 8086 virtual.
Mecanismo de
paginación de
memoria.
Introducción al
procesador 80486.
5.3 Los microprocesadores El texto Los
Pentium y Pentium Pro.
Microprocesadores
Intel, B. B. Brey.
84
Introducción al
procesador Pentium.
Registros especiales
del Pentium.
Administración de la
memoria del Pentium.
Nuevas instrucciones
del Pentium.
Introducción al
microprocesador
Pentium Pro.
Características
especiales del
Pentium Pro.
18
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Tabla 7
TÍTULO
MATERIAL DE
REFERENCIA
5.4 El microprocesador El texto Los
Pentium II.
Microprocesadores
Intel, B. B. Brey.
CONTENIDO
CAPITULO
Introducción al
microprocesador
Pentium II.
Cambios al software
del Pentium II.
19
Tabla 7 (Continuación)
5.1. Los microprocesadores 80186, 80188 Y 80286
Los microprocesadores 80186 y 80188 son modelos altamente integrados, ya
que el chip contiene otros componentes aparte de los encontrados en los modelos
8086 u 8088. Los modelos 8086 y 8088 no podían direccionar más de un
megabyte de memoria, por lo que Intel diseñó el microprocesador 80286. Por esto
se afirma que las tres versiones 80186, 80188 y 80286 son versiones mejoradas
de los microprocesadores 8086 y 8088.
Una vez estudiado el contendido del tema 5.1 indicado en la tabla 7, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Cuántos períodos del reloj encontramos en un ciclo de bus de los
80186/80188?
 ¿Qué mejoras de hardware se agregaron a los 80186/80188 en
comparación con los 8086/8088?
 ¿En qué se diferencia el conjunto de instrucciones disponibles en el
microprocesador 80286, con respecto a los modelos 80186/80188?
Arquitectura de los 80186 / 80188. Programación de las mejoras de los 80186
/ 80188
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
5.2 Los microprocesadores 80386 Y 80486
El microprocesador 80386 es una versión mejorada del microprocesador 80286 y
representa un salto en la arquitectura de 16 bits a la de 32 bits. El modelo 80486
se presenta como una mejora realizada a su antecesor, el 80386, incluyendo
dentro de sus mejoras una memoria caché para acelerar la ejecución de las
instrucciones y la captura de datos.
Una vez estudiado el contendido del tema 5.2 indicado en la tabla 6, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Cuántos bytes de memoria virtual direcciona la unidad de
administración de memoria del microprocesador 80386?
 ¿Qué elementos se incluyeron en el microprocesador 80486 para verificar
la memoria caché?
Introducción al microprocesador 80386. Registros especiales del 80386
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.
Administración de la memoria del 80386. Modo 8086 virtual. Mecanismo de
paginación de memoria
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.
Introducción al procesador 80486
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.
EJEMPLO 5.2.1: evolución en el uso de la estructura de memoria caché.
La evolución de la estructura cache se observa claramente en la evolución de los
microprocesadores Intel. El 80386 no tiene cache on-chip. El 80486 incluye una
sola cache on-chip de 8 KBytes, utilizando un tamaño de línea de 16 bytes y una
organización asociativa por conjunto (la memoria cache se divide en conjuntos de
n bloques, así al bloque i-ésimo de memoria principal le corresponde el conjunto i
módulo (k/n) donde k es el número de bloques de memoria cache) de cuatro vías.
En la figura 28 se presenta el diagrama de bloques del 80486, en el cual se
aprecia la ubicación de la cache.
86
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Block Diagram of Intel`s 80486
Prefetch Buffer
32-bit Internal
and External
Pathways
Bus
Interface
Unit
Cache
8 kb
ALU
FPU
Single Fiver-Stage
Integer Pipeline
Registers
Figura 28. Diagrama de bloques del 80486.
Fuente: http://www.duiops.net/hardware/micros/microshis.htm
EJEMPLO 5.2.2: mejoras incorporadas al sistema de memoria del
microprocesador 80486.
Dada la disponibilidad de sistemas de memoria muy grandes, y debido a que los
costos de los circuitos son mínimos, muchos fabricantes de tarjetas de memoria
han agregado la verificación de paridad a sus tarjetas de memoria RAM. Esto se
pone de manifiesto al comparar el sistema de memoria del microprocesador 80386
y del 80486. Ambos sistemas contienen 4 GB, pero el sistema de memoria del
80486 incluye un generador / detector de paridad interno, para determinar si un
dato es leído correctamente de una localidad de memoria.
87
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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:
 ¿A cuánta memoria puede acceder el microprocesador Pentium?
 ¿Cuántas caches encontramos en el Pentium y cuáles son sus tamaños?
Introducción al procesador Pentium. Registros especiales del Pentium
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.
Administración de la memoria del Pentium. Nuevas instrucciones del Pentium
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.
Introducción al microprocesador Pentium Pro. Características especiales del
Pentium Pro
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.
5.4 El microprocesador Pentium II
El microprocesador Pentium II es una versión mejorada del Pentium Pro el cual no
está disponible en la forma de circuito integrado, ya que se presenta como una
pequeña tarjeta de circuito impreso.
Una vez estudiado el contendido del tema 5.4 indicado en la tabla 7, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Cuál es la diferencia entre la caché de nivel 2 en el Pentium Pro y la del
Pentium II?
 ¿Explique cómo la arquitectura del Pentium II aumenta la velocidad del
sistema?
 ¿Cuál es la diferencia principal en las funciones de escritura y lectura y el
resto de sus antecesores?
88
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
EJEMPLO 5.4.1: mejoras incorporadas al sistema de memoria del
microprocesador Pentium II.
El Pentium II incluye dos caches on-chip, una para datos otra para instrucciones.
Cada cache es de 8 KBytes, utilizando un tamaño de línea de 32 bytes y una
organización asociativa por conjunto de dos vías. Incluye además una cache L2
que alimenta a las dos cache L1. La cache L2 es asociativa por conjunto de cuatro
vías, y con tamaños que oscilan entre 256 Kbytes y 1 Mbyte.
La figura 29 proporciona una visión simplificada de la estructura del Pentium II,
resaltando la ubicación de las tres caches.
Bus del sistema
Caché L2
(256K-1M)
Unidad de interfaz del bus
Caché de
instrucciones
L1 (8-16K)
Cache de datos L1
(8-16K)
Captar
Unidad de
Captación y
decodificación
de
instrucciones
Cargar
Unidad de
envío y
ejecución
Memorizar
Unidad de
retirada
Depósito de instrucciones (buffer de reorden-ROB)
Figura 29. Diagrama de bloques del Pentium II
89
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 5.4.2: uso de arquitectura superescalar en el microprocesador
Pentium II.
El microprocesador 80486 no disponía de elementos superescalares; el Pentium
original tenía unas características superescalares modestas, que consistían en la
utilización de dos unidades de ejecución de enteros independientes. El Pentium
Pro introdujo un diseño completamente superescalar. Por su parte, el Pentium II
tiene básicamente la misma organización superescalar que el Pentium Pro.
Los elementos esenciales de la organización superescalar son: la unidad de
captación y decodificación de instrucciones, la unidad de envío y ejecución, y la
unidad de retiro. Se describe a continuación la operación de cada una de ellas:
Operación de la unidad de captación y decodificación
La figura 30 es un esquema simplificado de la unidad de captación y
decodificación del Pentium II. La operación de captación consta de tres etapas
encauzadas:
90
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Desde la cache de
instrucciones
Camino de 32 bytes
IFU1
Buffer de instrucciones
(contiene una línea)
Siguiente IP
16 bytes
Decodificador de
longitud de
instrucciones
IFU2
Predicción dinámica
de saltos
16 bytes
Etapa de alineación
para los
decodificadores
IFU3
16 bytes
ID1
Decodificador 0
(Complejas)
Decodificador 1
(Sencillas)
Decodificador 2
(Sencillas)
Secuenciador de
instrucciones de
microcódigo
6 x 118 bits
ID2
Cola de instrucciones
decodificadas
Predicción estática
de saltos
3 x 118 bits
3 x 118 bits
RAT
Asignador de registros
Al ROB
Figura 30. Unidad de captación/decodificación del Pentium II
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
Para comprender el funcionamiento de esta etapa es necesario describir la
primera etapa de la unidad de decodificación de instrucciones, ID1. Esta etapa es
capaz de manejar tres instrucciones en paralelo. ID1 traduce cada instrucción en
de una a cuatro microoperaciones cada una de 118 bits. ID1 contiene tres
decodificadores. El primero de ellos puede manejar instrucciones que se
traduzcan hasta en cuatro microoperaciones. El segundo y el tercer decodificador
maneja instrucciones sencillas que correspondan a una única microoperación
(instrucciones registro a registro e instrucciones de carga). Si más de una
instrucción es compleja, las instrucciones deben introducirse en ID1 en etapas, de
tal modo que el segundo y tercer decodificador no se les dé una instrucción
compleja. Las instrucciones que requieren más de cuatro microoperaciones se
transfieren al secuenciador de instrucciones de microcódigo (MIS, microcode
instruction sequencer), el cual funciona como unidad microprogramada.
La salida de ID1 o MIS se introduce en la segunda etapa de decodificación, ID2,
es un bloque de hasta seis microoperaciones a la vez. En este punto, hay una
segunda ocasión para predecir saltos. Las microoperaciones encoladas en ID2
pasan a través de una fase de renombramiento de registro (RAT, register
allocator). El RAT transforma las referencias a lo 16 registros de la arquitectura.
Después el RAT introduce las microoperaciones revisadas al buffer de
reordenación (ROB, reorder buffer). Las microoperaciones entran al ROB en
orden; después son enviadas desde el ROB a la unidad de envío/ejecución sin
orden.
Operación unidad de envío/ejecución
La figura 31 es un esquema simplificado de la unidad de envío/ejecución del
Pentium II. La central de reservas (RS, reservation station) es responsable de
recuperar las microoperaciones del ROB., enviándolas a su ejecución y guardando
los resultados de nuevo en el ROB. La RS busca en el ROB microoperaciones
cuyo estado indique que la microoperación dispone de todos sus operandos. Si
está disponible la unidad de ejecución que necesita una microoperación, la RS
capta esa microoperación y la envía a la unidad de ejecución conveniente. Se
pueden enviar hasta cinco microoperaciones en un ciclo.
92
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
Puerto 4
A/desde
ROB
C
e Puerto 3
n
t
r
a Puerto 2
l
Unidad de ejecución
de almacenamientos
Unidad de ejecución
de almacenamientos
Unidad de ejecución
de cargas
d
e
R
e
s
e
r
v
a
s
A/desde la
cache de
datos
Desplazador MMX
ALU MMX
Puerto 1
IEU (sencillas) Y JEU
ALU MMX
Multiplicador MMX
IEU (complejas)
FPU (complejas)
Puerto 0
FPU (sencillas)
Figura 31. Unidad de envío/ejecución del Pentium II
Unidad de Retiro
La unidad de retiro (RU, retire unit) va procesando el buffer de reordenación para
entregar los resultados de la ejecución de instrucciones. En primer lugar la RU
debe tener presentes los fallos en las predicciones de salto, y las
microoperaciones que se hayan ejecutado pero para las cuales los saltos
precedentes no se hayan validado. Una vez que se determina que una
microoperación se ha ejecutado y no es vulnerable a eliminación debido a un fallo
de predicción se marca como lista para ser retirada. Cuando se ha retirado la
instrucción previa del Pentium y todas las microoperaciones de la siguiente
instrucción se han marcado como listas para ser retiradas, la RU actualiza los
93
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
registros de la arquitectura afectados por esta instrucción, y quita del ROB la
microoperación.
Cambios al software del Pentium II
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.
Fecha de
Velocidad Ancho
presentación
de reloj de bus
Número de
transistores
Memoria
direccionable
Memoria
virtual
Breve
descripción
4004
15/11/71
108 KHz.
4 bits
2.300 (10
micras)
640 byte
Primer chip con
manipulación
aritmética
8008
1/4/72
108 KHz.
8 bits
3.500
16 KBytes
Manipulación
Datos/texto
64 KBytes
10 veces las (6
micras)
prestaciones del
8008
1 MegaByte
10 veces las
prestaciones del
8080
8080
1/4/74
2 MHz.
8 bits
6.000
5 MHz.
29.000
8086
8/6/78
8 MHz.
16 bits
(3 micras)
10 MHz.
5 MHz.
8088
1/6/79
8 bits
Idéntico al 8086
excepto en su bus
externo de 8 bits
29.000
8 MHz.
8 MHz.
134.000
80286
1/2/82
10 MHz.
16 Bits
De 3 a 6 veces las
prestaciones del
8086
16 Megabytes
1
Gigabyte
4 Gigabytes
Primer chip x86
64
capaz de manejar
Terabytes juegos de datos
de 32 bits
(1.5 micras)
12 MHz.
16 MHz.
Microprocesador
275.000
20 MHz.
17/10/85
32 Bits
25 MHz.
Intel 386 DX®
(1 micra)
33 MHz.
Microprocesador
16 MHz.
16/6/88
Intel 386 SX®
20 MHz.
Microprocesador
10/4/89
Intel 486 DX®
275.000
16 Bits
25 MHz.
(1 micra)
(1 micra, 0.8
32 Bits micras en 50
MHz.)
94
Bus capaz de
direccionar 16 bits
procesando 32bits
Terabytes a bajo coste
64
4 gigabytes
64
4 Gigabytes
Terabytes
Cache de nivel 1
en el chip
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
33 MHz.
50 MHz.
16 MHz.
Microprocesador
22/4/91
Intel 486 SX®
4 Gigabytes
Idéntico en diseño
al Intel 486DX,
pero sin
Terabytes coprocesador
matemático
Memoria
direccionable
Memoria
virtual
1.185.000
20 MHz.
32 Bits
25 MHz.
64
(0.8 micras)
33 MHz.
Fecha de
Velocidad Ancho
presentación
de reloj de bus
Número de
transistores
Breve
descripción
60 MHz.
66 MHz.
75 MHz.
90 MHz.
Procesador
3,1 millones
100 MHz.
22/3/93
Pentium®
32 Bits
120 MHz.
Arquitectura
escalable. Hasta 5
veces las
Terabytes prestaciones del
486 DX a 33 MHz.
64
4 Gigabytes
(0.8 micras)
133 MHz.
150 MHz.
166 MHz.
200 MHz.
150 MHz.
Procesador
5,5 millones
27/3/95
180 MHz.
64 Bits
PentiumPro®
Arquitectura de
ejecución
dinámica con
Terabytes procesador de
altas prestaciones
64
4 Gigabytes
(0.32 micras)
200 MHz.
233 MHz.
Procesador
7,5 millones
7/5/97
266 MHz.
PentiumII®
64 Bits
(0.32 micras)
S.E.C., MMX,
Doble Bus Indep.,
Ejecución
Terabytes Dinámica
64
4 Gigabytes
300 MHz.
Tabla 8. Especificaciones técnicas de los microprocesadores Intel
Fuente: http://www.duiops.net/hardware/micros/microshis.htm
95
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
4.- El avance de la tecnología ha traído consigo la aparición de una cantidad
importante de nuevos bienes y servicios de carácter tecnológico, como los
móviles, ordenadores, los servicios de Internet, etc. El desarrollo de la
investigación e innovación permite la constante actualización y renovación del
sector tecnológico, tal es el caso de la potencia de los microprocesadores, la
cual se duplica cada 18 meses.
Con base en la información anterior analice la evolución de la velocidad de los
microprocesadores Intel y describa las mejoras del desempeño obtenidas en la
construcción de computadoras personales.
EJERCICIOS DE AUTOEVALUACIÓN
1.- Si compara la arquitectura del microprocesador 80386 con la del 80486 no
encontrará diferencias. Sin embargo, el tiempo de ejecución de las
instrucciones varía significativamente de un microprocesador a otro.
Con base en la información analice cómo ha evolucionado el tiempo de
ejecución de las instrucciones en estos microprocesadores para la mejora del
desempeño.
2.- La unidad de coma flotante del microprocesador Pentium se ha rediseñado
totalmente respecto a la que usa el 80486. Este desarrollo ha ocasionado la
ejecución más rápida de operaciones aritméticas y de carga de datos.
Tome como base lo antes expuesto y realice lo siguiente:
- Estudie la construcción de la unidad de coma flotante en el Pentium II y
describa las mejoras incluidas en su construcción para un mejor
desempeño.
96
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
CONSULTA EN OTROS LIBROS
[Sayers 1995]: trata arquitecturas prácticas de microprocesadores de 8, 16 y 32
bits.
[Tokheim, 1996]: incluye información sobre microprocesadores de la compañía
Intel y Motorola.
[Stallings 2000]: destaca las mejoras del diseño de microprocesadores tomando
como ejemplos el microprocesador Pentium II y el PowerPC.
CONSULTA EN LA WEB
http://www.duiops.net/hardware/micros/microshis.htm: presenta la historia de los
microprocesadores Intel.
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.
http://petra.euitio.uniovi.es/~i1766818/TUTOR/TUTOR06.htm#1: describe de una
manera muy sencilla los microprocesadores Intel a partir del modelo 80486.
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
1.- En el 80486 casi la mitad de las instrucciones son ejecutadas en un período de
reloj, en vez de los dos períodos que necesita el 80386 para ejecutar
instrucciones similares.
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 6
EL COPROCESADOR ARITMÉTICO Y LA TECNOLOGÍA MMX
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.
A partir de la introducción del 80486, Intel incorporó el coprocesador aritmético
junto con el procesador principal, por lo que su existencia dejó de ser opcional,
convirtiéndose en estándar. Con cada generación de CPU utilizada en sistemas
de computadoras personales Intel también introducía su correspondiente
coprocesador.
La unidad 6 del presente material incluye el estudio del funcionamiento de la
familia de coprocesadores aritméticos etiquetada como 80X87. También se incluye
en esta unidad el estudio de la tecnología MMX, introducida por Intel en su línea
de procesadores Pentium.
Aunque no se pueda considerar la tecnología MMX como un procesador en si
mismo, es uno de los mayores pasos que ha dado Intel. Este realce incluye 57
nuevas instrucciones muy optimizadas para tareas multimedia. Tales instrucciones
usan una técnica conocida como SIMD (single-instruction, múltiple-data), es decir
una secuencia de instrucciones y múltiples secuencias de datos que posibilita
efectuar la misma operación, tal como una suma o una multiplicación con varios
elementos de datos a la vez.
Objetivo de la Unidad 6: Analizar programas que resuelvan problemas
aritméticos, para la descripción de la operación del coprocesador aritmético o de la
tecnología MMX.
Contenido de la Unidad 6: el contenido de la unidad contempla el estudio de los
siguientes temas:
6.1 El coprocesador aritmético
6.2 La tecnología MMX: tipos de datos y conjunto de instrucciones.
99
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
REFERENCIA
TEMA
CONTENIDO
CAPÍTULO
Formato de datos para el
coprocesador aritmético.
14
6.1 El Coprocesador
Aritmético.
6.2 La tecnología
MMX: Tipos de datos
y conjunto de
instrucciones.
Conjunto de instrucciones.
El texto Los
Microprocesadores
Intel, B. B. Brey.
Programación con el
coprocesador aritmético.
.
Introducción a la
tecnología MMX. Tipo de
datos e instrucciones.
Tabla 9. Temas de la Unidad 6
6.1 El coprocesador aritmético
Es un microprocesador de instalación opcional, también denominado Unidad de
Punto Flotante, que auxilia al microprocesador en el uso eficiente de programas de
graficación, cálculos matemáticos complejos y diseño, lo cual al especializarse en
dichas funciones acelera la velocidad con que una computadora puede responder
a necesidades tan sofisticadas.
Los coprocesadores están todavía mas críticamente ajustados a la velocidad del
reloj que los procesadores normales. Por lo tanto, debe asegurarse que cualquier
coprocesador que se seleccione para un sistema esté diseñado para manejar la
frecuencia de reloj de su computadora.
Una vez estudiado el contendido del tema 6.1 indicado en la tabla 9, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Qué tipos de datos maneja el coprocesador?
 ¿Qué tipos de números flotantes soporta el coprocesador?
 ¿Cuáles son las directivas que emplea el coprocesador para almacenar
datos?
100
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
Programación con el coprocesador aritmético
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.
EJEMPLO 6.1.1: operación de la pila del coprocesador aritmético 80387
al sumarse dos números reales.
El siguiente programa efectúa la suma de dos números reales, el resultado es
posteriormente almacenado en la variable TOTAL:
REAL1
REAL2
TOTAL
.MODEL SMALL
.386
.387
.DATA
DD
30.0
DD
1.3
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
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
FLD REAL1
ST(0)
FLD REAL2
ST(0)
REAL2
ST(1)
ST(1)
REAL1
ST(2)
ST(2)
ST(3)
ST(3)
REAL1
ST
FSTP TOTAL
FADD ST(0), ST(1)
ST(0)
REAL1 + REAL2
ST
ST(0)
ST
ST(1)
ST(1)
ST(2)
ST(2)
ST(3)
ST(3)
ST
Figura 32. Operación de la pila del coprocesador 80387
6.2 La tecnología MMX: tipos de datos y conjunto de instrucciones
La tecnología MMX está diseñada para acelerar las aplicaciones de multimedia y
de comunicaciones mediante la inclusión de nuevas instrucciones y tipos de datos
que permiten a las aplicaciones alcanzar un mejor rendimiento. Estas
instrucciones usan una técnica conocida como SIMD (Simple Instrucción, Múltiples
Datos) para dar un mejor rendimiento a la Multimedia y la computación de las
comunicaciones.
Una vez estudiado el contenido del tema 6.2 indicado en la tabla 9, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Para qué tipo de aplicaciones están diseñadas específicamente las
instrucciones MMX?
 ¿Qué registros del coprocesador aritmético utiliza la tecnología MMX?
102
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
EJEMPLO 6.2.1: uso de la instrucción PADDB de la tecnología MMX
disponible en el Pentium II.
La instrucción PADDB toma como operando un byte empaquetado, y realiza en
paralelo sumas con cada posición de byte para producir un byte empaquetado de
salida.
Una característica inusual que presenta el conjunto de instrucciones MMX es la
introducción de la aritmética de saturación. Con la aritmética sin signo ordinaria,
cuando una operación produce un desbordamiento (es decir, se produce una
acarreo en la posición del bit mas significativa) el bit se trunca. Considere, por
ejemplo las dos palabras en hexadecimal, F000H y 3000H. Su suma se expresaría
como:
F000H =
+3000H =
1111 0000 0000 0000
0011 0000 0000 0000
1 0010 0000 0000 0000 = 2000H
Acarreo
Si los dos números representaban intensidad de imagen, el resultado de la suma
hace que la combinación de zonas sombreadas oscuras aparezca como más
clara. Esto no es lo que se pretende normalmente. Mediante la aritmética con
saturación, cuando la suma produce un desbordamiento, o la resta produce un
desbordamiento negativo, el resultado se fija respectivamente al mayor o al menor
valor representable. Para el ejemplo dado, la aritmética con saturación daría
como resultado:
F000H =
+3000H =
1111 0000 0000 0000
0011 0000 0000 0000
1 0010 0000 0000 0000 = 2000H
Acarreo
1111 1111 1111 1111 = FFFFH
Suma con saturación
103
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
EJEMPLO 6.2.2: composición de una imagen típica de vídeo mediante el
uso de instrucciones MMX.
Una función típica de vídeo es el efecto de desvanecimiento o extinción progresiva
(fade-out) y reaparición (fade-in), mediante el cual una imagen A se deshace y
convierte gradualmente en otra B. Las dos imágenes se combinan mediante una
media ponderada:
Pixel_resultado = Pixel_A x fade + Pixel_B x (1 – fade)
Este cálculo se efectúa para cada posición de punto de imagen en A y B. Si se
produce una secuencia de video mientras fade está cambiando progresivamente
desde 1 a 0 (con una escala ajustada a un entero de 8 bits), el resultado es una
transformación paulatina de la imagen A en la imagen B.
La figura 33 muestra para un conjunto de puntos de imagen, la secuencia de
pasos necesaria. Las componentes de pixel de 8 bits son transformadas en
elementos de 16 bits para adaptarlas al tamaño de las multiplicaciones MMX de 16
bits.
104
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Alpha
Alpha
Azul
Azul
Verde
Verde
Rojo
Rojo
Imagen A
Imagen B
Ar3
1. Desempaquetar
bytes de
componentes de
pixel rojo de las
imágenes A y B
Ar3
Ar2
Ar2
Ar1
Ar1
Ar0
Br3
Ar0
Br3
Br2
Br2
Sustracción
2. Restar la imagen
B de la imagen
A
r3
r2
r1
r0
X
X
X
X
fade
fade
fade
fade
3.Multiplicar el
resultado por el
valor de fade
fade x r3
4.Sumar los pixels
fade x r2
+
+
Br3
Br2
fade x r1
+
+
Br1
Br0
fade x r0
de la imagen B
nuevor3
5.Volver a
nuevor2
empaquetar en
bytes los nuevos
píxels
compuestos
nuevor1
r3
r2
nuevor0
r1
r0
Figura 33. Composición de imagen en una representación de planos de colores
105
Br1
Br1
Br0
Br0
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
A continuación se presenta el código MMX que ejecuta las operaciones antes
indicadas:
PXOR
MOVQ
MM7, MM7
MM3, fad_val
MOVD
MM0, imagenA
MOVD
MM1, imagenB
PUNPCKBLW
PUNPCKBLW
PSUBW
PMULHW
MM0,
MM1,
MM0,
MM0,
PADDDW
PACKUSWB
MM0, MM1
MM0, MM7
MM7
MM7
MM1
MM3
; poner a cero MM7
; cargar el valor de fade replicado 4
veces
; cargar las componentes de rojo de 4
píxeles de la imagen A
; cargar las componentes de rojo de 4
píxeles de la imagen B
; desempaquetar a 16 bits 4 pixels
; desempaquetar a 16 bits 4 pixels
; restar la imagen B de la imagen A
; multiplicar los valores de la resta por
el valor de fade
; sumar el resultado a la imagen B
; empaquetar en bytes los resultados
de 16 bits
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
Analice la sección del programa dado y describa cómo la ejecuta el
coprocesador. Asuma que DATA está definida como una localidad de memoria
de 64 bits.
2.- Describa cómo ocurre la saturación con signo, si las cantidades a ser sumadas
son de un byte.
EJERCICIOS DE AUTOEVALUACIÓN
1.- El siguiente conjunto de instrucciones ha sido extraído de un programa
desarrollado para ser ejecutado por el coprocesador aritmético:
106
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MODEL SMALL
.
.
.
RAD .DD 2.34
.
.
FLD
RAD
.
.
.
Analice la sección del programa dado y describa que función realiza la
instrucción FLD RAD.
2.- A continuación se presenta la sección de un programa que emplea
instrucciones MMX, tales como:
PADDB
MM1, MM2
Para la instrucción dada, responda lo siguiente:


¿Qué tipo de operación permite realizar?
Describa qué función realiza esta instrucción.
CONSULTA EN OTROS LIBROS
[Stallings 2000]: destaca las mejoras del diseño los microprocesadores tomando
como ejemplos el microprocesador Pentium II y el Power PC.
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
1.- En la sección del programa dado la instrucción FLD RD carga el valor
almacenado en RAD en ST.
2.- Solución:


La instrucción permite realizar la operación aritmética de la suma.
Esta instrucción suma el contenido completo de 64 bits del registro MM2 al
contenido del registro MM1, byte por byte. El resultado es ubicado en MM1.
107
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MÓDULO III
PROGRAMACIÓN DEL MICROPROCESADOR
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.
El desarrollo de la solución implicará la codificación de algoritmos en un lenguaje
ensamblador de un microprocesador Intel y la implementación del programa
codificado en un software simulador, el cual proporciona un modelo real del
microprocesador.
Objetivo del Módulo III: Implementar, con sentido lógico y creativo, programas
específicos, haciendo uso de los microprocesadores.
El módulo III está estructurado en dos unidades:
Unidad 7:
Programación en lenguaje ensamblador
Unidad 8:
Implementación de programas en el microprocesador
109
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 7
Programación en Lenguaje Ensamblador
Los programas que convierten un programa de usuario escrito en algún lenguaje a
otro lenguaje se llaman traductores. El lenguaje en el que está escrito el programa
original se llama lenguaje fuente, y el lenguaje a que se convierte se llama
lenguaje objeto o lenguaje de máquina. El lenguaje fuente es en lo esencial una
representación simbólica (lenguaje mnemotécnico) de un lenguaje de máquina
numérico, el traductor se llama lenguaje ensamblador. Las computadoras siguen
utilizando el lenguaje de máquina para procesar los datos, pero los programas
ensambladores traducen antes los símbolos de código de operación especificados
a sus equivalentes en lenguaje de máquina. A este proceso es al que se le
denomina ensamblado de código. Para facilitar la elaboración de programas a este
nivel se desarrollaron los ensambladores y el lenguaje ensamblador.
En la unidad 7 se presenta el uso del lenguaje ensamblador, específicamente para
los microprocesadores de la familia INTEL. El estudio de esta unidad afianzará en
el estudiante los conocimientos obtenidos en el curso, especialmente en lo que
respecta a la programación. Para facilitar el desarrollo de este objetivo en el
trabajo práctico, se incluyen en esta unidad algunos ejemplos que le servirán de
guía.
Objetivo de la Unidad 7: Codificar algoritmos, utilizando un lenguaje ensamblador
y las técnicas apropiadas, para la resolución de un problema específico.
Contenido de la Unidad 7: el contenido de la unidad contempla el estudio de los
siguientes temas:
7.1
7.2
Programación modular
Programas ejemplo
111
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
TEMA
MATERIAL DE
REFERENCIA
CAPÍTULO
7.1 Programación modular
El texto Los
microprocesadores
Intel, B. B. Brey.
7
7.2 Programas ejemplo
Tabla 10
ATENCIÓN: muchos de los ejemplos que se presentan en el capítulo 7
del 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.
112
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
7.1 Programación Modular
La mayoría de las aplicaciones desarrolladas en lenguaje ensamblador se
desarrollan en módulos que posteriormente pueden ser enlazados mediante un
programa enlazador que se encuentra disponible en el sistema.
Una vez estudiado el contendido del tema 7.1 indicado en la tabla 10, usted estará
en capacidad de responder las siguientes preguntas:
 ¿Cuál es la función del programa enlazador?
 ¿Qué tipo de extensión tiene el programa generado por el programa
enlazador?
7.2 Programas Ejemplo
Revise los programas de ejemplos presentados en la sección 7.2 del capítulo 7
del libro de texto del curso.
EJEMPLO 7.2.1: uso del Lenguaje Ensamblador para ejecutar una
operación aritmética.
Una CPU puede interpretar y ejecutar instrucciones de máquina. Estas
instrucciones son, simplemente, números binarios almacenados en el computador.
Si un programador quisiera programar directamente en lenguaje de máquina,
necesitaría introducir los programas como datos binarios.
Considere la sencilla sentencia BASIC:
N=I+J+K
Suponga que queremos programar esta sentencia en un lenguaje de máquina y
dar a I, J y K los valores iniciales 2,3, y 4, respectivamente. La forma de hacer esto
se muestra en la figura 7.1a. El programa empieza en la posición 101
(hexadecimal). Se reserva memoria para las cuatro variables a partir de la posición
201. El programa consta de cuatro instrucciones:
1. Cargar el contenido de la posición 201 en el acumulador (AC).
2. Sumar a AC el contenido de la posición 202.
113
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
3. Suma a AC el contenido de la posición 203.
4. Memorizar el contenido de AC en la posición 204.
Esto es claramente un proceso tedioso y muy susceptible de errores. Una ligera
mejora consiste en redactar el programa en hexadecimal, en lugar de hacerlo en
binario ver figura 7.1b).
Para que la mejora sea más significativa, podemos hacer uso de nombres
simbólicos o mnemotécnicos de las instrucciones. El resultado es el programa
simbólico mostrado en la figura 7.1c. Cada línea sigue representando una posición
de memoria, y consta de tres campos separados por espacios. El primer campo
contiene la dirección de una posición. El segundo campo contiene el símbolo de
tres letras que representa su código de operación. Si se trata de una instrucción
que hace referencia a memoria, un tercer campo contiene la dirección. Para
memorizar un dato concreto en una posición dada, nos inventamos una
pseudoinstrucción con el símbolo DAT. Ésta es meramente un indicador de que el
tercer campo de la línea contiene un número en hexadecimal a memorizar en la
posición que especifica el primer campo.
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.
Con este último refinamiento hemos inventado un lenguaje ensamblador. Los
programas escritos en lenguaje ensamblador (programas en ensamblador) se
traducen a lenguaje de máquina mediante un ensamblador.
El desarrollo de los lenguajes ensambladores fue un logro importante en la
evolución de la tecnología de computadores. Fue el primer paso hacia los
lenguajes de alto nivel de hoy en día.
114
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Dirección
101
102
103
104
0010
0001
0001
0011
Contenido
0010
0000
0010
0000
0010
0000
0010
0000
0001
0010
0011
0100
101
102
103
104
LDA
ADD
ADD
STA
201
202
203
204
201
202
203
204
0000
0000
0000
0000
0000
0000
0000
0000
0010
0011
0100
0000
201
202
203
204
DAT
DAT
DAT
DAT
2
3
4
0
0000
0000
0000
0000
a) Programa en binario
(c) Programa simbólico
Dirección
101
102
103
104
Contenido
2201
1202
1203
3204
Etiqueta
FORMUL
Operación
LDA
ADD
ADD
STA
Operando
I
J
K
N
201
202
203
204
0002
0003
0004
0000
I
J
K
N
DATA
DATA
DATA
DATA
2
3
4
0
(a) Programa en hexadecimal
(c) Programa en ensamblador
Figura 7.1. Cálculo de la fórmula N = I + J + K.
EJEMPLO 7.2.2: programa en Lenguaje Ensamblador que imprime un
mensaje en pantalla.
Aquí se tratará todo lo concerniente con el lenguaje ensamblador y el conjunto de
directivas del Microsoft Macro Assembler v4.0. Si bien esto puede resultar
bastante extenso y complejo, aquí sólo se describirán las instrucciones y directivas
básicas.
Para comenzar se presenta un pequeño ejemplo que ilustra el formato del
programa fuente. Este ejemplo está completamente desarrollado en lenguaje
ensamblador que usa servicios o funciones de MS-DOS (system calls) para
imprimir el mensaje Hola mundo en pantalla.
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
115
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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
INICIO:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET SALUDO
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE
ENDS
END INICIO
; Punto de entrada al programa
; Pone dirección en AX
; Pone la dirección en los registros
; Obtiene dirección del mensaje
; Función: Visualizar cadena
; Servicio: Funciones alto nivel DOS
; Función: Terminar
; Marca fin y define INICIO
La descripción del programa es como sigue:

Las declaraciones SEGMENT y ENDS definen los segmentos a ser
utilizadas.

La variable SALUDO en el segmento DATA define la cadena a ser
desplegada. El signo de dólares al final de la cadena (denominado
centinela) es requerido por la función de visualización de la cadena de MSDOS. La cadena incluye los códigos para carriage-return y line-feed.

La etiqueta INICIO en el segmento de código marca el inicio de las
instrucciones del programa.

La declaración DW en el segmento de pila define el espacio para ser usado
por el stack del programa.

La declaración ASSUME indica que registros de segmento se asociarán
con las etiquetas declaradas en las definiciones de segmentos.

Las primeras dos instrucciones cargan la dirección del segmento de datos
en el registro DS. Estas instrucciones no son necesarias para los
segmentos de código y stack puesto que la dirección del segmento de
código siempre es cargada en el registro CS y la dirección de la declaración
del stack segment es automáticamente cargada en el registro SS.
116
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA

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.

La directiva END indica el final del código fuente y especifica a START
como punto de arranque.
EJEMPLO 7.2.3: uso de directivas PUBLIC y EXTRN EN LA
PROGRAMACIÓN MODULAR
A continuación se presentan dos módulos de programa: MAIN y TASK. El primer
módulo corresponde al módulo principal, mientras que el segundo al módulo que
contiene una rutina. Ambos módulos son archivos que se editan por separado, se
ensamblan por separado, pero se ligan juntos.
MÓDULO PRINCIPAL: MAIN.ASM
NAME
MAIN
PUBLIC EXIT
EXTRN PRINT:NEAR
STACK SEGMENT WORD STACK 'STACK'
DW
64 DUP(?)
STACK ENDS
DATA
DATA
CODE
SEGMENT WORD PUBLIC 'DATA'
ENDS
SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
JMP PRINT
; carga localización del segmento
; en el registro DS
; va a PRINT en el otro modulo
EXIT:
MOV AH, 4CH
INT 21H
CODE ENDS
END START
SUBMÓDULO: TASK.ASM
NAME TASK
PUBLIC PRINT
EXTRN EXIT:NEAR
DATA
SEGMENT WORD PUBLIC 'DATA'
117
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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).
2.-Codifique un programa que despliegue OK en la pantalla del monitor, utilizando
para ello el procedimiento DISP mostrado a continuación:
118
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
DISP
PROC
NEAR
MOV
AH, 2
INT
21H
RET
DISP
ENDP
3.- Dada la siguiente sentencia lógica:
X ←
P OR
Q
la cual permite asignar un valor lógico a la variable X dependiendo de los
valores lógicos que tomen las variables P y Q; los valores de las variables P y
Q estarán determinados por las siguientes condiciones lógicas:
P = 1 si
Q = 1 si
Y > Z caso contrario P = 0
U = W caso contrario Q = 0
Tome como base el planteamiento anterior y codifique un programa en el
Lenguaje Ensamblador del microprocesador 8080 que realice lo siguiente:
-
Asigne la dirección de carga inicial del programa en la localidad
de memoria: 0000 H
Compare los valores de las variables Y y Z
Obtenga el valor lógico de la variable P
Compare los valores de las variables U y W
Obtenga el valor lógico de la variable Q
Obtenga el valor lógico de la variable X
Envíe dicho valor al puerto de salida con dirección 01 H.
Finalice la ejecución
Considere que, previo a la ejecución del programa, se han cargado los valores
de las variables Y, Z, U y W en:
-
Registro B: Almacena el valor de la variable Z
Registro C: Almacena el valor de la variable W
Registro D: Almacena el valor lógico de la variable P
Registro E: Almacena el valor lógico de la variable Q
Localidad de memoria 0100 H: Almacena variable Y
Localidad de memoria 0101 H: Almacena la variable U
4.- Una aplicación de control de proceso será desarrollada mediante la
programación de un microcomputador basado en el microprocesador 8080.
El programa estará constituido por un conjunto de subrutinas, que permiten
realizar esta tarea. Una de estas subrutinas denominada LECTURAS, se
encargará de tomar 10 mediciones del proceso (leerá valores de un byte de
119
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
longitud) y almacenar cada una de ellas en localidades consecutivas de
memoria.
Tome como base el planteamiento anterior y codifique un programa en el
lenguaje ensamblador que permita realizar las funciones de la subrutina
LECTURAS. Las siguientes especificaciones deben ser incluidas en la
codificación:
- La dirección de carga inicial en memoria de la subrutina debe ser
0300 H.
- Las lecturas serán tomadas del puerto de entrada 01 H.
- Cada lectura será almacenada consecutivamente en un bloque de
memoria, con dirección inicial 0400 H.
CONSULTA EN OTROS LIBROS
[Stallings 2000]: incluye el repertorio de instrucciones de dos familias de
computadores: el Pentium II de Intel y el Power PC.
[Englander 2002]: incluye la descripción del conjunto de instrucciones de la familia
x86.
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.
http://www.alpertron.com.ar/80286.HTM: describe el microprocesador 80286 y las
instrucciones adicionales que controlan el sistema de memoria virtual.
RESPUESTA A LOS EJERCICIOS DE AUTOEVALUACIÓN
1.- El procedimiento es el siguiente:
SUMS
PROC
NEAR
ADD AX, BX
ADD AX, CX
ADD AC, DX
120
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
RET
SUMS
ENDP
2.- A continuación se muestra el programa:
MODEL
.CODE
STARTUP
TINY
MOV
MOV
CALL
MOV
CALL
.EXIT
END
BX, OFFSET DISP
DL, ‘O’
BX0
DL, ‘K’
BX
3.- Un programa codificado en lenguaje ensamblador que resuelve el problema
planteado se muestra a continuación:
N1:
N2:
ORG
XRA
LXI
MOV
INX
MOV
CMP
JC
MOV
MOV
MOV
CMP
JNZ
MOV
MOV
ORA
OUT
HLT
END
0000 H
A
H, 0100 H
A, M
H
D, 00 H
B
N1
D, 01 H
A, M
E, 00 H
C
N2
E, 01 H
A, D
E
02 H
4.- A continuación un modelo de subrutina que resuelve el problema planteado:
GUARDA:
ORG
LXI
MVI
XRA
IN
0300 H
H, 0400 H
B, 0A H
A
01 H
121
DCR
JNZ
RET
END
B
GUARDA
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
MOV
INX
M, A
H
122
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
UNIDAD 8
Implementación de programas en el microprocesador
Una vez que el estudiante se ha familiarizado con el repertorio de instrucciones de
la familia de microprocesadores Intel y ha desarrollado una solución a un problema
determinado mediante un programa, se pretende, en la unidad 8, implementar el
programa codificado, en un software simulador. El hecho de que el alumno
disponga de un simulador para un modelo de microprocesador real le permite
evidenciar su estructura y funcionamiento; además puede utilizarlo en casa, o en
cualquier lugar que disponga de un equipo de computación que cumpla con las
especificaciones técnicas requeridas.
Para el estudio de la unidad 8, el estudiante utilizará otro componente del paquete
instruccional, El Módulo Práctico. En este módulo encontrará toda la información
relacionada con el software simulador a ser utilizado para el desarrollo del trabajo
práctico de la asignatura. Adicionalmente, en el módulo son incluidos ejemplos
prácticos implementados en simuladores y una serie de ejercicios propuestos para
que el estudiante los desarrolle.
Objetivo de la Unidad 8: Implementar un programa en un microprocesador,
resolviendo un problema dado.
Contenido de la Unidad 8: el contenido de la unidad contempla el estudio de los
siguientes temas:
8.1 Software simulador de un microprocesador
8.2 Ejemplos de software simulador de
específicos
8.3 Uso del software simulador.
123
microprocesadores
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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:
Para facilitar la docencia existe un buen número de herramientas que simulan el
comportamiento de diversos microprocesadores, reales o ficticios. Los simuladores de
microprocesador, de los cuales existe una amplia oferta, son preferidos a los propios
micros reales, ya que permiten la detección de errores, facilitan la manipulación de datos
sin modificar elementos físicos y ofrecen en general mayores posibilidades. De este
modo se permite a los alumnos incorporar programas propios escritos en lenguaje
ensamblador y comprobar los resultados que produciría su ejecución sin los peligros de
usar una máquina real.
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)
2.- A continuación se presenta información relacionada con tres softwares de
simulación de la arquitectura del microprocesador Intel 8085. Se recomienda
su lectura por parte del estudiante, ya que esto le permitirá visualizar el
modelo de programación y la manera como opera este microprocesador.
Cabe destacar que en la red Internet se encuentran disponibles estas
aplicaciones; algunas podrán descargarse en forma gratuita para su uso, otras,
en cambio, se ofertan para la venta.
ATENCIÓN: puede suceder que, al momento de la consulta, algunas de
estas aplicaciones no estén disponibles en la web.
124
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Simulador del microprocesador 8085 versión 3 para Windows
Este simulador se oferta en Internet en la dirección:
http://www.insoluz.com/Micro/Micro.html.
La figura 8.1 presenta la arquitectura de este simulador, y a continuación se
resumen sus características:







Ofrece la transparencia completa de los registros, de los indicadores y de la
pila.
Ofrece la codificación fácil a través de una pista del clave de código con la
validación completa de la entrada de información.
Ofertas fáciles y el poner a punto extenso incluyendo puntos de interrupción
y perfilar.
Tuerca hexagonal de las ayudas / Ficheros de Obj.
También ofrece un editor de textos del ensamblador con destacar del
sintaxis.
El software es acuerdo y está disponible en lenguajes múltiples.
Fichero diseñado y detallado del receptor de papel de la ayuda.
La figura 8.2 muestra una pantalla de aplicación en la cual puede apreciarse un
programa en ejecución. Por su parte, en la figura 8.3, se muestra el proceso de
carga de un programa fuente, haciendo uso del editor de textos del ensamblador.
http://www.insoluz.com/Sp/Micro/Micro.html
125
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Figura 8.1. Simulador del microprocesador 8085 versión 3 para Windows – Proceso de entrada
126
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Figura 8.2. Simulador del microprocesador 8085 - Ejecución
127
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Figura 8.3. Simulador del microprocesador 8085 – Editor de textos del ensamblador
128
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Simulador del microprocesador 8085 versión 1.0.0
Desarrollado por Pedro J. Casanova Peláez, se encuentra disponible en forma
gratuita en la siguiente dirección electrónica:
http://voltio.ujaen.es/casanova/simu8085/sim8085.htm .
Este simulador presenta las siguientes características:







Funciona bajo Windows
Completo soporte de 64 KBytes de memoria y 256 puertos de E/S
Entrada de datos en hexadecimal
Todos los registros visibles y modificables
Ejecución paso a paso y seguida
Carga / almacenamiento en formato hexadecimal Intel de 8 bits
Ensamblador incluido
En la figura 8.4 pueden ser apreciados el modelo de programación de este
simulador.
129
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
Descargar
Volver a página anterior
Figura 8.4. Simulador del microprocesador del microprocesador 8085 versión 1.0.0
130
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
Figura 8.5. Simulador del microprocesador 8085 Versión 1.0
131
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
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.
http://www.cc.uah.es/hilera/docs/1994/c_taee/c_taee.htm: presenta información
relacionada con el desarrollo de un software simulador Microprocesador
MC68000.
132
Rodríguez Durán, O. (2009). Microprocesadores, Material Instruccional de Apoyo. Caracas: UNA
V. BIBLIOGRAFÍA
Brey, B. B. (2001). Los microprocesadores Intel. Arquitectura, programación e
interfaz de los procesadores 8086/8088/, 80186/80188, 80286, 80386, 80486
Pentium Pro y Pentium II. 5ta Edición. México: Prentice Hall.
Brey, B. B. (1995). Los microprocesadores Intel 8086/8088, 80186, 80286, 80386,
y 80486: Arquitectura, programación e interfaces. 3a. edición. México: Prentice
Hall.
Lameda , C y Grech, Pablo. (1984). Microprocesadores. Caracas. UNA.
Sayers, I. L., Adams E. A., Chester E. G. y Robson A. P. (1995). Principios de
microprocesadores. México: Cecsa.
Stallings, W. (2000). Organización y arquitectura de computadores. España:
Prentice Hall.
Tokheim, R. L. (1996). Fundamentos de los microprocesadores. España: División
Irwin. Mc-Graw Hill.
133
Descargar