Uploaded by Espacios Criticos Design

Fundamentos de micro procesadores - Roger

advertisement
www.FreeLibros.me
'4,.
¡
......
...
..
1 .
1
~-
•
.=­
.
,.
.
.;
-~-
,
1
..
~
~~.
.
'f
!
lf r
l
FUNDAMENTOS
•
DE LOS
MICROPROCESADORES
~1
. l..
~
,
1
I
!
.
.\
\
.
,
•
,
.'
..,.
1
l'
1I
I
•\-'.
-
.,
.
iI
I
•
•
!'
.
1
•
I
.
."
-
.
/'
'"
-r
,
•
.•,.
.
~
.,,\Ik
~
\.;
..
•
J
It
.
.,
Segunda edición
I1
L
~
'.~
".
J
t
~-
•
..
• ..
J
~
t'
"•
.'\
.
~ \
"
~
.....
\
-
~\
.-l'I---~.7"
.-
.
,.
.
~
~
www.FreeLibros.me
'2m
;
S
mí
e
•
-
DeS~ '(f"O 1/0
. A~<..~ ..-,De
6~(
(Cíe l
( Dv 0\)
ll.l~ vv~ o
1..0
S
J.
.",
5.vcD ¡;. B D,D) 3L,.D
/ De VJtqY\ L ~ f'/
I
\)x
1
..
t<qMJ
l.
FUNDAMENTOS
DE LOS
MICROPROCESADORES
r
Segunda edición
•
ROGER lo TOKHEIM
Henry Sibley High School
Mendota Heights, Minnesota
Traduccl6n
JUAN MANUEL SANCHEZ
Departamento de Informática y Automática
Facultad de Ciencias Físicas
Universidad Complutense de Madrid
Revisión técnica
ANTONIO VAQUERO
Catedrático de Informática
Facultad de Ciencias Físicas
Universidad Complutense de Madrid
8756 O
McGRAW-Hlll
.
MÉXICO. BUENOS AIRES • CARACAS • GUATEMALA
LISBOA • MADRID • NUEVA YORK • PANAMÁ • SAN JUAN
SANT AFÉ DE BOGOTÁ. SANTIAGO • SAO PAUlO
AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL
NUEVA DELHI • PARís • SAN FRANCISCO • SINGAPUR
STo LOUIS • SIDNEY • TOKIO • TORONTO
.
..
www.FreeLibros.me
•__
~-~-~---------c-
. A\<--~ De- DeS~ ~f"oll O
6 fe
(Dv O\J
(C'c--e l
5.00 lo· BDID) '3 k·E>
w~~owS t ( DeVfctll\ I L ~ t1 \.JX )
clo"S "5r5+e~8t..S.
5{' o ( u fo.. "r0\ V\
\J si'- O'-.
fM\, ve '5 c:p ., ~ de \t'\'teCC [<O~.
\<'\W\ J
.
e-,
ofe~~"oS
o
CéU n OV"l
P ::¿5cOU
1
,
PROLOGO'
"
t•
i
,
El estudiante de electrónica o especialista del futuro necesita conocer los microprocesadores y
sistemas basados en microprocesador. Este conocimiento incluye tanto el hardware como el
software de las microcomputadoras. Los microprocesadores son la base de un nuevo tipo de
dispositivos inteligentes; se encuentran en diversos productos: desde los juguetes de los nifios a los
automóviles, desde las microcomputadoras a los electrodomésticos, desde los robots y maquina­
ria industrial al equipo de entretenimiento casero. Gracias a estos dispositivos programables,
denominados microprocesadores, se espera que el desarrollo de máquinas inteligentes se acelere
en el futuro.
La segunda edición de Fundamentos de los Microprocesadores de la serie Schaum proporcio­
na al lector los aspectos básicos, que normalmente se cubren en un primer curso de microproce­
sadores. La filosofia de la serie Schaum, de concentrarse en los problemas característicos que
surgen cuando se estudia cualquier materia, está soportada en este libro gracias a la inclusión de
unos 1.100 problemas, suplementarios y resueltos, sobre microprocesadores y microcomputado­
ras. Las soluciones completas vienen con la mayoría de los problemas de este libro.
La segunda edición del libro contiene la mayor parte de los temas que hicieron que la primera
edición tuviese un gran éxito. En la segunda edición se han afiadido algunas cosas que reflejan
nuevas tendencias prácticas, cambios tecnológicos y sugerencias de estudiantes e instructores. Se
han afiadido dos capítulos que cubren los microprocesadores de 8 bits 6502/65C02 en sus aspec­
tos hardware y de programación. Por demanda popular, se ha afiadido un capítulo donde se
examinan algunos microprocesadores seleccionados de 16 y 32 bits. Entre éstos se encuentran los
lntel de 16 y 32 bits: 8086, 8088, 80186, 80188, 80286 Y80386; además de los microprocesadores
Motorola 68000, 68008, 68010, 68012, 68020 Y68030. Finalmente, se examinan los microproce­
sadores de 16 bits 65802 y 65816 de Western Design Center.
Los temas tratados en este libro se seleccionaron cuidadosamente para que coincipiesen con
los cursos impartidos en los niveles de escuela superior, profesional, colegio de cbm~idad y
colegio de principiantes. Se analizaron muchos de los libros de texto más utilizados a nivel
profesional y manuales de laboratorio sobre microprocesadores y microcomputadoras. Los temas
y problemas incluidos en este libro de la serie Schaum son similares a los encontrados en los
libros analizados. Los segmentos de los programas listados en este libro han sido cuidadosamente
comprobados para que funcionen en microcomputadoras de bajo costo. Algunos de estos entre­
nadores están disponibles en lntel Corporation, Heath/Zenith y Sistemas Lab-Volt.
La segunda edición de Fundamentos de los Microprocesadores de Schaum comienza con una
corta introducción a las computadoras, a continuación se presenta información general sobre
números, códigos y aritmética de computadoras junto con una breve revisión de los dispositivos
digitales básicos. Los sistemas comerciales basados en microprocesador son muy complejos, esta
es la razón por la que se utiliza un microprocesador genérico simplificado para introducir los
fundamentos de las microcomputadoras, el microprocesador, la programación del microprocesa­
dor y las interfaces con el microprocesador. El conjunto de registros y el repertorio de instrucci~
nes del microprocesador genérico son subconjuntos de los de la MPU 8080/8085. A continua­
ción, se cubren con cierto detalle tres de los microprocesadores de 8 bits más populares: las
unidades microprocesadoras descritas son la Intel 8080/8085, la Motorola 6800 y la 6502/65C02:
•
www.FreeLibros.me
•
.1
vi
~
J
PROlOOO
dedicándose dos capítulos a cada microprocesador. El capítulo final examina brevemente otros
microprocesadores más complejos de 16 y 32 bits de Intel, Motorola y Westem Design Center.
Extendemos nuestro agradecimiento a John Aliano de McGraw-Hill por su asistencia y pa­
ciencia: aJ estudiante de ingeniería Darrel K10tzbach por sus buenos efectos de investigación,
corrección meticulosa de las pruebas y comprobación cuidadosa de la mayoría de los programas
de este libro. Agradezco de manera especial a mi familia, Caroline, Dan y Marshall su ayuda,
paciencia y estímulo.
ROOER L. TOKHEIM
Ca
./
,
•
f
'/i
1fl.·.
~
""'
www.FreeLibros.me
,
Leo!,",
= Center.
mcia y pa­
CONTENIDO
~igación,
r'!'ogramas
.; ayuda,
HmEIM
PROLOGO ............................................................................ .
v
t
Capítulo l.
;cú
1.1.
1.2.
1.3.
lA.
~
Introducción .......................................................... .
Organización de la computadora ........................................ .
Organización de la microcomputadora ................................... .
Operación de la microcomputadora ..................................... .
f3
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.
Números binarios ......................................................
Números hexadecimales ......................... '............... '. . . . . . . . .
Números BCD .........................................................
Aritmética binaria ......................................................
Notación en complemento a 2 ...........................................
Aritmética en complemento a 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Agrupaciones de bits ......................... ~ . . . . . . . . . . . . . . . . . . . . . . . . . .
Códigos alfanuméricos ..................................................
13
16
20
21
24
28
31
35
Capítulo 3. DISPOSITIVOS DIGITALES BASICOS ................................ .
39
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
,
•
Puertas lógicas ........................................................ .
Combinación de puertas lógicas ...... : .................................. .
Rip-flops y cerrojos .................................................... .
Codificadores, decodificadores y visualizadores de siete segmentos .......... .
Buffers y dispositivos de tres estados ..................................... .
Memorias semiconductoras ............................................. .
Utilización de las RAM y ROM ......................................... .
,
39
43
46
52
55
57
60
~
~
~
"'
:.
}.
3
5(
NUMEROS, CODIGOS DE COMPUTADORA y ARITMETICA . . . . . . . .
Capítulo 2.
l
l
INTRODUCaON A LAS COMPUTADORAS .......................... .
- -~
Úlpítulo 4. FUNDAMENTOS DE LAS MICROCOMPUTADORAS ................ .
4.1. Introducción .......................................................... .
4.2. Arquitectura simplificada de una microcomputadora ...................... .
4.3. Organización simplificada de la memoria ................................ .
l.
www.FreeLibros.me
JS'• •
"
':1
":'j
;
,
-:
viii
CONTENIOO
4.4. Repertorio de instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . .
4.5. Organización simplificada de la CPU........ ..... ... . ................. ...
4.6. Operación de la microcomputadora ......................................
Capítulo 5.
79
84
89
EL MICROPROCESADOR .............................................. . 100
S.l.
5.2.
5.3.
5.4.
5.5.
5.6.
Características comunes de los microprocesadores ......................... .
Descripciones de la hoja de datos ........................................ .
Funciones y diagramas de las patillas .........•...........................
Arquitectura del microprocesador ....................................... .
Utilización del registro de direcciones/datos .............................. .
Utilización del puntero de pila ......................................... ..
100
103
110 ;
114 /
-/
:~
Capítulo 6. PROGRAMAOON DEL MICROPROCESADOR ......... , ............. . 136
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.
6.9.
6.10.
6.11.
6.12.
6.13.
Lenguajes máquina y ensamblador ..................................... .
Repertorio simplificado de instrucciones ................................ .
Repertorio de instrucciones: operaciones aritméticas ...................... .
Repertorio de instrucciones: operaciones lógicas ......................... .
Repertorio de instrucciones: operaciones de transferencia de datos ......... .
Repertorio de instrucciones: operaciones de bifurcación ................... .
Repertorio de instrucciones: operaciones de llamada y vuelta de subrutina .. .
Repertorio de instrucciones: operaciones misceláneas ..................... .
Escritura de un programa ............................................. .
Modos de direccionamiento ........................................... .
Bifurcación en programas .................•............................
Programas cíclicos .................................................... .
Utilización de subrutinas ............................................. ..
Capítulo 7. INTERFACES CON EL
MICROPROCES~DOR
l
LJ}
........................ . 213
{J
213
21S
219
224
230
/]
7.1. Introducción .......................................................... .
7.2. Interfaz con la ROM ............................. '" ...........•........
7.3. Interfaz con la RAM ................................................... .
7.4. Interfaces básicas de entrada/salida ..................................... ..
7.5. Interfaz con puertos prácticos de entrada/salida .................•..........
7.6. Sincronización de transferencias de entrada/salida de datos mediante interrup­
ciones ................................................................ .
7.7. Decodificación de direcciones ........................................... .
Capítulo 8.
136
140
142
152
158
16S
169
174
176
183
188
192
196
233
237
,'­
ig)
EL MICROPROCESADOR INTEL 8080/8085 .......................... . 247
8. l.
8.2.
8.3.
8.4.
Introducción ......................................................... .
Funciones y diagrama de patillas del 8085 .............................. .
Arquitectura del 8085 ................................................. .
Modos de direccionamiento
o • • • • • • • • • • • • • • • • • • • • • • •· • • • • • • • • • • • • • • • • • • • •
www.FreeLibros.me
247
248
253
261
"
~ .....
8.5.
8.6.
8.7.
8.8.
8.9.
8.10.
79
84
89
CONTEl'I100
ix
Repertorio de instrucciones del 8080/8085 ............. """" '................... ,. . ~ .
Instrucciones de transferencia de datos del 8080/8085 .................... .
Instrucciones aritméticas del 8080/8085 ................................. .
Instrucciones lógicas del 8080/8085 .................................... .
Instrucciones de bifurcación del 8080/8085 .............................. .
Instrucciones de pila, E/S y control de máquina del 8080/8085 ............ .
266
272
279
289
295
302
100
~.....
~~ ~
r" ...
110
114
t··...
136
CqítulD 9.
V
9.1.
9.2.
9.3.
904.
t:::: :~
......
iaa ...
r····
136
140
142
152
158
165
169
174
176
183
188
192
196
......
10.1.
10.2.
10.3.
lOA.
10.5.
10.6.
10.7.
10.8.
10.9.
/
~V
11.1.
11.2.
11.3.
1104.
r····
I
318
:324
329
335
Introducción ........................................................ .
Interpretación de un programa sencillo del 6800 ........................ .
Utilización del registro índice ........................................ ..
Un programa del 6800 que utiliza una tabla de búsqueda (Iook-up) ....... .
345
347
Hi~
383
388
390
397
405/
405 1-/
412 /'"~
418 . ./
422
/
Capítulo 12. EL MICROPROCESADOR 6502 ........................................ 432
12.1.
12.2.
12.3.
1204.
12.5.
12.6.
12.7.
12.8.
12.9.
12.10.
12.11.
Irrrup­
. ,. ......
Introducción .••......................................................
Funciones y diagrama de patillas del 6800 ............................. .
Arquitectura del 6800 ............................................... .
Modos de direccionamiento .......................................... .
Repertorio de instrucciones del 6800 .................................. .
Instrucciones de memoria y acumulador del 6800 ....••......... : ...... .
Instrucciones del puntero de pila y registro índice del 6800 .............. .
Instrucciones de bifurcación y salto del 6800 ........................... .
Instrucciones del registro de códigos de condición del 6800 .............. .
Capítulo 11. PROGRAMAOON DEL MICROPROCESADOR 6800 ................ .
213
213
215
219
224
230
Introducción...........................................................
Programas lineales. . . . .. .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . .
Programas cíclicos. . . . . .••. ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . .•••. . .. . •. .
Programas matemáticos ............•............ : .................... ,. .
Capítulo 10. EL MICROPROCESADOR MOTOROLA 6800 . .... . . . ..... .. ..... .. . .. 345
~
,'
PROGRAMACION DEL MICROPROCESADOR 8080/8085 ............ 318
233
237
247
247
248
253
261
Introducción ....................................................... .
Funciones y diagrama de patillas del 6502 ......•......................
Arquitectura del 6502 .............................................. .
Modos sencillos de direccionamiento ................................. .
Más modos de direccionamiento del 6502 ..•~•.•.......................
Repertorio de instrucciones del 6502 ................................. .
Instrucciones de transferencia de datos del 6502 ........... .' ........... .
Instrucciones de flujo de control del 6502 ............................. .
Instrucciones aritméticas del 6502 ................................... .
Instrucciones lógicas y de manipulación de bits del 6502 : ....... : ...... .
Instrucciones de interrupción y de control del sistema 6502 ....••.....••.
432
434
438
451
456
.
.--~
464
472
475
478
483
488
•
"
www.FreeLibros.me
4
~ ~.~ ~ --"_L.--·~·A
2 (f'1 F
~
S.....Z.rr_sÍ!lí'•.•.iIIá.$IIIIII111. ..·.....*.·IIII'9
••
7......d.
.... _-=-... . . . . . . . . . . . . . . . ..
. . .,. . . . .
x
CONTENIDO
Capítulo 13. PROGRAMAOON DEL MICROPROCESADOR 6S02 ......... ,'....... 494
13.1.
13.2.
13.3.
13.4.
13.5.
Introducción.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interpretación de un programa de suma BCD ...........................
Multiplicación binaria................................................
Decodificación hexadecimal a siete segmentos...........................
Utilización de subrutinas.. . . . .. . . .. . .. .. . . .. . . . .. .. . . .. . . .. . . .. .. . . . ..
494
498 ¡/'
504
511 (JI)
5181 /' /
Capítrllo U. AÍ..GUNOS MICROPROCESADORES DE 16 Y 32 BITS. . . . . . . . . . . . . . . 530
14.1.
14.2.
14.3.
14.4.
14.5.
14.6.
14.7.
Introducción.........................................................
Intel8086 y 8088 ................................................•...
Inte180186, 80188 y 80286 ...........................................
lntel 80386 ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Motorola 68000, 68008, 68010 Y68012 ................................
Motorola 68020 y 68030 ............................................. .
Westem Design Center 65802 y 65816 .................................
¡
530
531
535 1
;5:38~ •. J"',
. J-.)
549
INDICE ................................................................................. 555
-
~
'­
1l:
L;'¡;
,(,
•
:3
www.FreeLibros.me
J
_···. 494
1.........
l .... .
l ...... .
494
498
504
Capítulo 1
/
511@!I/
518 i
530
¡'
INTRODUCCION
A LAS COMPUTADORAS
,
530
53!
535 1
1.1. INTRODUCCION
538
541
,/:-1
546
549
/
Las computadoras se han venido utilizando de forma general desde los afios 1950. En un princi­
pio las computadoras digitales eran máquinas grandes y caras, utilizadas por los gobiernos y,
grandes empresas. El tamaño y forma de la computadora digital ha cambiado gracias a un nuevo
dispositivo denominado microprocesador. El microprocesador es un el (circuito integrado) que
tiene la mayoría de las capacidades de procesamiento de las grandes computadoras. El micropro­
cesador es un pequeño, pero extremadamente complejo, dispositivo LSI (gran escala de integra­
ción) programable. Las computadoras utilizan un programa almacenado. Las pequeñas computa­
doras, llamadas microcomputadoras. también utilizan el concepto de programa almacenado. Una
microcomputadora contiene un microprocesador y como mínimo algún tipo de memoria semi­
conductora.
Las grandes y caras computadoras habitualmente son unidades de propósito general. Normal­
mente se programan muchas veces y se utilizan para realizar muchas tareas. Las computadoras
dedicadas se emplean cada vez más, debido al uso de los pequeños y baratos microprocesadores.
Una computadora dedicada se programa para realizar sólo unas pocas tareas, como ocurre en los
juguetes, termostatos, automóviles y herramientas.
~..... 555
¡'h
1.2. ORGANIZACION DE LA COMPUTADORA
Las secciones tradicionales de una computadora digital se muestran en la Figura 1.1. El sistema
básico de la computadora consta de cinco unidades: la unidad de entrada, las unidades aritmética
y de control (contenidas en la CPU, o unidad central de tratamiento), la unidad de memoria y la
unidad de salida. Esta organización de las partes funcionales se denomina arquitectura de la
computadora.
Las unidades fisicas representadas por bloques de la Figura 1.1 constituyen el hardware. Para
que sea útil, la memoria de programa debe decir a la CPU qué tiene que hacer. La preparación de
la lista de instrucciones se denomina programación. La lista de instrucciones constituye un pro­
grama que se almacena de forma temporal o permanente en la memoria de programa. Estos
programas manipulan informaciones denominadas datos. Software es un término general utiliza­
do para denominar a todos los programas; si el software se almacena permanentemente en la
memoria programa, a veces, se denomina firmware.
En resumen, la computadora funciona de la siguiente forma: los programas y datos son
introducidos en la CPU y transferidos a sus respectivas posiciones de memoria. La cpe lee la
I
www.FreeLibros.me
'r r
.
(
(
l
'
"
~-;¡f""'----- .,...,._~~.
2
1
FUNDAMENTOS DE LOS MICROPROCESADORES
/
I
Entrada
J
I
CPU
Control + aritmética
J
I
Salida
~
"'IIIIIIIII~I.
111I11III
I
Memonade
programa
WI
Memona
de datos
1lJ
Memoria
Figura 1.1.
Organización general de una computadora.
primera instrucción de la memoria de programa y la ejecuta. Las instrucciones pueden ser tan
simples como SUMAR (ADD) dos números, TRANSFERIR (MOVE) un dato, INTRODUCIR
o SACAR (INPUT u OUTPUT) un dato, o BIFURCAR (JUMP) a una parte diferente del
programa. Cuando finalizan las manipulaciones de los datos, los resultados son transferidos a la
salida de la computadora. De nuevo, la mayoría de las acciones de la CPU son debidas a las
instrucciones almacenadas en el programa de memoria.
PROBLEMAS RESUELTOS
;;....
:ID. _
"III~
""111
_::.:."""",,,,,.1•. :.1:.:11
1.1.
"",,,111
Listar las cinco secciones funcionales de una computadora digital.
Solución:
Las cinco secciones funcionales de una computadora se muestran en la Figura 1.1 Y son las
unidades de entrada, control, aritmética, memoria y salida. CPU es un término general que incluye
el control y la aritmética, así como algunos otros elementos.
1.2.
Las unidades electrónicas reales como, por ejemplo, las representadas por las cajas de la
Figura 1.1 se denominan ___ , mientras que los programas que instruyen a la computa­
dora se denominan software.
- ~
.a._-"
la
.-:"
Solución:
Las unidades electrónicas fisicas reales de una computadora se denominan hardware.
1.3.
Una persona llamada programador escribe una lista de ___ , que se denomina
programa.
Solución:
Un programador escribe una lista de instrucciones que se denomina programa.
1.4.
Listar dos tipos de información que se introduzca y almacene en la memoria de una
computadora.
Solución:
El programa y los datos deben ser introducidos en la computadora y almacenados en me­
moria.
www.FreeLibros.me
-,11:
.:11".
-.".'
INTRODUCCION A LAS COMPUTADORAS
1.S.
3
La mayoría de las acciones de la CPU en una computadora son debidas a las instrucciones
almacenadas en la memoria de _ _ .
Solución:
La mayoria de las acciones de la CPU son debidas a las instrucciones almacenadas en la memo­
ria de programa. Los datos que se van a procesar se almacenan en la memoria de datos. En a l g u n a s ' j
computadoras, no hay diferencia fisica entre la memoria de programa y la de datos.
1.3. ORGANIZACION DE LA MICROCOMPUTADORA
•• "'1' '
Lteden ser tan
rrRODUCIR
diferente del
<'cridos a la
debidas a las
11 l.I Y son las
tn.l que incluye
Lcaj~
de la
a la computa­
L
,se denomina
t
,>
j
Un sistema microcomputador es una computadora digitaL Se utiliza el prefijo micro debido a su
pequeño tamaño y bajo costo. El microprocesador generalmente forma la sección de la CPU de
un sistema microcomputador, cuya organización está esbozada en la Figura 1.2. La microcompu­
tadora contiene las cinco secciones básicas de una computadora: (1) la unidad de entrada. (2) las
unidades de control y (3) aritmética contenidas en el microprocesador, (4) la unidad de memoria
y (5) la unidad de salida.
El microprocesador controla todas las unidades del sistema utilizando las líneas de control que
aparecen a la izquierda de la Figura 1.2. El bus de direcciones que aparece junto a las líneas de
control (16 conductores en paralelo) selecciona una cierta posición de memoria, puerto de entra­
da o puerto de salida. El bus de datos (ocho conductores paralelos), a la derecha de la Figura 1.2,
es un camino de doble dirección que se utiliza para introducir y sacar datos de la unidad micro­
procesadora. Es importante observar que la unidad microprocesadora (MPU) puede enviar, o
recibir, datos de la memoria utilizando el bus de datos.
Si un programa se va a almacenar de forma permanente, habitualmente se coloca en un
dispositivo de memoria denominado memoria de sólo lectura (ROM). La ROM normalmente es
una pastilla de memoria, programada permanentemente, en forma de Cl. La memoria temporal
donde se almacenan los datos, generalmente es un dispositivo integrado denominado memoria de
lectura/escritura (RWM). En la práctica, la memoria de lectura/escritura se denomina memoria
de acceso aleatorio. o RAM. Los programas de usuario de la microcomputadora, que son de
naturaleza temporal, también están almacenados en la sección RAM de la memoria junto a los
datos. Las secciones RAM y ROM de memoria aparecen separadas en la Figura 1.2 debido a que,
generalmente, son circuitos integrados separados.
El sistema de la Figura 1.2 representa la organización general de una microcomputadora. La
mayoría de ellas, como mínimo, deben tener estas características. Por claridad, es costumbre
omitir en los diagramas de bloque fuentes de alimentación, relojes y algunas líneas de realimenta­
ción de la unidad microprocesadora.
PROBLEMAS RESUELTOS
moria de una
1.6.
Los en me·
I
La CPU de una microcomputadora es un CI denominado ___ .
•
Solución:
La CPU de una microcomputadora. generalmente. es un CI denominado microprocesador. En
algunos diseños se necesitan varios CI para realizar el trabajo de la CPU.
www.FreeLibros.me
4
l
FUNDAMENTOS DE LOS MICROPROCESADORES
Del mundo
exterior
=.
::a
--------~:--~
...
....
,..
Microprocesador
CPU
Control + aritmética
Bus de datos
(8 líneas)
Memoria de programa
(ROM)
Bus de direcciones
--+--.¡
(16 líneas)
Memoria de datos
(RAM)
Salida(s)
~.....;:------.......
Al mundo
exterior
Figura 1 .2. Organización tipics de una microcomputadora.
1.7.
Acudir a la Figura 1.2. ¿Qué bloque de esta microcomputadora puede considerarse la
unidad de conlron
Solución:
El microprocesador (también identificado como CPU en la Figura 1.2) controla las demás unida­
des de la microcomputadora.
1.8.
Listar tres tipos de interconexiones en el sistema microcomputador de la Figura 1.2.
Solución:
Las interconexiones entre los CI de la microcomputadora de la Figura 1.2 son: el bus de direccio­
nes, el bus de datos y las líneas de control. En realidad hay más líneas entre los el que las mostradas
en la Figura 1.2.
www.FreeLibros.me
=
..
_~
... ..........-
~
Entrada(s)
LIneas de control
li
INTRODUCCION A LAS COMPUTADORAS
1.9.
5
El bus de direcciones de la Figura 1.2 es un camino de una dirección para la información
codificada, mientras que el bus de ___ es un camino de dos direcciones.
SoluciÓD:
El bus de datos es un camino de dos direcciones para la información del sistema microcomputa­
dor de la Figura 1.2.
1.10. Los programas permanentes, normalmente se almacenan en dispositivos integrados deno­
minados memorias de ___ - ___ .
(
Solución:
Los programas permanentes comúnmente se almacenan en dispositivos integrados denominados
memorias de sólo lectura (ROM).
,
1.11. Las siglas ROM ¿qué tipo de memoria de computadora referencian?
111: datos
lineas)
Solución:
ROM significa memoria de sólo lectura.
1.12. Los datos y los programas temporales de la microcomputadora se almacenan en memorias
denominadas _ _ (RAM, ROM).
Solución:
Los datos y programas temporales se almacenan en memorias denominadas RAM.
1.13. El almacenamiento de datos en la RAM de una microcomputadora es ___ (permanen­
te, temporal).
Solución:
El almacenamiento de la RAM es temporal.
1.14. El lugar por donde la información entra o sale de una computadora se denomina _ _
(puerto, zócalo).
Solución:
La información entra o sale de la computadora a través de sitios denominados puertos.
.,
~
~IftSiderarse la
~.:!~más
,
pITa
1.4. OPERACION DE LA MICROCOMPUTADORA
En la Figura 1.3 se muestra un ejemplo de como opera una microcomputadora. En el ejemplo se
ilustra el siguiente procedimiento:
unida­
1.2.
l. Pulsar la tecla A del teclado.
2. Almacenar la letra A en memoria.
J
3. Imprimir la letra A en la pantalla del monitor de tubo de rayos catódicos (eRn.
L
El procedimiento de entrada-almacenamiento-salida esbozado en la Figura 1.3 es una opera­
ción común de un sistema microcomputador. El hardware electrónico utilizado en un sistema
como el de la Figura 1.3 es bastante complicado. Sin embargo, la transferencia de datos en el
sistema ayudará a explicar el uso de las diferentes unidades de la microcomputadora.
-
www.FreeLibros.me
de direccio­
r las mostradas
,­ ¡
r
6
FUNDAMENTOS DE LOS MICROPROCESADORES
Microcomputadora
Teclado
Entrada
CPU
Almacenar A
2
...--+-_
Memoria
Salida
Monitor CRT
..
r-----'
A
I
I _____ .JI
'­
l'
Imprimir A
Figura 1 .3.
Operación tfpica de la microcomputadora.
Un diagrama más detallado en la Figura lA ayudará a comprender el procedimiento común
de entrada-almacenamiento-salida de la microcomputadora. Primero, observar cuidadosamente
los contenidos de la memoria de programa en la Figura 1.4. Observar que las instrucciones ya se
han cargado en las seis primeras posiciones de memoria. De la Figura lA, se desprende que las
instrucciones que están en la memoria de programa son:
1. INTRODUCIR (INPUT) el dato del puerto de entrada 1.
2. ALMACENAR (STORE) el dato del puerto 1 en la posición 200 de la memoria de
datos.
3. SACAR (OUTPUT) el dato al puerto de salida 10.
Observar que solamente hay tres instrucciones en el programa anterior, aunque puede parecer
que hay seis en la memoria de programa de la Figura 1.4. La razón para pensar esto, es que las
instrucciones se descomponen habitualmente en varias partes. La primera parte de la instruc­
ción 1 consiste en INTRODUCIR (INPUT) un dato. La segunda parte indica de dónde proviene
el dato (del puerto 1). La primera parte de acción de la instrucción se denomina operación y la
segunda parte operando. Operación y operando están localizados en posiciones separadas de
memoria en la memoria de programa de la Figura 1.4. Para la primera instrucción de la Figu­
ra 1.4, la posición 100 de memoria de programa contiene la operación de INTRODUCIR
(INPUT) mientras que la posición 101 contiene el operando (puerto 1) desde donde se introduci­
rá la información.
En el microprocesador de la Figura 1.4, se han identificado dos nuevas secciones denomina­
das registros. Estos registros especiales son el registro acumulador y el de instrucción.
www.FreeLibros.me
..~..
J
INTRODUCCION A LAS COMPUTADORAS
A del t edado
1
./
7
~
./
Entrada
puerto 1
~
./
./
f I
Acumulador
.~
MPU
ti I
Registro de instrucción
a
Microprocesador
./
J
,
Dirección
Contenido
100
\01
INTRODUCIR dato
102
ALMACENAR dato
8
103
en posición de
memoria 200
104
SACAR dato
14
105
al puerto 10
1
)
!<
. . . de direcciones
y líneas
decontrol .
3
'--0
I~
~
es denomina­
;n.
~
0{
del puerto 1
7
Bus de datos
9
13
./
Dirección
Contenido
200
A
memoria de
: se introduci­
j.
0J
./
•
::<..ODUCIR
.."
Memoria de programa
10
llUede parecer
10. es que las
de la instruc­
lIDde proviene
rperación y la
separadas de
.... de la Figu­
~
~
2
106
liento común
tdadosamente
lCCiones ya se
rende que las
1 .
..,
J
<:«
11
201
202
·í
203
~
Memoria de datos
~
Salida
puerto 10
./
l
~
A al monitor
CRT
Figura 1 .4. Operación paso a paso de una microcomputadora cuando
ejecuta las instrucciones de la memoria de programa.
www.FreeLibros.me
e
e
8
FUNDAMENTOS DE LOS MICROPROCESADORES
La secuencia de eventos que ocurren en la microcomputadora en el ejemplo de introducir­
almacenar-sacar de la Figura 1.3 se esboza en la Figura 1.4. El flujo de instrucciones y datos
puede seguirse en el diagrama por los números inscritos en los círculos. Recordar que el micropro­
cesador (MPU) es el centro de todas las transferencias de datos y operaciones. En la Figura lA se
pueden seguir los pasos que a continuación se detallan.
Paso l.
La MPU envía la dirección 100 al bus de direcciones. Una línea de control habilita
(conecta) la entrada de lectura en el CI de la memoria de programa (leer significa copiar informa­
ción de una posición de memoria). Este paso se simboliza en la Figura lA por un 1 inscrito en un
círculo.
Paso 2. La memoria de programa anuncia la primera instrucción (INTRODUCIR dato) al
bus de datos. y la MPU acepta este mensaje codificado. La instrucción se coloca en una posición
de memoria especial de la MPU, denominada registro de instrucción. La MPU decodifica (inter­
preta) la instrucción y determina que necesita el operando de la instrucción INTRODUCIR
dato.
Paso 3. La MPU envía la dirección 101 al bus de direcciones. La línea de control habilita la
entrada de lectura de la memoria de programa.
Paso 4.
La memoria de programa coloca el operando (del puerto 1) en el bus de datos. El
operando estaba localizado en la dirección 101 de la memoria de programa. Este mensaje codifi­
cado (la dirección del puerto 1) se acepta en el bus de datos y se coloca en el registro de instruc­
ción. La MPU decodifica ahora la instrucción completa (INTRODUCIR dato del puerto 1).
Paso 5. La MPU hace que se abra el puerto 1 utilizando el bus de direcciones y las líneas de
control en la unidad de entrada. La forma codificada de A es transferida y almacenada en el
acumulador de la MPU.
Es importante observar que la MPU sigue siempre una secuencia de busca-decodifica-ejecuta.
Primero busca la instrucción en la memoria de programa; segundo, la decodifica y tercero, la
ejecuta. Tratar de observar esta secuencia de busca decodifica-ejecuta en las dos instrucciones
siguientes. Continuar con el programa listado en la memoria de programa de la Figura 1.4.
Paso 6.
La MPU direcciona la posición 102 en el bus de direcciones; después habilita la
entrada de lectura en la memoria de programa utilizando las líneas de control.
Paso 7. El código para la instrucción ALMACENAR dato es leído en el bus de datos y es
aceptado por la MPU en el registro de instrucción.
Paso 8. La MPU decodifica la instrucción ALMACENAR dato y determina que necesita el
operando. La MPU direcciona la siguiente posición de memoria (103) Y habilita la entrada de
lectura de la memoria de programa.
Paso 9. El código para «en la posición de memoria 200» es colocado en el bus de datos por
la memoria de programa. La MPU acepta este operando y lo almacena en el registro de instruc­
ción. La instrucción completa «ALMACENAR datos en la posición de memoria 200» ha sido
buscada en memoria y decodificada.
Paso 10. Ahora comienza el proceso de ejecución. La MPU envía la dirección 200 al bus de
direcciones y habilita la entrada de escritura de la memoria de datos (escribir significa copiar
datos en una posición de memoria).
Paso 11. La MPU pone la información, almacenada en el acumulador, en el bus de datos (la
forma codificada de A). La A se escribe en la posición 200 de la memoria de datos. La segunda
instrucción ha sido ejecutada. El proceso de ALMACENAR no destruye el contenido del acumu­
lador, éste contiene todavía la forma codificada de A.
.
~ ".,
~
...
~.
'!
.~
P""Si'a 11
~
~
~.
lIIli
::r::q
'II!'"","':'~~~
~
--
....
~t
t
www.FreeLibros.me
1
..........
INTRODUCCION A LAS COMPUTADORAS
de introducir­
::es y datos
le el micropro­
l FtgUra 1.4 se
Ltrolinforma­
habilita
I!'iar
,.
,~rito
en un
lJOR dato) al
una posición
'Pdifica (interRODUCIR
I
Lo1 habilita la
IS de datos. El
lensaje codifi­
ro de instruc­
puerto 1).
y las líneas de
acenada en el
9
Paso 12. La MPU debe buscar la instrucción siguiente. Direcciona la posición 104 y habilita
la entrada de lectura de la memoria de programa.
Paso 13. El código de la instrucción «SACAR dato» se coloca en el bus de datos. La MPU
acepta la instrucción en el registro de instrucción, la decodifica y determina que necesita un ope­
rando.
Paso 14. La MPU coloca la dirección 105 en el bus de direcciones y habilita la entrada de
lectura de la memoria de programa.
Paso IS. La memoria de programa pone el código del operando «al puerto lO» en el bus de
datos. La MPU acepta este código en el registro de instrucción.
Paso 16. La MPU decodifica la instrucción completa «SACAR el dato al puerto 10» y activa
el puerto l O, utilizando el bus de direcciones y las líneas de control en la unidad de salida; coloca,
además, el código de A (todavía almacenado en el acumulador) en el bus de datos. La A es
transmitida desde el puerto 10 al monitor CRT.
La mayoría de los microprocesadores transfieren información de forma similar a la detallada
en la Figura 1.4. Las variaciones más grandes están probablemente en las secciones de entrada y
salida. A veces se necesitan algunos pasos más, para lograr que las secciones de entrada y salida
operen adecuadamente.
Es importante observar que la MPU es el centro y control de todas las operaciones y sigue la
secuencia de busca-decodifica-ejecuta. Sin embargo, las operaciones reales del microprocesador
son dictadas por las instrucciones listadas en la memoria del programa.
PROBLEMAS RESUELTOS
J
difica-ejecuta.
1.15. A la lista de las instrucciones ejecutadas por una microcomputadora se denomina ___ .
y tercero, la
instrucciones
BUra 1.4.
I
lIés habilita la
Solución:
A la lista de las instrucciones ejecutadas por una microcomputadora se denomina programa.
1.16. La mayoría de las instrucciones de una microcomputadora constan de dos partes denomi­
nadas: operación y ___ .
Solución:
La mayoría de las instrucciones constan de dos partes denominadas operación y operando.
, de datos y es
lUe necesita el
la entrada de
• de datos por
ro de instruc­
: II)¡.) ha sido
~oo
al bus de
:ica copiar
de datos (la
La segunda
lo del acumu-
IS
L.
.,,,,,;
1.17. Las instrucciones de la microcomputadora en la memoria de programa generalmente
están colocadas en orden ___ (consecutivo, aleatorio).
....
Solución:
Las instrucciones en la memoria de programa generalmente están colocadas en orden consecuti­
vo. Más tarde, se introducirán instrucciones especiales de bifurcación. para hacer que la MPU
bifurque a otras instrucciones no consecutivas. Nunca están colocadas en orden aleatorio.
1.18. Acudir a la Figura 1.4. Después de ejecutar la instrucción «SACAR dato al puerto tO>.ta
MPU apuntará a la posición de dirección ___ en la memoria de programa para la
siguiente instrucción.
Solución:
Después de ejecutar la instrucción «SACAR dato al puerto 10)) en la Figura 1.4, la MPU apunta­
rá a la posición de dirección 106 en la memoria del programa para la siguiente instrucción. La
www.FreeLibros.me
o·
'.'~
't
'J
¡;
I
,
10
1
FUNDAMENTOS DE LOS MICROPROCESADORES
posición de memoria del programa 106 está en blanco en la Figura 1.4, así que la acción de la M'JII_
será impredecible. Probablemente habrá que colocar aquí una instrucción de ESPERAR (w.!..
ALTO (HALT) para que pueda predecirse la operación de la computadora.
.~
"J
-
'''II1II
1.19. Acudir a la Figura 1.4. Una instrucción de la microcomputadora como, por eje1'f1t'lilo.
«ALMACENAR dato en la posición de memoria 20h~ producirá como resultado la t~_
ferencia de un dato de la MPU a la posición 201 de la memoria de ___ .
I
.!.
J-',
.5­
Solución:
Una instrucción como, por ejemplo, «ALMACENAR dato en la posición de memoria 201_
producirá como resultado la transferencia de un dato de la MPU a la posición 201 de la memoria de
datos.
fA
."
""
1.20. Acudir a la Figura 1.4. Una instrucción de la microcomputadora como, por ejemplo.,
«ALMACENAR dato en la posición de memoria 202» dará como resultado la transferen­
cia del dato del ___ (acumulador, registro de instrucción) de la MPU a la posición de
memoria ___ de la RAM.
Soluci6n:
Una instrucción como, por ejemplo, «ALMACENAR dato en la posición de memoria 202» dará
como resultado la transferencia del dato del acumulador de la MPU a la posición de memoria 202
de la RAM. Este dato estará entonces en la posición de memoria 202 de la RAM y en el acumulador
de la MPU. El contenido del acumulador no se destruye cuando se almacena el dato.
:1I1m
"l'!Ii!
"
::~II
1.21. El proceso de ___ (lectura, escritura) tiene lugar cuando se copia un dato de una posi­
"Iilli!e
ción de memoria.
."­
Solución:
El proceso de lectura tiene lugar cuando se copia un dato de una posición de memoria.
'IIAI:;
illPlr
..
•
1.22. Colocar datos en una posición de memoria es un proceso denominado ___ (lectura,
.
.
escritura) en memoria.
.­
Solución:
Colocar datos en una posición de memoria es un proceso denominado escritura en memoria.
:
..
.
'a.
1.23. Para cada instrucción en la memoria de programa, la MPU va a través de una secuen­
cia ___ - ___ - ___ .
Solución:
Para cada instrucción en la memoria de programa, la MPU va a través de una secuencia de
busca-decodifica-ejecuta. Algunos libros llaman a esta secuencia el ciclo de localiza-lee-interpreta­
ejecuta,
1.24. Acudir a la Figura 1.4. Después del paso 16, cuando se completa la instrucción «SACAR
dato al puerto !O», ¿qué dato contiene el acumulador de la MPU?
Solución:
El acumulador contendrá el código de A. La lectura de datos, de un registro o posición de
memoria. solamente copia la información que está allí y no destruye el dato.
www.FreeLibros.me
.
'.
..
1~
')'11<'"
-•
.....
..;J,
INTRODUCCION A LAS COMPUTADORAS
de la MPU
R (WAIT) o
II
1.25. Acudir a la 'Figura 1.4. Después del paso 1'6, ¿existirán todaVÍa las itistrucciones en las
posiciones de memoria 100 a lOS?
Solución:
Sí. Las instrucciones de lectura no destruyen los contenidos de esas posiciones de memoria.
,
""'"'! ejemplo,
la trans­
___ JO
PROBLEMAS SUPLEMENTARIOS
memoria 20 1»
:la memoria de
lA En electrónica, las siglas el significan _ _ _ _ .
Res. circuito integrado.
tpor ejemplo,
1.27. En electrónica, las siglas LSI significan _ _ _ _ _ _ .
Res. gran escala de integración .
la transferen­
• posición de
1.lI. En informática, las siglas epu significan _ _ _ _ _ _ •
~
Res.
lOria 202» dará
~ memoria 202
el acumulador
unidad central de tratamiento.
l.lt. Un CI LSI que tiene la mayoría de las capácidades de la CPU de una computadora se deno­
mina _ _ .
Res.
l.
,
microprocesador.
1.lI. En microcomputadoras, las letras MPU significan _ _ _ .
de una posi­
Res.
unidad microprocesadora.
moria.
1.31. Las microcomputadoras que realizan solamente una o dos tareas se dicen que son _ _ (de propó­
sito general, dedicadas).
Res. dedicadas.
L
1.32. Una organización clásica de computadora ¿qué cinco unidades importantes tiene?
Res. entrada, control, aritmética, memoria, salida.
(lectura,
~
I.D. Una lista de instrucciones de computadora se considera _ _ (hardware, software).
• memoria.
Res.
software.
1.34. Las informaciones que se manipulan en una computadora se denominan _ _ (datos, informacio­
una secuen­
nes numéricas).
Res. datos.
J~clade
,
.
1.35. Una persona que escribe listas de instrucciones para una computadora se denomina un _ _._.
fI:e-mlerprela­
Res. programador.
m «SACAR
l
~
.,
posición de
t
1..36. El almacenamiento permanente de un programa en una microcomputadora, probablemente, puede
hacerse en una _ _ (RAM, ROM).
Res. ROM.
1
1.37. La _ _ (RAM, ROM) es un
lectura/escritura.
Res. RAM.
el
muy utilizado en las microcomputadoras como memoria de
www.FreeLibros.me
.I
..•
12
FUNDAMENTOS DE LOS MICROPROCESADORES
1.38. Acudir a la Figura 1.2. Las instrucciones almacenadas en la memoria de programa serán _ _ (per­
manentes, temporales).
Res. permanentes (almacenadas en ROM).
1.39. Acudir a la Figura 1.4. Después de que se completa el paso 16, la MPU intentará el procedimiento
de _ _ (decodificación, búsqueda, ejecución).
Res. búsqueda.
1.40. Acudir a la Figura 1.4. La MPU accede a una posición específica de memoria al utilizar el bus
de _ _ .
Res. direcciones.
1.41. Acudir a la Figura 1.4. La información codificada es transferida desde el acumulador de la MPU a
una posición de memoria, en la memoria de datos, utilizando el bus de _ _ .
Res. datos.
.....1"
1.42. Si la MPU busca y decodifica una instrucción como «ALMACENAR datos en la posición de memo­
ria 205», el dato provendrá del _ _ .
Res. acumulador (en la MPU).
1.43. Una microcomputadora contiene como mínimo una unidad de entrada, una unidad de salida, una
MPU y una _ _ de programas y datos.
Res. memoria.
1.44. Una memoria temporal de lectura/escritura se designa por las tres siguientes letras RWN
0 __ .
Res. RAM.
,,,"",'11
..
."
'Ir
-
iIJI¡;.
=
www.FreeLibros.me
2
Capítulo 2
Iin _ _ (per­
'Ix"ocedirniento
NUMEROS, CODIGOS
DE COMPUTADORA Y ARITMETICA
'utilizar el bus
tefe la MPU a
2.1. NUMEROS BINARIOS
Las computadoras digitales utilizan números binarios. El sistema de numeración binario, o de
base 2, utiliza solamente los dígitos O y 1; los dígitos binarios se llaman bits. En los circuitos
LdememoJ
.de salida, una
i
letras RWN
electrónicos de las computadoras el bit O habitualmente se repre~enta por una tensión BAJA,
mientras que el bit 1 corresponde a una tensión ALTA.
Las personas están acostumbradas a comprender el sistema de numeración decimal, o de
base JO, que tiene 10 dígitos (0-9). Este sistema también tiene la característica de valor por
posición; por ejemplo, la Figura 2.1 a muestra que el número decimal 1327 es igual a 1000 más
tres 100 más dos 10 más siete 1 (1000 + 300 + 20 + 7 == 1327).
El sistema de numeración binario también tiene la característica de valor por posición. El
valor decimal de las cuatro primeras posiciones binarias se muestra en la Figura 2.1 b. El número
binario 1001 (se pronuncia uno, cero, cero, uno) se convierte a su equivalente decimal de 9. El bit
del 1 del número binario de la Figura 2.1 b se denomina bit menos significativo (LSB), mientras
que el bit del 8 se denomina bit más significativo (MSB).
Los equivalentes binarios de los números decimales entre O y 15 se muestran en la Figura 2.1c.
Las personas que trabajan con computadoras memorizan como mínimo estos números bina­
rios.
Convertir el número binario 10110110 (se pronuncia uno, cero, uno, uno, cero, uno, uno,
cero) a su equivalente decimal. El procedimiento se muestra en la Figura 2.2a. Por cada bit I del
número binario se escribe debajo el valor de la posición decimal y después se suman los decimales
(128 + 32 + 16 + 4 + 2 = 182), dando 182. Los pequenos subíndices de la Figura 2.2b se utilizan
para anotar la base (a veces denominada raíz) del número. El número 101101102 es por tanto un
número binario, o en base 2 yel número 182 10 es un número decimal o en base 10.
Convertir el número decimal 155 a binario. La Figura 2.3 muestra un procedimiento para
hacer esta conversión. El número decimal 155 se divide primero por 2, dando un cociente de 77 y
un resto de 1; el resto se convierte en el bit menos significativo (LSB) del número binario y se
transfiere a esta posición en la Figura 2.3. El cociente (77) se transfiere como muestra la flecha y
se convierte en el siguiente dividendo. Los cocientes se dividen repetidamente por 2 hasta que el
cociente se hace O con un resto de l. La Figura 2.3 muestra este procedimiento. La línea inferior
muestra el resultado de la conversión: 155 10 = 1001 101 lz.
13
'
..
71
www.FreeLibros.me
.~
.~
l
t
14
FUNDAMENTOS DE LOS MICROPROCESADORES
103
102
10 1
lOO
1000
lOO
10
1
3
2
20
Potencias de 10
Valor de posición
í
Decimal
Decimal
1
1000
300
+
+
7
7
+
1327
Valores de la posición en un numero decimal
(a)
Potencias de 2
23
22
21
2°
Valor de posición
8
4
2
l
1
8
o
o
1
1
MSB-....."
Binario
Decimal
10
I
Binario
8
1
1
O
O
1
1
"
4
1
5
1
1
1
6
7
+
9
Binario
Decimal
2
4
O
1
2
3
O
+
Valores de la posición en un número binario
(b)
Decimal
O
+
~lSB
10
I
O
1
O
1
1
1
1
1
I
1
O
I
O
1
1
8
4
2
1
8
9
O
1
2
3
1
1
1
1
O
O
O
O
O
O
1
I
1
I
1
O
O
O
1
O
1
O
1
1
1
1
1
1
4
5
I
I
O
1
Equivalentes decimales y binarios
(e)
Figura 2.1.
Potencias de 2
Valor de posición
Binario
Decimal
27
26
24
25
128
64
32
16
1
O
+
1
32
1
128
(a)
(b)
+
16
23
22
21
2°
8
4
2
1
O
+
1
4
1
2
O
+
u
182
....
4.....
:.a
:.
Conversión de binario a decimal
101101102 - 182 10
Los índices designan la base del número
Figura 2.2.
www.FreeLibros.me
ti'
h
.....
.
~
•
NUMEROS, CODIGOS DE COMPUTADORA Y ARITMETlCA
,
,
155 10 +2=77 resto de
1
15
LSB
I
77 + 2 - 38 resto de 1
I
r--'
,
38 ... 2 - 19 resto de O
!
19 + 2 ~ 9 resto de 1
~
9+2= 4 resto de 1
~
4+2- 2restodeO
r--'
,
2 ... 2- I resto deO
I
[ ... 2= O resto de I
O
O
O
Figura 2.3.
9
PROBLEMAS RESUELTOS
2.1.
La mayoría de las personas comprenden el sistema de numeración decimal, mientras que
las computadoras digitales utilizan el sistema de numeración de base 2, o ___ .
Solución:
Las computadoras digitales utilizan el sistema de numeración de base 2, o binario, y contiene
solamente los dígitos O y l.
2.2.
El ténnino bit significa _ _ _ _ cuando se trata de números binarios.
Solución:
Bit significa dígito binario.
13.
El número 10010 es un número en base ___ .
Solucióo:
El número 100 10 es un número en base 10, como indica el subíndice 10 al final del número.
2.4.
Escribir en base 2 el número uno, uno, cero, cero utilizando un subíndice.
Solución:
11002,
o
I
2.5.
182
Las letras MSB significan _ _ _ _ _ cuando se trata con números binarios.
Solución:
Las letras MSB significan bit más significativo. Si el número es 10002, elles el MSB.
2.6.
De memoria, convertir los siguientes números binarios en sus equivalentes decimales:
(a) 0001
(b) 0101
(e) 1000
(d) 1011
(e) 1111
www.FreeLibros.me
(f) 0111
16
FUNDAMENTOS DE LOS MICROPROCESADORES
Solución:
Acudir a ia Figura 2.1e. Estos números binarios han de ser memorizados. Los equivalentes
decimales para los números binarios son los siguientes:
(a) 0001 2"" 110
(e) 10002= 8 10
(e) 1111 2= 15 10
(b) 0101 2 =5 10
(d) 1011 2 = 1110
(/) 0111 2 =7 10
2.7.
Convertir los siguientes números binarios en sus equivalentes decimales:
(e) 00110011
(e) OOOI1111
(d) 01100100
(f) 11111111
(a) 10000000
(b) 00010000
Solución:
Siguiendo el procedimiento mostrado en la Figura 2.1 b, los equivalentes decimales de los núme­
ros binarios son los que se indican:
(a) 100000002 = 128 10
(e) 00110011 2= 5110
(e) 0001111l2-311O
(b) 000100002 = 16 10
(d) 01l001002= 100 10
(/) 1I111111 2 = 255 10
2.8.
Convertir los siguientes números decimales en sus equivalentes binarios:
39 (b) 48
(a)
Solución:
Seguir el procedimiento mostrado en la Figura 2.3. Los equivalentes binarios de los números
decimales son los siguientes:
(a)
39 10 ..... 2 .. 19 resto de 1 (LSB)
19 -+- 2 - 9 resto de l
9 -+- 2 - 4 resto de 1
4 .... 2 - 2 resto de O
2 . . . 2 - 1 resto de O
l . . . 2 - O resto de 1 (MSB)
39 10 '" 100 111 2
(b)
48 10 "", 2 '" 24 resto de O (LSB)
24 ..... 2 '" 12 resto de O
12 -+- 2 - 6 resto de O
6 ... 2 '" 3 resto de O
3-+-2= l resto de 1
l .... 2 = O resto de l (MSB)
48 10 = 1100002
Ik~
.m::.!
v.:~~
e­
2.2. NUMEROS HEXADECIMALES
;
Una posición de la memoria de una microcomputadora puede contener el número binario
10011110. Esta larga cadena de ceros y unos es dificil de recordar y teclear. El número 100111102
puede convertirse en un número decimal. Una vez convertido éste es el número 15810' Este
proceso de conversión es demasiado largo. La mayoría de los sistemas de microcomputadoras
utilizan la notación hexadecimal para simplificar la tarea de recordar y teclear números binarios
como por ejemplo 100 III 10.
El sistema de numeración hexadecimal, o de base 16, utiliza los 16 símbolos del O al 9, A, B,
C, D, E Y F. Los equivalentes binarios, hexadecimales y decimales se muestran en la Figu­
ra2A.
www.FreeLibros.me
2­
,
NUMEROS, CODIGOS DE COMPUTADORA y ARITMETICA
17
Binario
• equivalentes
,
Hexadecimal
8
4
2
I
O
O
I
2
3
4
5
1
1
O
3
4
5
O
O
O
O
O
O
2
O
6
1
1
I
O
O
6
O
O
O
O
O
O
O
O
O
1
1
1
O
1
1
1
1
1
I
I
1
1
I
I
O
O
1
1
O
O
O
1
O
O
O
O
Decimal
s de los núme-
I
e los números
7
7
8
9
8
9
10
11
A
B
12
e
13
14
15
D
E
F
1
1
1
"
1
1
I
1
1
O
l
O
1
O
1
Figura 2.4. Contar en decimal, hexadecimal y binario.
•
nero binario
10 100111102
t 158 10 , Este
!.mputadoras
eros binarios
o al 9, A, B,
I
en la Figu-
Observar en la Figura 2.4 que cada símbolo hexadecimal representa una única combinación
de 4 bits. El número binario 10011110 puede entonces ser representado como 9E en hexadeci­
mal. Esto es, la parte 1001 del número binario es igual a 9, de acuerdo con la Figura 2.4, y la parte
1110 del número binario es igual a E en hexadecimal. Por tanto 100111102 es igual a 9Ew
Recordar que el subíndice indica la base del número.
Convertir el número binario 111010 en hexadecimal (hex). Comenzar por el LSB y dividir el
número binario en grupos de 4 bits cada uno, como indica la Figura 2.5a. Entonces sustituir cada
grupo de 4 bits por su dígito hex equivalente. El 10102 es igual a A en hex (ver Fig. 2.4). Eloo11 2
es igual a 3 en hex. Por tanto 1110102 es igual a 3A16'
Convertir el número hexadecimal 7F a su equivalente binario. La Figura 2.5b muestra que
cada dígito hex es sustituido por su equivalente binario de 4 bits. En este ejemplo, el binario 0111
es sustituido por el hex 7 y 1111 2 sustituye a F16' Por tanto 7F I6 es igual a 11111112'
Grupo de 4 bits Grupo de 4 bits
Binario
Hexadecimal
(a)
---.
---.
0011
1010
+
3
Hexadecimal
F
~
~
0111
1111
---.
+
A
7
Binario
Conversión de binario a hexadecimal
(b) Conversión de hexadecimal a binario
Figura 2.5.
"
www.FreeLibros.me
.
r
18
FUNDAMENTOS DE LOS MICROPROCESADORES
La notación hexadecimal es muy utilizada para representar números binarios. Las personas
que utilizan la notación hexadecimal deben memorizar la tabla mostrada en la Figura 2.4.
Convertir el número hexadecimal 2C6E a su equivalente decimal. El procedimiento se mues­
tra en la Figura 2.6a. Los valores de posición para los cuatro primeros dígitos decimales son 4096,
256, 16 y 1. El número hexadecimal contiene catorce (E I6 ) 1, seis 16, doce (C I6 ) 256 y dos 4096.
Cada valor de posición se multiplica y los productos se suman para obtener 11.374,0'
Convertir el número decimal 15.797 a su equivalente hexadecimal. El procedimiento se mues­
tra en la Figura 2.6b. La primera línea indica 15.797 10 dividido por 16, dando un cociente de
987 10 con un resto de 5 10, El resto se convierte entonces a su equivalente hexadecimal. Por tanto
5 10 es igual a 5 16, El resto hexadecimal (5 16) se convierte en el dígito menos significativo (LSD) del
número hexadecimal. El primer cociente (987) es el dividendo en la segunda línea y se divide por
16. El segundo cociente es 61 con un resto de 11,0' o B hexadecimal. La línea 3 muestra 61
dividido por 16, dando un cociente de 3 con un resto de 13 10, o D'6' La cuarta línea de la
Figura 2.6b muestra el dividendo (3) dividido por 16, dando un cociente de O con un resto de 310'
Ó 3 16 , Cuando el cociente se hace O, corno en la línea 4, se termina el cálculo. El 3 16 es el dígito
más significativo (MSD). El procedimiento mostrado en la Figura 2.6b convierte el número deci­
mal 15.797 en su equivalente hex de 3DB5 16.
163
162
16'
160
4096
256
16
1
2
e
6
E
l
l
l
256
xl2
16
x6
96
Potencias de 16
Valor de posición
Hexadecimal
l
4096
x2
8192
Decimal
+
3072
+
x14
14
+
fa) Conversión de hexadecimal a decimal
,
15.797 10 + 16 - 987 resto de 5 10 = 5'6
•
LSD
987+ 16-61 resto de 11 10 =8 16
..
!
61
..3
+
16 - 3 resto de 13 10 - DI6
+
16 = O resto de 310 - 316
15.797 10 =
(b)
3
D
Conversión de decimal a hexadecimal
Figura 2.6.
www.FreeLibros.me
8
11.374 10
! ..&
NUMEROS, COOJGOS DE COMPUTADORA Y ARITMETICA
las personas
ora 2.4.
., se mues­
, son 4096,
(, Ydos 4096.
110 ,
mto se mues­
1 cociente de
LaI. Por tanto
ívo (LSD) del
se divide por
J muestra 61
a línea de la
Il resto de 3 10,
It- es el dígito
número deci-
19
PROBLEMAS RESUELTOS
2.9.
La notación hexadecimal es muy utilizada, para trabajar con las microcomputadoras,
como método «abreviado» de representar números ___ (binarios, decimales).
Solución:
La notación hexadecimal es muy utilizada para representar números binarios.
2.10. El sistema de numeración hexadecimal a veces se denomina sistema de base ___ .
Solución:
El sistema de numeración hexadecimal a veces se denomina sistema de base 16 debido al uso de
16 símbolos únicos.
2.11. Convertir los siguientes números hexadecimales a sus equivalentes binarios:
(a) C
(e) F
(e) lA
(b) 6
(d) E2
if) 3D
Solución:
Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.5b. Los equivalentes
binarios para los números hexadecimales son los siguientes:
(a) C I6 = 11002
(e) Fió
1111 2
(e) IA I6 ­ 000110102
(b) 6 1ó =01102
(d) E2 1ó = 111000102
(f) 30 16 -00111101 2
2.12. Convertir los siguientes números binarios en sus equivalentes hexadecimales:
(a) 1001
(e) 1101
(e) 10000000
(b) 1100
(d) 1IIl
if) 01111l1O
Solución:
Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.5a. Los equivalentes
hexadecimales para los números binarios son los siguientes:
(a) 1001 2 =9 16
(e) 1101 2 =0 16
(e) 100000002 -80 16
(b) 1l00 2 -C I6
(d) 11112=F16
(f) OJl11110 2 -7E 16
2.13. Convertir los siguientes números hexadecimales en sus equivalentes decimales:
(a) 7E
(b) DB
(e) 12A3
(d) 34CF
Solución:
Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.6a. Los equivalentes
decimales a los números hexadecimales son los siguientes:
(a) 7E I6 - (16 x 7) + (1 x 14) = 126 10
(b) OB I6 ={l6x 13)+(1 x 11)-219 10
(e) 12A3 16 =(4096 x 1)+(256x2)+(l6x 10)+(1 X 3)=4771 10
(d) 34CF'6=(4096 x 3)+(256x4)+(16 x 12)+(1 x 15) 13.519'0
2.14. 48.373 10 = - - 1 6 '
Solución:
Utilizando la tabla de la Figura 2.4, seguir el procedimiento de la Figura 2.6b.
48.373 10 + 16 - 3023 resto de 5 10 = 5 16 (LSO)
3023 +- 16 = 188 resto de 15 10 FIÓ
188+16
llrestodeI2¡o=C'6
11+16Orestodell lO =B'6(MSO)
48.373 10 - BCF5 16
www.FreeLibros.me
20
l
FUNDAMENTOS DE LOS MICROPROCESADORES
2.3. NUMEROS BCD
...
Los números binarios puros se representan en notación hexadecimal para hacer más fácil la
conversión. Sin embargo, la conversión binario a decimal es bastante dificil. En calculadoras,
juegos e instrumentos digitales, donde son frecuentes las entradas y salidas del usuario en deci­
mal, se utiliza un código especial para representar los números decimales. Este código se denomi­
na BCD (decimal-codificada-binario). Las equivalencias entre decimal y BCD se muestran en la
tabla de la Figura 2.7a. Técnicamente, esta tabla detalla el código BCD 8421. La parte del nombre
8421 da el valor de la posición a los 4 bits del código BCD. También se utilizan otros códigos
BCD, como por ejemplo el código BCD 5421 Y el código de exceso 3.
.íI
~
~
:...r
~
.
..;s.j
""'11,
BCD
Decimal
8
2
4
1
Decimal
O
1
2
3
4
O
O
O
O
O
O
S
O
O
O
O
O
O
1
I
1
1
1
O
O
O
1
6
O
1
7
8
9
O
1
O
O
1
1
(a)
O
1
BCD
(b)
3
6
9
I
!
!
!
!
0011
0110
1001
0001
Conversión de decimal a BCD
O
1
1
O
1
O
O
O
1000 0000 0111
BCD
!
Decimal
(e)
8
J,
O
0010
!
J,
7
2
Conversión de BCD a decimal
I
Código BCD 8421
! .,
.~
,
Figura 2.7.
Convertir el número decimal 3691 a su equivalente BCD 8421. El procedimiento se muestra
en la Figura 2.7b. Cada dígito decimal se traduce directamente a su equivalente BCD de 4 bits.
Este ejemplo muestra que 3691 10 es igual a 00 11 0110 1001 0001 BCD'
Convertir el número BCD 1000 0000 0111 0010 a su equivalente decimal. El procedimiento
Sé detalla en la Figura 2.7c. Cada grupo de 4 bits se traduce directamente a su equivalente deci­
mal. Este ejemplo muestra que 1000 0000 0111 OOIOBCD es igual a 8072 10,
. Los microprocesadores suman los números binarios puros. Sin embargo, muchos microproce­
sadores tienen instrucciones especiales para cambiar el resultado de las sumas a notación BCD. El
número BCD se interpreta fácilmente entonces como número decimal utilizando los sencillos
procedimientos mostrados en las Figuras 2.7 by c.
www.FreeLibros.me
l•
NUMEROS, CODlGOS DE COMPUTADORA Y ARTTMETlCA
~
l'
21
PROBLEMAS RESUELTOS
más fácil la
2.15. Las letras BCD significan _ _ _ _ _ _ .
l calculadoras,
lIl3.I'io en deci­
H!:(\ se denomi­
. .;;stran en la
ne del nombre
I otros códigos
l,
•
~
Solución:
Las letras BCD significan decimal codificado binario.
2.16.
La notación BCD más común es el código _ _ (5421, 8421).
Solución:
La notación BCD más común es el código BCD 8421.
2.17. Convertir los siguientes números decimales en sus equivalentes 8421 BCD:
(a) 3Q
(b) 65
I
l
DI 0001
. . BCD
(e) 40
(d) 17
(e) 82
(f) 99
Solución:
Seguir el procedimiento de la Figura 2.7 b. Los equivalentes BCD para los números decimales son
los siguientes:
(e) 40 1O -0100OOOO OCD
(e) 82 10 - 100000lOocD
(a) 39 10 =0011 100locD
(j)
99 10 = 1001 100l oco
(b) 65 10 = 01 1001OI oco
(d) 17 10 = 0001 Ollloco
2.18. Convertir los siguientes números BCD 8421 en sus equivalentes decimales:
(a) 10000000
(e) 10010010
(e) 01000011
(b) 00000001
(d) 01110110
(f) 01010101
Solución:
Seguir el procedimiento mostrado en la Figura 2.7c. Los equivalentes decimales para los núme­
ros BCD son los siguientes:
(a) 1000 Oooooco = 80 10
(e) 1001 OOIOocD- 92 10
(b) 00000001 BCD - 110
(d) 01l10IIOBCO=7610
(e) OIOOOOlI oco ­ 43 10
(j) OlOIOlOl ocD 55 10
2.4. ARITMETICA BINARIA
I:I1to se muestra
BCD de 4 bits.
'!:'r~miento
',alente deci­
microproce­
ilación BCD. El
do los sencillos
lOS
Sumar, restar o multiplicar números binarios se realiza de forma similar a la aritmética decimal.
La mayoría de los microprocesadores tienen instrucciones para sumar y restar números binarios.
Los microprocesadores más avanzados tienen incluso instrucciones para multiplicar y dividir, por
ejemplo, los 8086, 8088, 80286, 80386 Y 68000.
Las sencillas reglas para la suma binaria se muestran en la Figura 2.8a. Las dos primeras reglas
de la parte izquierda son obvias. La tercera regla 1 + 1 == 10 muestra que el bit más significativo es
arrastrado a la siguiente posición de orden superior. La cuarta regla muestra que en binario
I + I + 1 = 11. Aquí los sumandos y el arrastre son todos unos. El resultado es una suma de 1 con
un arrastre de l.
Sumar los números binarios 00 111 OlI Y00 1O1OIO. Este problema se ilustra en la Figura 2.8b.
Comprobar este procedimiento. Los equivalentes decimales de los números binarios se muestran,
por conveniencia, a la derecha. La suma de 00111011 y 00101010 se muestra enJa Figura 2.8b y
es 01100101 2,
I
www.FreeLibros.me
22
FUNDAMENTOS DE LOS MICROPROCESADORES
Primer sumando
Segundo sumando
Suma
O
+0
O
+~
1]+
1/
~
10
Arrastres
_ _ ArraSlrede
1
f'\
iI
+1
I .TI
la
s~g~.iente
11 I
II
59
+ 42
Arrastre
Arraslre a
(b)
la siguiente
posición más
significativa
(a)
I
Primer sumando
00 1 1 1011
po$lClon
Segundo sumando + 00 1 O !O 10
menos
significativa Suma
Problema de suma binaria
Reglas para la suma binaria
Figura 2.8.
Las reglas para la resta binaria se muestran en la Figura 2.9a. Las tres primeras reglas son
iguales que en la resta decimal. La última regla requiere un préstamo de la siguiente posición más
significativa (la posición del 2). Con el préstamo, el minuendo se convierte en el binario 10, como
el sustraendo es l la diferencia es l.
~
o
(10
Minuendo
Sustraendo
Diferencia
(a)
O
-O
1
-1
-O
-1
O
O
1
1
1
O
110
o
1fWO
ji _10
7 I
1f
0,0,0101
-00111001
000111002
(b)
Reglas para la sustracción binaria
• "
1f
~5
-57
"28 10
Problema de sustracción binaria
Figura 2.9.
Restar el número binario 00 lII 00 I de OIO1O101. Este problema ejemplo se detalla en la
Figura 2.9b. Las columnas del 4, 2 Y l del problema de resta binaria son bastante sencillas de
seguir utilizando las tres primeras reglas de la Figura 2.9a. La columna del 8 muestra un l
restándose de un O. Se toma prestado un l de la columna del 16 y se resta l de 101, obteniéndose
una diferencia de 1 de acuerdo con la cuarta regla de la Figura 2.9a. Después del préstamo, la
columna del 16 muestra un 1 restado del nuevo minuendo O. Según la regla 4, hay que tomar
prestado un 1 de la siguiente posición más significativa (la posición del 32). El minuendo de la
posición 32 es O, por lo que entonces hay que tomar prestado elide la posición 64. La posición
del 32 toma un préstamo de la posición del 64. Finalmente, la posición del 16 puede tomar
prestado de la posición del 32. El minuendo de la posición del 16 es entonces 102 , Yel sustraendo
es 1 dando una diferencia de l. La posición del 32 ahora muestra 1 - I dando una diferencia de O.
La posición del 64 muestra O - O dando una diferencia de O. La posición del 128 muestra O - O
dando también una diferencia de O. En resumen, el problema ejemplo de la Figura 2.9b muestra
que el binario 00 111 00 1 restado de O1O1O101 2 da una diferencia de 000 11 1002, El problema
también se muestra en forma decimal a la derecha.
Las reglas para la multiplicación binaria se muestran en la Figura 2. lOa. Las dos primeras
reglas no necesitan explicación. El multiplicador es I en las dos últimas reglas. Cuando el multi­
plicador es 1 en la multiplicación binaria, el multiplicando se copia como producto. Cuando el
multiplicador es O, el producto siempre es O.
www.FreeLibros.me
I
NUMEROS. CODlGOS DE COMPUTADORA Y ARITMETICA
~
I
11
I
llo 11
t
10 10
59
O
xO
xO
xl
Producto
O
O
O
Multiplicando
1101
Multiplicador
x 101
1101
Primer producto parcial
Segundo producto parcial
0000
Tercer producto parcial
1101
1000001 2
Producto final
xl
1
+ 42
iOiOt2
lIa
o
Multiplicando
Multiplicador
101 10
binaria
(a)
Reglas para la multiplicación binaria
(b)
23
13
x5
65 10
Problema de multiplicación binaria
Figura 2.10.
~ posición más
ario 10, como
Multiplicar los números binarios 1101 y tOl. Este problema ejemplo se muestra en la Figu­
ra 2.1 Ob. Como en la multiplicación decimal, el multiplicando se multiplica primero por el dígito
menos significativo (en este caso el bit del 1). El bit del 1 del multiplicador es 1, por tanto el
multiplicando se copia como primer producto parcial. El bit del 2 del multiplicador es un O, por
tanto el segundo producto parcial es 0000. Observar que éste se desplaza una posición a la
izquierda. El bit del 4 del multiplicador es 1, por tanto el multiplicando se copia como tercer
producto parcial. Observar que 110 1 se copia después del segundo desplazamiento a la izquierda.
Los productos parciales primero, segundo y tercero se suman, dando el producto final de
10000012' En resumen, la Figura 2.lOb muestra que lI01 2 x 101 2 = 1000001 2 o que
13 lo x 5 10 = 65 10,
PROBLEMAS RESUELTOS
2.19. Resolver los siguientes problemas de suma binaria:
(a)
detalla en la
te sencillas de
lIluestra un 1
obteniéndose
I préstamo, la
.~" que tomar
muendo de la
•. La posición
t'luede tomar
sustraendo
-encia de O.
muestra O - O
12.9b muestra
El problema
1010
+0101
(b)
1101
+0101
(e)
01011011
+00001111
(d)
00111111
+00011111
Solución:
Acudir a la Figura 2.8. Las sumas binarias de los problemas son las siguientes:
(a) 1111
(b) 10010
(e) 01101010
(ti) 01011110
2.20. Resolver los siguientes problemas de resta binaria:
(a)
1110
-1000
(b)
1010
-O 10 I
(e)
01100110
-000110 10
(ti)
Solución:
Acudir a la Figura 2.9. Las diferencias binarias de los problemas son las siguientes:
(a) 0110
(b) 0101
(e) 01001100
(ti) 00111001
2.21. En un problema de multiplicación el número de arriba se denomina ___ mientras que
dos primeras
ando el multi­
lO. Cuando el
el de abajo se denomina multiplicador y el resultado se denomina ___ .
Solución:
En un problema de multiplicación el número de aniba se llama multiplicando, mientras que el
de abajo se llama multiplicador y el resultado se llama producto.
www.FreeLibros.me
24
FUNDAMENTOS DE LOS MICROPROCESADORES
2.22.
Resolver los siguientes problemas de multiplicación binaria:
(b) 1101
(c) 1111
(d) 1110
xll
x 1001
xlOl
xli 10
(a) 1001
Solución:
Acudir a la Figura 2.10. Los productos de los problemas son los siguientes:
(a) 11011
(b) 1110101
(ti) 11000100
(e) 1001011
2.5. NOTACION EN COMPLEMENTO A 2
Generalmente, en las computadoras se utilizan los números binarios. Sin embargo, a veces se
utiliza un código especial denominado notación en complemento a 2 cuando se necesitan núme­
ros con signo. Este sistema simplifica la circuitena de la computadora.
Un registro o posición de almacenamiento en un microprocesador puede ser como el de la
Figura 2.11 a. Este registro tiene espacio para datos de 8 bits. Las posiciones de los bits se nume­
ran del 7 al O. Los valores de las posiciones binarias se muestran en la parte inferior del registro.
El bit 7 será el de la posición del 128, el bit 6 el de la posición del 64, etc.
76543210
I I IIIIIII
128 64 32 16 8
(a)
4
2
1
Valores binarios de .posición
Etiquetas de las posiciones de memoria de un registro de 8 bits
76543210
76543210
lo I I I 1I I I I
11 I I 1 I I I I I
-
(+)
64 32 16 8
4
1
----......---'
1 Valores binarios de posición
(- )
Bit de
signo
Bit de
signo
NotaCIón en
complemento
a2
(b)
Los números positivos se identifican por un O en
la posición del bit del signo del registro
(e)
Los números negativos se identifican por un 1 en
la posición del bit de signo del registro
e­
Figura 2.11 .
La organización más frecuente de un registro de 8 bits utilizado para almacenar números con
signo se muestra en las Figuras 2.11 b y c. El bit 7 en ambos registros es el bit de signo. Este bit
dice si el número es (+) positivo o (-) negativo. UnO en la posición del bit de signo significa que
el número es positivo, mientras que un 1 indica que el número es negativo.
Si el número con signo es positivo como en la Figura 2.11 b, las restantes posiciones de memo­
ria (6-0) contienen un número binario de 7 bits. Por ejemplo, si el contenido del registro de la
Figura 2.11 b fuese 01000001, significaría el decimal +65 (bit de signo positivo + 64 + 1). Si el
contenido del registro de la Figura 2.11 b fuese 01111111, sería + 127 10 (bit de signo positi­
www.FreeLibros.me
"- I
NUMEROS. CODlGOS DE COMPUTADORA Y ARITMETICA
L
Decimal
Representación de
números con signo
+127
0111 1111
+8
+7
+6
+5
+4
+3
+2
+1
+0
-1
I
a veces se
'ltan núme­
1!('I.
como el de la
se nume­
DT del registro.
¡ bits
-2
-3
-4
-5
-6
-7
-8
0000
0000
0000
0000
0000
0000
0000
0000
0000
1111
1111
1111
1111
1111
llll
1111
1111
1000
0111
0110
0101
0100
0011
0010
0001
0000
1111
1110
1101
1100
1011
1010
1001
1000
25
Números positivos
representados
igual que en
binario puro
Números negativos
representados en
forma de
complemento a 2
o
O
-128
1000 0000
Figura 2.12. Números decimales con signo y sus
equivalentes en la notación de complemento a 2.
• por un 1 en
qpstro
r números con
signo. Este bit
D significa
que
de memo­
registro de la
. 64 + 1). Si el
: signo positilOeS
1
vo + 64 + 32 + 16 + 8 + 4 + 2 + 1). Este es el mayor número positivo que puede ser representado
en este registro de 8 bits.
Si el número con signo es negativo como en la Figura 2.11 e, el registro contendrá la forma en
complemento a 2 de ese número. La tabla de la Figura 2.12 muestra la notación en complemento
a 2 para números positivos y negativos. Observar que los números positivos tienen un O en el
MSB, mientras que el resto de los números corresponden a un número binario. Los números
negativos tienen un I en el MSB. Observar la línea +0 de la tabla de la Figura 2.12. La notación
en complemento a 2 para +0 es 00000000. En la línea siguiente, observar que 11111111 es la
notación en complemento a 2 de -l. Imaginar que el sistema es un odómetro que cuenta hacia
atrás a medida que se avanza de 00000000 a 1I1 I 1111.
¿Cuál sería la notación en complemento a 2'de -91 Los pasos para hacer esta conversión se
esbozan en la Figura 2. 13a y son los siguientes:
Paso 1.
Listar el número decimal sin signo. Escribir 9 en este ejemplo.
www.FreeLibros.me
26
FUNDAMENTOS DE LOS MICROPROCESADORES
Paso 2. Convertir el número decimal a binario. Escribir el número binario 00001001 en este
ejemplo.
Paso 3. Complementar cada bit formando el complemento a l. En este ejemplo escribir
11110110 como complemento a l.
Paso 4. Sumar I al número en complemento a I. En este ejemplo sumar 1 a I I I 10 110.
9
Decimal
l
00001001
Binario
l
111101\0
Complemento a I
+
Complemento a 2
(a)
11110111 =-9
11110000
l
Complemento a I
(b)
C5:>
éV
6?
Escribir decimal
Convertir a binario
Complementar cada bit
Sumar + \
Formación del complemento a 2 de un número negativo
Cómplemento a 2
Binario
~
~
Paso
2
0000111\
+
000 \ 0000 - 16
éV
Escribir complemento a 2
Complementar cada bit
Sumar + 1
Cálculo del decimal equivalente para un número en complemento a 2
Figura 2.13.
.
: ',;
El resultado es la notación en complemento a 2 para el número decimal negativo. En este
ejemplo, en la Figura 2.13a, -9 es igual a I 1 I 101 1 I en forma de complemento a 2. Observar que
el bit de signo <l I 1101 I 1) es 1, lo que significa que se trata de un número negativo.
¿Cuál es el equivalente decimal del número en complemento a 2 II 110000? El procedimiento
para hacer esta conversión se detalla en la Figura 2.13b. El procedimiento de complementar y
sumar 1 es el mismo que se utiliza para convertir de binario a complemento a 2. El procedimien­
to de la Figura 2.13b muestra como se cambia cada bit del número en complemento a 2, forman­
do el complemento a I. Entonces se suma un 1 al número en complemento a 1, formando el
número binario 00010000, que es igual a 16. Esto significa que la notación en complemento a 2
de 1 1110000 es igual a -16 10, El 16 debe ser negativo porque el bit de signo (MSB) del número en
complemento a 2 es un l.
www.FreeLibros.me
4
...1
-
.
NUMEROS. CODIGOS DE COMPUTAOORA y ARITMETICA
101001 en este
~rnplo
~
escribir
11110 110.
27
PROBLEMAS RESUELTOS
2.23. Cuando los números con signo se almacenan en un registro de 8 bits de un microprocesa­
dor, el MSB (bit 7) se denomina bit de _ _ .
Solución:
Cuando los números con signo se almacenan en un registro de 8 bits. el MSB (bit 7) se denomina
bit de signo.
2.24. Determinar si los siguientes números en notación de complemento a 2 son positivos o ne­
gativos.
(a) 01110000
(b) 11001111
(e) 10001111
(ti) 01010101
Solución:
El complemento a 2 de 01110000 es un número positivo porque el bit de signo vale O.
(b) El complemento a 2 de 11001111 es un número negativo porque el bit de signo vale L
(e) El complemento a 2 de 10001111 es un número negativo porque el bit de signo vale 1.
(ti) El complemento a 2 de 01010101 es un número positivo porque el bit de signo es igual
aO.
(a)
I
2.25. Utilizando la tabla de la Figura 2.12, dar la notación en complemento a 2 de los siguientes
números decimales con signo:
(a) + 1
(b) + 5
(e) + 127
(d) - 1
(e) - 2
(f) - 128
Solución:
Acudir a la Figura 2.12.
(a) + 1 = 00000001 (notación en complemento a 2)
(b) + 5 = 00000101 (notación en complemento a 2)
(e) + 127 = O1111111 (notación en complemento a 2)
(d)
1 = 11111111 (notación en complemento a 2)
(e) - 2 = 11111110 (notación en con.plemento a 2)
(j) - 128 = 10000000 (notación en complemento a 2)
2.26. Utilizando el procedimiento de la Figura 2. 13a, convertir los siguientes números decima­
les con signo en su forma de complemento al:
(a)-1O
En este
_Jservar que
~·;vo.
10.
procedimiento
mplementar y
I -:->rocedimien­
.: 2. forman• formando el
!lplemento a 2
del número en
(b)-21
(e)-34
(tI)-96
Solución:
Acudir a la Figura 2. 13a. Las notaciones en complemento a 2 de los números decimales con
signo son como sigue:
(a) Primer paso (convertir el decimal a binario): 10'0· 000010102
Segundo paso (complementar): 0000 10 102 _ III 1010 I
Tercer paso (sumar 1): 11110101 + 1 = 11110110 (complemento a 2) - -10 10
(b) Primer paso (convertir el decimal a binario): 2110 = 0001010 12
Segundo paso (complementar): 00010101 2 - 1 [101010
Tercer paso (sumar 1): 11101010 + 1 - 11101011 (complemento a 2) - -21 10
(e) Primer paso (convertir el decimal a binario): 34 10 - 001000102
Segundo paso (complementar): 0010001°2 - 11011101
Tercer paso (sumar 1): 11011101 + 1 = 11011110 (complemento a 2) = -34 10
(ti) Primer paso (convertir el decimal a binario): 96 10 = 011000002
Segundo paso (complementar): 0110000°2 _ 10011111
Tercer paso (sumar 1): 10011111 + I = 10100000 (complemento a 2) = -96 10
www.FreeLibros.me
28
j
FUNDAMENTOS DE LOS MICROPROCESADORES
2.27. El complemento a 2 y los patrones de bits _ _ (BCD, binario) son los mismos para los
números decimales positivos.
Solución:
El complemento a 2 y los patrones de bits binarios son los mismos para los números decimales
positivos.
2.28. Utilizando el procedimiento de la Figura 2.13b, traducir las siguientes notaciones en com­
plemento a 2 a sus decimales equivalentes con signo:
(a) IIIllOll
(b) 00001111
(c) 10001111
(d) 01110111
Solución:
Los decimales equivalentes con signo de las notaciones en complemento a 2 son los siguientes:
(a) l111 iOll (complemento a 2) = - 5 10
(e) 10001111 (complemento a 2) = - 113
11111011
00000100
<ompl<mc'nlo.
+
1000111
00000101 = 5
. (b) 00001111 (complemento a 2) = + 15
ra~Lm
DÚ . •
«"
OC,
:~
fuc5.e% 11
01110000
+
I
deam.II
I
01110001 = 113
(d) 01110111 (complemento a 2) + 119
1.
12:~
2.6. ARITMETICA EN COMPLEMENTO A 2
Un microprocesador puede utilizar números en complemento a 2 porque puede complementar,
incrementar (sumar + 1 a un número) y sumar números binarios. Los microprocesadores no
tienen circuitería para restar, en su lugar utilizan un sumador y números en complemento a 2
para realizar la sustracción.
Sumar los números decimales con signo +5 y +3. El proceso se muestra en la Figura 2.14a en
decimal y en la forma en complemento a 2. A partir de la tabla de la Figura 2.12 se encuentra que
+ 5 es igual a 0000010 I en su notación en complemento a 2, mientras que + 3 es igual a 000000 11.
Los números en complemento a 2 00000 I OI Y000000 11 se suman entonces igual que los núme­
ros binarios regulares, obteniéndose la suma en complemento a 2 de 0000 1000. La suma
0000 1000 es igual a +8 10,
Primer sumando
Segundo sumando
Suma
(a)
00000101
+00000011
(+8)
00001000
Problema de suma en complemento a 2
Primer sumando
Segundo sumando
Suma
Primer sumando
Segundo sumando
(+5)
+ (+3)
(+ 7)
+ (-3)
+ 1 J 111101
(+4)
(1)00000100
00000111
I
'--'
Suma
re)
+(-8)
00000011
+11111000
(-5)
11111011
(+3)
Problema de suma en complemento a 2
Primer sumando
Segundo sumando
Suma
(-2)
11111110
+(-5)
+ 11111011
(-7)
11111001
/
Descarta
overnow
Descarta
overnow
(b)
Problema de suma en complemento a 2
(d)
'1
Problema de suma en complemento a 2
Figura 2.14.
www.FreeLibros.me
.­
ó:-- ....
..,
:;;.¡;.
,j
r
NUMEROS. CODlGOS DE COMPUTADORA Y ARITMETlCA
!Smos para los
lIerOS
decimales
,
iones en com­
• los siguientes:
- 1i3
•
1
i=
113
119
t
~
I
~plementar,
ocesadores no
lplemento a 2
ígura 2.14a en
encuentra que
al a 000000 1 l.
Que los núme­
K)(). La suma
bll
000
I
Sumar los números decimales con signo +7 y -3. El procedimiento utilizando la suma en
decimal yen complemento a 2 se muestra en la Figura 2.14b. A partir de la tabla de la Figu­
ra 2.12 se encuentra que +7 00000111 Y -3 = 1111110 l en la notación en complemento a 2.
Los números en complemento a 2 se suman entonces (00000111 y 11111101) como si fuesen
números binarios regulares, obteniéndose la suma de 100000 l OO. El MSB es un arrastre de
«overflow» del registro de 8 bits y se descarta. Por tanto, la suma en complemento a 2 es igual a
00000 I00, ó +4 10,
Sumar los números decimales con signo +3 y -8. El procedimiento se detalla en la Figu­
ra 2.14c. A partir de la tabla de la Figura 2.12 se encuentra que +3 = 00000011 Y -8 = 11111000
en notación en complemento a 2. Entonces se suman estos números en complemento a 2 como si
fuesen números binarios regulares, obteniéndose una suma de 111110 11. De nuevo de la Figu­
ra 2.12 se determina que la suma en complemento a 2 de I 11110 II es igual - 5 10,
Sumar los decimales -2 y -5. El procedimiento se detalla en la Figura 2.14d. A partir de la
tabla de la Figura 2.12 se encuentra que la notación en complemento a 2 de -2 = 11111110 y la
de - 5 = 111110 11. Estos números se suman entonces como si fuesen números binarios regulares.
La suma es 11111100 l. El MSB es un arrastre de «overflow» del registro de 8 bits y se descarta.
La suma de los números en complemento a 2 (11111110 Y 11111011) es entonces 11111001 (en
complemento a 2). Utilizando la Figura 2.12 se determina que la suma en complemento a 2 de
11111001 es igual a - 7 10,
Restar los números decimales con signo +5 de +8. El procedimiento se esboza en la Figu­
ra 2.15a. El minuendo (+8) es igual a 00001000. El sustraendo es +5, ó 00000101. El 00000101
debe convertirse a su forma en complemento a 2 (complementar y sumar 1), dando 111110 11. El
«minuendo» de 00001000 se suma al complemento a 2 del sustraendo 11111011 como si fuesen
números binarios. La suma es igual a 1000000 11. El MSB es un arrastre de «overflow» del
registro y se descarta, obteniéndose la suma de 000000 11. A partir de la tabla de la Figura 2.12 se
determina que la suma en complemento a 2 de 00000011 es igual a +3 10, Observar que al restar,
el sustraendo se convierte a su forma en complemento a 2 y después se suma al minuendo.
Utilizando la representación en complemento a 2 y un sumador, el microprocesador puede reali­
zar la sus/ración.
Minuendo
Sustraendo
Diferencia
C~v~rtc
(+8)
- (+5)
=
! 1 111110
; 1011
¡:: 11001
l•
IDe11to a 2
00001000
OOOOOIOI-;;;;;;¡;¡;;;;;;;;;¡;;-;T-+ + 11111011
(000000011
(+3)
/
Descana
:011
~toa2
29
overflow
(a)
Problema de resta en complemento a 2 utilizando suma
Minuendo
Sustraendo
Diferencia
rh)
(+2)
- (+6)
000001
(-4)
00000010
+ 11111010
11111100
Problema de resta en complemento a 2 utilizando suma
Figura 2.15.
Restar el número decimal +6 de +2. El procedimiento se muestra en la Figura 2.15b. El
minuendo +2 es igual 00000010. El sustraendo +6 es igual 00000110. Este sustraendo se com;er­
te a su forma en complemento a 2 (complementar y sumar 1) dando 11111010. Los números
" 1
www.FreeLibros.me
I
,
30
FUNDAMENTOS DE LOS MICROPROCESADORES
(000000 IO Y IIIllO 1O) se suman como si fuesen números binarios dando una suma de
11111100. De la tabla de la Figura 2.12 se determina que la suma en complemento a 2 de
11111100 es igual a -4 10,
PROBLEMAS RESUELTOS
2.29. Sumar los siguientes números decimales con signo utilizando números en complemento
a 2:
(+7)
(a)
(b)
.:!J~
(+31)
+ ( + 26)
Solución:
Seguir el procedimiento de la Figura 2.14a. Las sumas son las siguientes:
(a)
(+7)
00000111
.!l..±..!2
(b)
+ 00000oo 1
(+ 8) = 00001000 (complemento a 2)
(+31)
00011111
+ ( + 26) + 000 11 O10
(+ 57) = 00111001 (complemento a 2)
2.30. Sumar los siguientes números decimales con signo utilizando números en complemento
a 2:
(a)
( + 8)
(b)
( + 89)
+ ( - 5)
+ ( - 46)
1
Solución:
Seguir el procedimiento de la Figura 2.14b. Las sumas son las siguientes:
(a)
(+ 8)
00001000
(b)
(+89)
01011001
+ ( - 5)
+ 1 11110 11
+ (- 46)
+ 11010010
(+ 43) = (i)ooIOIOII (complemento a 2)
T+3) = q)OOOOOOll (complemento a 2)
/
¡
!
dnt8rt3. overflow
d9cana
O\<e'rtlO'l'
2.31. Sumar los siguientes números decimales con signo utilizando números en complemento
a 2:
(a)
(+1)
(b)
+ ( - 6)
(+20)
+ ( - 60)
Solución:
Seguir el procedimiento de la Figura 2.14c. Las sumas son las siguientes:
(a)
(+ 1)
00000001
(b)
(+ 20)
00010100
+(-6) +11111010
+(-60) +11000100
(- 5) = 11111011 (complemento a 2)
( - 40) = 11011000 (complemento a 2)
2.32. Sumar los siguientes números decimales con signo utilizando números en complemento
a 2:
(a)
(-3)
+(-4)
(b)
(-13)
+(-41)
www.FreeLibros.me
1.-.
r
NUMEROS. CODIGOS DE COMPUTADORA Y ÁRITMETICA
una suma de
mento a 2 de
31
Solución:
Seguir el procedimiento de la Figura 2.14d. Las sumas son las siguientes:
(a) (-3)
11111101
(b) (-13)
11110011
+(-4) +11111100
+(-41) +11010111
----r=7) ;)11111001 (complemento a 2)
( - 54) '111001010 (complemento a 2)
descana overfkrw
complemento
2.33.
Restar los siguientes números decimales con signo utilizando números en cOlflplemento
a 2:
(a) ( + 7)
(b)
- ( + 2)
f
( + 113)
-
(+ 50)
Solución:
Seguir el procedimiento de la Figura 2.15a. Los resultados de los problemas de resta son los
siguientes:
(a)
(+ 7)
00000111
- (+ 2) = 00000010 <omp!nnm.u2 • + 11111110
, suma
1O1 (complemento a 2)
(+ 5) =
jlfJOOOO
Iplemento a 2)
~
complemento
dncarta
(b)
-
( + 113)
(+ 50) 00110010
(+ 63)
overflow
yauma
01110001
+ 1100 1110
111 111 (complemento a 2)
}IOO
comp!nnm.u 2 •
dtseana overfkJw
mplemento a 2)
2.34.
Restar los siguientes números decimales con signo utilizando números en complemento
a 2:
(a)
complemento
( + 3)
- (+ 8)
(b)
(+12)
- (+ 63)
Solución:
Seguir el procedimiento de la Figura 2.15b. Los resultados de los problemas de resta Son los
siguientes:
( + 3)
00000011
(a)
-(+8)-00001000 comple........ 2 1+ 11111000
( - 5)
puma
+ 11111011 (complemento a 2)
(b)
(+ 12)
- ( + 63) = 00111111
complemen.a a 2 •
)' suma
(-51)=
00001100
+ 1 100000 1
11001101
(complemento a 2)
rplemento a 2)
I
complemento
,
1..7. AGRUPACIONES DE BITS
t:" n simple dígito binario se denomina bit. Cuatro bits agrupados se denominan nibble. Ocho bits
¡grupados se denominan byte.
www.FreeLibros.me
32
FUNDAMENTOS DE LOS MICROPROCESADORES
Una característica muy importante de cualquier microprocesador es el tamaño del acumula­
dor. Los microproc~sadores sencillos. comúnmente utilizan acumuladores de 8 bits. El tamaño de
la palabra del microprocesador entonces es de 8 bits. En este caso I byte forma una palabra. Los
microprocesadores tienen longitudes de palabra de 4, 8, 16 o incluso 32 bits. Un microprocesador
de 16 bits tiene por tanto una longitud de palabra de 2 bytes, o de 16 dígitos binarios. Una
palabra es un grupo de bits que es procesada como un simple número o instrucción por el
microprocesador. Un microprocesador de 8 bits transfiere y almacena todos los datos en grupos
de 8 bits, vía ocho conductores paralelos denominados bus de datos.
El contenido de la memoria de una microcomputadora de 8 bits puede ser el reflejado en la
Figura 2.16a. Observar que cada posición de dirección (contenido etiquetado) contiene informa­
ción en grupos de 8 bits. Cada byte se denomina palabra de memoria, ya que el microprocesador
es una unidad de 8 bits. Cada palabra de memoria tiene un significado específico cuando es
buscada y decodificada por el microprocesador. El contenido binario de la memoria de la Figu­
ra 2.16a puede representar:
~;"
1,
¡
,
,
..
';
1"
l.
2.
3.
4.
5.
6.
7.
Un número binario.
Un número binario con signo.
Un número BCD.
Un carácter (una letra del alfabeto).
Una instrucción.
Una dirección de memoria.
Una dirección de un puerto de entrada o salida.
; ... ¡ :
Considerar la posición superior de la memoria (O II 00 I 00 2) de la Figura 2.16a. El contenido
de esta posición de memoria es 110 II O11. Esta palabra de memoria puede interpretarse como
sigue:
l. tomo un número binario -110 11011 2 ", 219¡o­
2. Como un número binario con signo -11011011 (complemento a 2) '" -37 10,
3. Como un número BCD -esto no puede ser un número decimal codificado binario por­
que ni 1101 ni 1011 son códigos BCD.
4. Como un carácter -esto no puede ser ningún carácter ASCII (ASCII es un código alfanu­
mérico popular especial).
5. Como una instrucción -11011011 = la instrucción INPUT (ENTRAR) del popular mi­
croprocesador Intel 8080/8085.
6. Como una dirección de memoria -110 lI O11 2 " OB I6 ­ posición de memoria 219 10 ,
7. Como una dirección para un puerto de entrada o salida -1 10 11011 2 = puerto 219 10,
La palabra superior de la memoria de la Figura 2.16a puede ser el número binario 219 10, el
número binario con signo -3710' la instrucción INPUT (ENTRAR) del microprocesador 8085, la
dirección de la posición de memoria DBI6 o la dirección del puerto de entrada o salida 219 10, En
este ejemplo la palabra superior de la memoria (110 110 11) puede significar una de cinco posicio­
nes diferentes, instrucciones o cantidades.
Si el operador de la microcomputadora 8085 arrancase el contador de programa en la direc­
ción 100 10 (01100100 2), entonces el microprocesador buscaría y decodificaría la palabra de me­
moria 110 110 11 como una instrucción de INTRODUCIR dato (INPUT). El microprocesador
continuaría posteriormente en la siguiente dirección: 10110 (O lI 00 10 12), El contenido de la me­
www.FreeLibros.me
r
NUMEROS, CODIGOS "DE COMPUTADORA Y ARITMETICA
o del acumula­
s.. El tamaño de
!la palabra. Los
OCroprocesador
~ binarios. Una
trucción por el
latos en grupos
.
~
Entrada
puerto l
""'"
Bus de dirección
y
líneas de control
Dirección -
-!j"
01100100
1101 1011
00000001
01100110
00110110
01100111
1100 1000
0110 1000
11010011
01101001
0000 1010
•
1100 1000
01000001
•
(a)
alída 219 10, En
~ cinco posicio­
lila en la direc­
~labra de me­
, . -,procesador
mdo de la me-
tJ
Contenido típico de una memoria binaria de una microcomputadora
Interpretación del microprocesador
de las palabras de memoria
Dirección
Contenido
01100100
1101 1011
103
01100111
1100 1000
Código para la instrucción de
INTRODUCIR dato
Código binario para dirección del puerto 1
Código binario para instrucción de
TRANSFERIR dato
Código binario para dirección de memoria
104
01101000
11010011
Código para instrucción SACAR dato
105
0110 1001
0000 1010
Código binario para dirección del puerto 10
•
•
•
100
inario 219 10, el
r:sador 8085, la
Salida
puerto 10
Posición de memoria
(en decimal)
alfanu­
oria 219 10,
lerto 219 10'
./
Memoria
I
lel popular mi­
Bus de datos
•
•
•
•
El contenido
rpretarse como
I código
Contenido
01100101
L
:lo binario por-
~
Microprocesador
de 8 bits
reflejado en la
ltiene informa­
ticroprocesador
fico cuando es
tJria de la Figu­
In,o'
33
101
01100101
00000001
102
01100110
00110111
•
•
200
_,.,.1
•
1100 1000
01000001
......---l....
ASCII Código para la letra A
Memoria
(b)
Interpretación por el microprocesador del contenido de la memoria
..,
Figura 2.16.
www.FreeLibros.me
.
~
~
34
FUNDAMENTOS DE LOS MICROPROCESADORES
•
••
moria en la Figura 2. 16a es el mismo que el de la FIgUra 1.4. Recordar que el programa de la
Figura 1.4 ejecuta las siguientes instrucciones:
1. INTRODUCIR (INPUT) el dato del puerto 1.
2. ALMACENAR (STORE) el dato en la posición de memoria 200.
3. SACAR (OUTPUT) el dato al puerto 10.
••
La interpretación que el microprocesador hace del contenido de la memoria se detalla en la
Figura 2.16b. Las instrucciones del programa se listan en las seis posiciones superiores de memo­
ria (100-105 10), La posición inferior de memoria (200 10) es la posición donde se almacena el dato.
En este caso, el código ASCII de la letra A se almacena en esta posición de memoria.
En resumen, es importante observar que en las microcomputadoras, los bits se agrupan en
palabras. Estas palabras de la memoria de programa son interpretadas por el microprocesador
secuencialmente, una cada vez. Es importante para el programador saber cómo el microprocesa­
dor realiza las secuencias e interpreta los datos. Cada microprocesador tiene su propio código,
único, de instrucciones; sin embargo, todos los microprocesadores realizan el secuenciamiento de
las posiciones de memoria de forma similar.
••
PROBLEMAS RESUELTOS
'\
2.35. Cuatro bits agrupados se denominan nibble, mientras que un grupo de 8 bits se deno­
mina ___ .
Solución:
Una agrupación de 8 bits se denomina byte. Bajo circunstancias especiales esta agrupación de
8 bits también puede denominarse palabra.
2.36. El tamaño de ___ es una característica importante de un microprocesador y está rela­
cionada con el número de bits transferidos y procesados como un grupo.
Solución:
El tamaño de palabra es una de las características más importantes de un microprocesador.
...
...
.-r"
dJII
,.
JI:II:,. . •
~
2.37. Acudir a la Figura 2.16a. El byte de datos almacenados en cualquier posición de memoria
se denomina palabra de ___ .
Solución: .
El byte de datos almacenados en cualquier posición de memoria se denomina palabra de
memoria.
2.38. Citar siete interpretaciones posibles de una palabra de memoria de 8 bits.
Solución:
El contenido de una 'posición de memoria puede interpretarse como un número binario, un
número binario con signo (notación en complemento a 2). un número BCD, un carácter, una
instrucción, una dirección de memoria y una dirección de un puerto de entrada o salida.
2.39. Acudir a la Figura 2.16b. ¿Cómo interpretaría el microprocesador la palabra de memoria
(00000001) de la dirección IOI¡Q?
www.FreeLibros.me
--1E
­
:¡:.,
NUMEROS. CODlGOS DE COMPUTADORA Y ARITMETICA
programa de la
3S
. Soludón:
Acudir a la Figura 2.16b. El microprocesador busca la palabra de memoria (0000000 1) esperan­
do que le diga por qué puerto va a entrar el dato. La palabra de memoria indica al microprocesador
que va a entrar un dato por el puerto l.
.
I .
I se detalla en la
riores de memo­
Imacena el dato.
nona.
IS se agrupan en
lIlicroprocesador
el microprocesa­
il propio código,
uenciamiento de
I
~
2...
Acudir a la Figura 2.16b. ¿Cómo interpretaría el microprocesador, la palabra de memoria
(00110111) de la dirección 102 10?
Solución:
Acudir a la Figura 2.16b. El microprocesador busca la palabra de memoria (00 II O111) esperan­
do que sea una nueva instrucción. La palabra 00110111 es decodificada por el microprocesador y
significa TRANSFERIR (MOVE) dato desde el acumulador hasta la posición de memoria cuya
dirección se encuentra en la siguiente posición de memoria.
1.41. Los códigos utilizados para las instrucciones son los mismos para todos los microprocesa­
dores, y por tanto un programa escrito para un microprocesador Intel funcionará en una
unidad de Motorola (verdadero o falso).
Solución:
Falso. Cada microprocesador tiene su propio código único de instrucciones.
8 bits se deno­
2.8. CODIGOS ALFANUMERICOS
.
sta agrupación de
~
&dar y está rela­
~dor.
ión de memoria
L..
.
,
Los códigos que contienen caracteres alfabéticos y numéricos son necesarios cuando los micro­
procesadores se comunican con dispositivos como teletipos o terminales CRT (tubo de rayos
catódicos). Estos códigos se denominan códigos alfanuméricos.
El código alfanumérico más utilizado en los sistemas microcomputadores es el American
Slandard Code for Information Interchange o ASCII (pronunciado «ask-i») (Código Estándar
Americano para Intercambio de Información). Un listado parcial del código de 7 bits se muestra
en la Figura 2.17. Este listado contiene códigos de 7 bits para números, letras mayúsculas y
caracteres de puntuación. El código completo tiene también códigos para las letras minúsculas y
los caracteres de control.
;.
PROBLEMAS RESUELTOS
palabra de
2.41. Los códigos binarios que representan números y letras se denominan códigos ___ •
Lero
binario, un
un carácter, una
o salida.
In. de memoria
Solución:
Los códigos binarios utilizados para representar números y letras son los códigos alfanuméricos.
2.43. La representación ASCII del número O es 011 0000. El número 9 se representa en ASOI
por _ _ (7 bits).
Solución:
Acudir a la Figura 2.17. El número 9 se representa en ASCII por 01 I 1001.
www.FreeLibros.me
I
FUNDAMENTOS DE LOS MICROPROCESADORES
ASCII
Carácter
Carácter
ASCII
:..@.
Espacio
!
"
:#
$
%
&
·
(
)
•
+
•
·
/
010
010
010
010
010
010
010
010
010
010
010
010
010
010
010
010
0000
A
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
B
011
011
011
011
011
011
011
011
011
011
0000
Q
0001
0010
0011
0100
0101
01 lO
0111
1000
1001
R
S
T
U
C
D
E
F
G
H
1
J
K
L
M
N
O
P
100
lOO
lOO
100
100
100
100
100
100
100
100
100
100
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1lOO
1101
lOO 1110
100 1111
101 0000
:.r
:.... r
:..
~
•~
~
... ~
!..a.
:.I
l..CI
O
I
2
:j
3
4
5
6
7
8
9
Figura 2.17.
V
W
X
Y
Z
101
101
101
101
101
101
101
101
101
101
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
Usta parcial del conjunto de caracteres ASCII.
2.44. Al eliminar los tres bits más significativos de la representación ASCII del O al 9 se obten­
drá el _ _ equivalente de ese número.
Solución:
Acudir a la Figura 2.17. Al eliminar los tres bits más significativos en la representación ASCII del
O al 9 se obtendrá el equivalente binario o BCD de ese número.
www.FreeLibros.me
UL;
:.:
,..­
I
NUMEROS, CODIGOS DE COMPUTADORA Y ARITMETICA
I
!
37
PROBLEMAS SUPlEMENTARros
2.45.
Mentalmente, convertir los siguientes números binarios a sus equivalentes decimales:
(b) 0010
(e) 0011
(d) 0111
(e) 1001
(f) 1100
Res. (a) O
(b) 2
(e) 3
(d) 7
(e) 9
(f) 12
(a) 0000
2.47. 01101001 2 - _ 10'
Res.
105 10 ,
2.47. 60 10 - _ - 2,
Res. 1III00r
2.48.
El número binario 10011100 se representa como 9C en notación _ _ .
hexadecimal.
Res.
2.49.
8° 16 " - - 2 '
Res.
10001101 2,
2.50. 01011111 2 Res.
_ _ 16 ,
5FI6'
2.51. 3C I6 - - - 10'
Res.
60 10,
I
2.52. 90 10 " - - 1 6 '
Res.
SA I6•
,'<
,
2.53. 92 1O - _ - OCD '
Res. 1001 00 lO ocD'
2.54.
1000 OIlO ocD Res.
- - 10'
86 10 ,
2.55. Resolver los siguientes problemas de suma binaria:
11000011
(b)
01101110
+00111100
+00111101
Res. (a) 11111111 2 (b) 10101011 2
(a)
2.56.
110110002 -00110011 2 Res.
2.57.
lItaCión ASCII del
10100101 2,
1001 2 X 1101 2 ",
Res.
--2'
--2'
1110101 2,
2.58. Cuando se almacenan números positivos y negativos en un registro del microprocesador, si el bit de
signo (MSB) es 1, el número es _ _ (negativo, positivo).
Res. negativo.
www.FreeLibros.me
í
38
FUNDAMENTOS DE LOS MICROPROCESADORES
2.59. O1111110 en notación en complemento a 2 representa dn número _ _ (negativo, positivo).
Res. positivo.
2.60. Traducir los siguientes números decimales con signo a su forma en complemento a 2 de 8 bits:
(a) + 12
(b)
12.
(b) 11110100 (complemento a 2).
Res. (a) 00001100 (complemento a 2)
2.61. Traducir los siguientes números en complemento a 2 a sus decimales con signo equivalentes:
(a) 01110100
(b) 11011101.
Res. (a) + 116 10 (b) - 35 10,
2.62.
Sumar los siguientes números decimales con signo utilizando números de 8 bits en complemento
a 2:
(a) ( + 13)
(b)
( + 17)
(e)
( - 6)
+ (+ 8)
Res.
+ (- 8)
(a) 00010101 (complemento a 2)
+ ( - 14)
(b) 00001001 (complemento a 2)
(e) 11101100 (complemento a 2)
2.63.
2.64.
Restar los siguientes decimales con signo utilizando números en complemento a 2 de 8 bits:
(a) ( + 13)
(b)
( + 19)
_,,-+-::..t.
( + 29)
Res. (a) 00001000 (complemento a 2)
(b) 11110110 (complemento a 2)
. . .=-­
~-'-.~
_. w1I
~~~.~
11
~
Un byte es un grupo que contiene _ _ bits.
Res. 8.
a~·
Un nibble es un grupo que contiene _ _ bits.
E=-'
Res. 4.
2.66.
t
..iI
.:;¡,,­
2.65.
:t:I
~
~
..;JI
.,
-31
El tamaño de palabra más popular para los sencillos microprocesadores es de _ _ (8,48) bits.
Res. 8.
2.67. Acudir a la Figura 2.16a. Se trata de un diagrama de bloques básicos de _ _ (una microcomputa­
dora. un microprocesador).
Res. una microcomputadora.
2.68. Acudir a la Figura 2.16b. ¿Cómo interpreta el microprocesador la palabra de memoria (11010011) de
la dirección 104 1O?
Res. Acudir a la Figura 2.16b. El microprocesador busca la palabra de memoria ( 110 1001 1) espe­
rando que sea una nueva instrucción. La palabra (110 100 11) es decodificada por el microprocesador
y significa SACAR (OUTPUT) dato del acumulador al puerto de salida cuyo número está en la
siguiente posición de memoria.
2.69.
2.70.
Las letras ASCII significan _ _ .
Res. American Standard Code for Information Interchange (Código Americano Estándar para In­
tercambio de Información).
Un código
se utiliza. probablemente, para traducir información desde un dispositivo de entra­
da (teclado) a un sistema microcomputador.
Res. alfanumérico o ASCII.
www.FreeLibros.me
~
...
~
Rr_
::..tI
m:
.::11
r-.
..
-.r-!
r
L.
Capítulo 3
positivo).
~a 2 dttS bits:
, en complemento
I
(8,48) bits.
na microcomputa­
la
J.l. PUERTAS LOGICAS
Los circuitos utilizados para procesar seflales digitales se denominan puertas lógicas. Para identi­
2 de 8 bits:
_
DISPOSITIVOS
DIGITALES BASICOS
(! 101(011) de
111101(011) espe­
~ microprocesador
Dumero está en la
'BU.da< pa" ••­
~itiVO de entra-
Scar estos circuitos se utilizan símbolos lógicos. Las siete puertas que son los elementos lógicos
fundamentales en los sistemas digitales aparecen en la Figura 3.1.
Los nombres de los siete elementos lógicos se dan en la columna izquierda de la Figura 3.1.
los símbolos lógicos estándares gráficos se ilustran en la segunda columna. La tercera muestra la
JL.uÓn exacta (salida) del circuito con entradas dadas. En la tabla de verdad, un significa un
nÍ\"el de tensión BAJO mientras que un 1 significa un nivel de tensión ALTO. La columna
derecha de la Figura 3.1 da la expresión booleana para cada elemento lógico. Las expresiones
~Ieanas son una especie de <<taquigrafia» utilizada para representar una función lógica.
Observar que cada símbolo lógico de la Figura 3.1 tiene una forma distintiva. Algunos fabri­
.:antes están comenzando a utilizar símbolos rectangulares para todos los dispositivos lógicos.
Estos nuevos símbolos lógicos están basados en el no ensayado estándar (IEEE Standard 91-1984)
~ollado por el Instituto de Electricidad e Ingeniería Electrónica. Sin embargo, por ahora,
:.ldos los trabajadores de esta área reconocerán los símbolos lógicos dibujados en la Figura 3.1.
El ejemplo de la Figura 3.2 es práctico con la utilización de información con las puertas
J.)gicas. ¿Cuáles son las salidas del inversor (a veces denominado puerta NOT) de la Figura 3.2
· . ~ el pulso a en la entrada? Oe acuerdo con la segunda línea de la tabla de verdad de la
~"Jra 3.1, la salida será 0, la opuesta a la entrada. Cuando el pulso b (un 0, o BAJO) alcanza la
. ~:-ada del inversor, la salida será un nivel ALTO o un 1. El pulso de entrada c producirá una
ja de nivel BAJO, mientras que el pulso d producirá una salida de nivel ALTO. El proceso de
.. ~rsión también se denomina complementación o negación. La expresión booleana para la
-::plementación es A = A (leer A complementado es igual a no A o A no). La barra superior se
": ':0 y se utiliza para invertir o complementar la variable o expresión que está debajo.
Otro ejemplo se muestra en la Figura 3.3a, donde aparece una puerta ANO de 2 entradas. Los
· . 50S de entrada en a son
y 1, que según la tabla de verdad de la Figura 3.1 producirán una
ja de nivel BAJO ó O. Los pulsos a, by c producirán todos salidas de nivel BAJO. Cuando
· -::as entradas de la puerta ANO estén en el nivel ALTO (ver pulso d en la Fig. 3.3a), la salida
-~ un nivel ALTO ó l.
Considerar el problema mostrado en la Figura 3.3b. Aquí los «nibbles» 10 10 (en la entrada A)
: IX) 1 (en la entrada B) van a realizar la operación ORo El «nibble» de salida se determinará
· - .·:rando la tabla de verdad de la Figura 3.1. El «nibble» de salida será 1 11 como resultado de
:;ac:ión OR de 1010 con 1001. Observar que primero realizan la operación OR los pulsos a.
· "",:,ues los b, etc.
°
°
°
www.FreeLibros.me
.1
I1
40
FUNDAMENTOS DE LOS MICROPROCESADORES
Función lógica
Símbolo lógico de puerta
Entrada
Salida
A
A
-
A--t>­ A
Inversor
Salida
Entrada
O
I
I
O
~:[)-Y
Salida
Entradas
AD­
B
NAND
Y
B
A
O
O
I
O
I
I
A
B =D­ Y
Salida
Entradas
;=L)o-Y
NOR
O
I
O
O
O
I
I
I
I
O
~j[)-Y
Entradas
Salida
D-
NOR exclusiva
A·B-Y
Salidas
A+B-Y
B
A
OR
O
O
O
1
O
1
I
I
I
I
O
1
J
O
Entradas
OR exclusiva
A·B-Y
AND NAND
Entradas
OR
-
A-A
Salidas
Entradas
AND
Expresión
booleana
Tabla de verdad
NOR
O
O
A+B-Y
Salidas
B
A
O
O
O
O
I
I
I
O
I
I
I
A (J)B-Y
XOR XNOR
O
1
O
O
I
A@B-Y
Figura 3.1 . Las siete funciones lógicas comparadas.
~ ----, Entrada~ida
"'"-d
e
b
NOT
a
Figura 3.2.
Problema del inversor.
www.FreeLibros.me
?
DISPOSITIVOS DIGITALES BASICOS
11..!fil.!..
~
d
b
c
a
~---'
(a)
·4 - A
c
b
,a
~-..r(b)
~?
A
Entradas
~~A
d
f
c,b
SaJida
'
~?
a
~~~
.4·8-Y
~I :::B- y
SaJida
Problema de la puerta OR
,A·B-Y
¡:;S-y
Salida
~,
Problema de la puerta ANO
Entradas
ll.!.Ji1..2....~
d
Entradas
41
(C)
Problema de la puerta XOR
Figura 3.3.
¿Cuál es el «nibble» de salida después que 10 1O y 1001 realicen la operación OR exclusiva
(XOR) en la Figura 3.3c. Utilizando la tabla de verdad XOR de la Figura 3.1, se determina que el
resultado de la operación XOR de 10 10 con 100 l es 00 11.
Los microprocesadores pueden realizar operaciones lógicas. Normalmente un microprocesa­
dor tendrá instrucciones NOT (complementación o negación), ANO, OR Y XOR. Estas instruc­
ciones operan sobre grupos de bits similares a los de las puertas lógicas de las Figuras 3.2 y 3.3.
.
,
,
,""
,~
PROBLEMAS RESUELTOS
3.1.
Citar los nombres de siete funciones lógicas.
Solución:
Acudir a la Figura 3.1. Las siete funciones lógicas se denominan NOT (inversor) ANO, NANO,
OR, NOR, OR exclusiva (XOR) y NOR exclusiva (XNOR).
3.2.
Citar los nombres de cuatro funciones lógicas que pueden ser realizadas por las sencillas
instrucciones de un microprocesador.
Solución:
Muchos microprocesadores tienen instrucciones que realizan las funciones lógicas NOT, ANO,
ORyXOR.
3.3.
Si un microprocesador realiza la operación ANO de 1100 con 10 11, el «nibble» de salida
será _ _ .
Solución:
Acudir a la tabla de verdad ANO de la Figura 3.1. La salida resultante de la operación ANO de
1100 con 1011 será 1000.
www.FreeLibros.me
42
FUNDAMENTOS DE LOS MICROPROCESADORES
3.4.
Si un microprocesador realiza la operación OR de 00 1r con 1000, el (mibble» de salida
será _ _ .
Solución:
Acudir a la tabla de verdad OR de la Fisura 3.1. El resultado de salida de la operación OR de
()() I I con 1000 será 1011.
3.5.
Si un microprocesador complementa (NOT) 1001, el
«nibble)~
de salida será _ _ .
Solución:
Acudir a la tabla de verdad del inversor de la Figura 3.1. La salida resultante de complementar
1()() 1 será 0110.
3.6.
Si un microprocesador realiza la operación XOR de 0011 con 0110, el «nibble» de salida
será _ _ .
Solución:
Acudir a la tabla de verdad OR exclusiva de la Figura 3.1. La salida resultante será OI Ol.
3.7.
Describir las salidas de la puerta NANO de la Figura 3.4.
Solución:
Acudir a la tabla de verdad NANO de la Figura 3.1. Los pulsos de salida de la Figura 3.4 serán
los siguientes:
pulso e - 1
pulso a - 1
pulso b = O
pulso d- 1
Entradas
Salida
OOlll-L-~
de
b
~?
a
~~
Figura 3.4.
3.8.
Problema del tren de pulsos.
Describir la salida de la puerta XNOR de la Figura 3.5.
Entradas
Salida
~~A
de
b
~?
a
-2..JiIl..!..~
Figura 3.5.
" ,.,
Problema del tren de pulsos.
Solución:
Acudir a la tabla de verdad NOR exclusiva de la Figura 3.1. Los pulsos de salida de la Figura 3.5
serán los siguientes:
pulso a - O
pulso e = 1
pulso b - O
pulso d- 1
www.FreeLibros.me
r
DISPOSITIVOS DIGIT AtES BASICOS
Lte>
de salida
operación OR de
3.2. COMBINACION DE PUERTAS LOGICAS
Los sistemas digitales están formados por combinaciones de puertas lógicas, las cuales pueden ser
descritas por una tabla de verdad, expresiones booleanas o diagramas de símbolos lógicos.
Considerar la tabla de verdad de la Figura 3.6a, que muestra todas las posibles combinaciones
de cuatro entradas (D, e, B y A). Observar que sólo la combinación 1010 producirá una salida l.
será _ _ .
Entradas
de complementar
Salida
Entradas
D
e
B
A
Y
D
r
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
1
l
1
1
I
I
I
1
o
o
o
o
Salida
R
A
Y
o
o
Ilibble» de salida
~
le
será 0101.
I
a Figura 3.4 serán
43
1
I
I
1
1
l
1
o
o
o
o
l
I
1
o
I
1
(a)
o
o
'0
1
1
1
o
o
o
o
1
1
1
I
1
I
1
1
o
1
1
o
o
o
o
o
Conversión de una tabla de verdad a la expresión booleana equivalente
D.C.B.A .. Y
L~ __
l-----,A
y
e
. .'
' - - - - -.... D _ _ _ _ _ _ _....J
Salida
Entradas
(b) Conversión de una expresión booleana a su diagrama de símbolos lógicos
la de la Figura 3.5
Salida
Entradas
(e)
Diagrama simplificado de los símbolos lógicos
. Figura 3.6.
www.FreeLibros.me
c·
44
o de nivel ALTO. Una expresión booleana equivalente para esta tabla de verdad se indica en la
parte derecha de la tabla de la Figura 3.6a. Las entradas realizan la operación ANO, formando
la expresión booleana D . c· B . A = y (se lee D ANO no e ANO B ANO no A igual a la
salida }).
A continuación se obtiene un diagrama de símbolos lógicos para la expresión booleana. Este
procedimiento está esbozado en la Figura 3.6b. Las entradas A y e deben de complementarse
utilizando un inversor. La salida es una puerta ANO de 4 entradas.
Una versión simplificada del mismo diagrama lógico se muestra en la Figura 3.6c. En este
diagrama los inversores aparecen como burbujas inversoras. Estas burbujas inversoras también
pueden considerarse como entradas activas en el nivel BAJO (o en BAJA). En otras palabras, para
activar la puerta ANO de la Figura 3.6c, las entradas A y e deben estar en el nivel BAJO y las B y
D en el nivel ALTO. Como las entradas B y D deben de estar en el nivel ALTO para activar la
puerta ANO, se consideran entradas activas en el nivel ALTO (o en ALTA).
Entradas
,
¡,
i
•
Salida
D
e
B
A
Y
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
1
1
o
I
1
o
o
o
1
1
1
1
(a)
I
1
1
o
1
Salida
Entradas
D
e
B
A
I
o
o
o
o
o
o
o
1
1
1
I
1/
1
1
I
Y
1
o
o
o
o
I
1
o
1
1
o
o
o
1
1
1
1
o
1
1
1
o
o
I
Conversión de una tabla de verdad a la expresión booleana equivalente en minterms
.~
~ ~
f
'ji
"f,
l~
:~
"7,,:
1
ruNDAMENTOS DE LOS MICROPROCESADORES
Entradas
A -.....--i ')o--.:~----.¡--"'"
B---+--~--~~~--~_4
C--~------~~~>O_+_4
D~++------------~--~~
D.C.'B:¡
__~
Salidas
!,
l.'
(b)
Conversión de una expresión booleana en minterms a su diagrama
de símbolos lógicos
Figura 3.7.
www.FreeLibros.me
o
I
D
ÚII
-= ,
-"-" ­
DISPOSITIVOS DIGITALES BAstCOS
se indica en la
A.~D, formando
. no A igual a la
o booleana. Este
complementarse
3.6c. En este
también
:as palabras, para
:l BAJO Ylas B y
O para activar la
lIJ"3
~ras
t
I
45
Considerar la tabla de verdad de la Figura 3.7a. Oos combinaciones de entrada producirán un
1 ó salida ALTA. La expresión booleana de esta tabla de verdad es entonces
D . L . 11 . A + D . e . 11 . A = Y (se lee D ANO no e ANO no B ANO no A OR D ANO e
."--~ no B ANO A igual a la salida Y).
La expresión booleana es convertida a continuación a un diagrama de símbolos lógicos. Este
procedimiento se ilustra en la Figura 3.7b. Observar que este tipo de expresión booleana crea
patrones de puertas lógicas ANO-OR, siendo la puerta OR la más cercana a la salida. El patrón de
esta expresión booleana se denomina forma de suma de productos o minterms. Las expresiones
booleanas son generadas a partir de los unos de la columna de salida de la tabla de verdad de la
forma mostrada en la Figura 3.7a.
..
PROBLEMAS RESUELTOS
3.9.
Acudir a la Figura 3.6c. Las entradas B y D son entradas activas en el nivel ___ (ALTO,
BAJO), mientras que las entradas A y e son activas en el nivel _ _ (ALTO, BAJO).
Solución:
En la Figura 3.6, las entradas By D son activas en el nivel ALTO, mientras que A y e son activas
en el nivel BAJO. En otras palabras, la puerta ANO de 4 entradas puede ser activada (la salida está
en el nivel ALTO) solamente cuando las entradas A y e son BAJAS y las B y D son ALTAS.
o
3.10. Escribir la expresión booleana de la tabla de verdad de la Figura 3.8.
Solución:
Hay dos combinaciones de entradas que producen una salida ALTA en la tabla de verdad de la
Figura 3.8. A partir de estas combinaciones se desarrolla la expresión booleana en minterms:
»·~·j·A+D·C·B·A=~
. \.
,o'
Entradas
Salida
Entradas
Salida
D
e
B
A
Y
D
e
B
A
Y
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
1
1
1
1
o
1
1
1
1
o
o
o
o
o
o
o
o
o
1
o
o
o
o
1
1
1
1
1
1
1
1
I
1
1
o
o
1
1
o
o
o
o
o
o
o
o
1
1
1
1
o
o
o
o
o
o
1
1
1
1
1
1
Figura 3.8.
www.FreeLibros.me
1
1
46
RlNDAMENTOS DE LOS MICROPROCESADORES
3.11. Dibujar el diagrama de símbolos lógicos de un circuito que genere la tabla de verdad de la
Figura 3.8.
Solución:
La expresión booleana para la tabla de verdad mostrada en la Figura 3.8 es
D .
Ji . A + D . e . B . A = Y. A partir de esta expresión se dibuja el diagrama de símbolos
lógicos AND-OR mostrado en la Figura 3.9.
e.
D.C.S.A
Salida
y
Entradas
A--~+;---------r--~
B---+~--------~
c----~--------~
D----~~------_L
Figura 3.9.
__~
Solución del diagrama lógico.
3.3. FLIP~FLOPS y CERROJOS
Los circuitos lógicos pueden clasificarse en dos grandes categorías. El primer grupo es el de los
circuitos lógicos combinacionales, que está compuesto de puertas. El segundo grupo es el de los
circuitos lógicos secuenciales, que incluye unos dispositivos denominados «flip-flops». Los flip­
flops están interconectados para formar circuitos lógicos secuenciales para almacenamiento de
datos, temporización, conteo y secuenciamiento. Los flip-flops tienen una característica de me­
moria extremadamente valiosa. Un flip-flop «recordará» sus entradas aún después de que éstas se
hayan eliminado. Una puerta lógica sin embargo, «no recordará» su estado de salida después que
se eliminen las entradas.
El símbolo lógico para el flip-flop D (también llamado fliPllop de datos) aparece en la Figu­
ra 3.1 Oa. El símbolo lógico muestra dos entradas etiquetadas D (para datos) y CK (para reloj). Los
flip-flops habitualmente tienen salidas complementarias etiquetadas Q y"Q (no Q). La salida Q es
la utilizada con más frecuencia y se considera la salida normal. La salida "Q se denomina la salida
complementaria o invertida del flip-flop. El > en la entrada CK del símbolo lógico D denota que
este flip-flop transfiere datos de la entrada a la salida en el flanco positivo (t) del pulso de reloj.
Los modos de operación del flip-flop D se muestran en la columna izquierda de la tabla de la
Figura 3.lOb. Poner en set el flip-flop significa cargar un 1 en la salida normal (Q). La primera
línea de la tabla de verdad de la Figura 3.1 Oh muestra que colocando un l en la entrada D y
pulsando una vez la entrada CK (reloj) la salida Q se pone a l. La segunda línea muestra la
reinicialización (reset) del flip-flop. Reinicializar significa borrar la salida Q (ponerla a O). Mante­
ner (hold) significa almacenar el dato de salida. Cuando el flip-flop está en el modo de manteni­
miento, los cambios en el estado lógico de los datos de entrada no ocasionan ningún cambio en
www.FreeLibros.me
..i1lL
"••
47
DIsPOsmvos DIGITALES BAStCOS
· de verdad de la
Entradas
k
Figura 3.8 es
ama de símbolos
D
CK
Set
1
f
Reiniciali­
zación
O
f
Manteni­
miento
X
No pulso
de reloj
Salidas
Q
Q
O
1
Salidas
Entradas
Dato
Q
Normal
FF
Reloj
Modo de
operación
CK
Q
Complementaria
Igual que
antes
0= BAJO
I-ALTO
X irrelevante
t - transición BAJA-ALTA del pulso de reloj
(a)
Símbolo lógico para el Oip-flop D
(b)
Tabla de verdad para el flip-flop D
Figura 3.10.
L ~l
es
de los
rupo es el de los
·ps». Los flip­
acenamiento de
r:ter(Slica de me­
s de que éstas se
ida después que
mece en la Figu­
'!'ara reloj). Los
_a salida Q es
DOmina la salida
ro D denota que
:1 pulso de reloj.
de la tabla de la
_ La primera
I la entrada D y
linea muestra la
e-rla a O). Mante­
\ de manteni­
Dgún cambio en
las salidas. La condición de mantenimiento ilustra la característica de memoria del flip-flop D.
Observar que las operaciones de set y reinicialización se refieren a la salida Q.
Considerar el símbolo lógico de la Figura 3.11 a correspondiente a un cerrojo transparente de
4 bits. Cada cerrojo (flip-flop) dentro del símbolo es un dispositivo de almacenamiento o memo­
ria. Pensar que el cerrojo de 4 bits contiene 4 flip-flops D con sus entradas de reloj conectadas a la
entrada de habilitación (enable) (E) mostrada en el símbolo de la Figura 3.11 a. De acuerdo con la
tabla de verdad del cerrojo de la Figura 3.11 b, cuando la entrada de habilitación (E) está en
ALTA (a 1), los datos de las entradas D son transferidos a sus respectivas salidas (QO-Q3)' La
palabra de 4 bits llega en forma paralela (opuesta a la forma serie) y también sale en forma
paralela. A esto se denomina entrada paralela y salida paralela. El dispositivo de almacenamiento
cerrojo es una aplicación realizada con flip-flop.
El flip-flop JK es probablemente el más utilizado en los circuitos lógicos secuenciales, debido a
su adaptabilidad. El símbolo lógico de un flip-flop JK se muestra en la Figura 3.12a. Este flip-flop
tiene dos entradas de datos etiquetadas J y K más una entrada de reloj (CK) y las salidas Q
(normal) y <2 (complementaria).
Un flip-flop JK tiene cuatro modos de operación, que se describen en la Figura 3.12b. El
modo de operación de conmutación (toggle) significa que con cada pulso, un tren de pulsos de
reloj, las salidas cambian a su estado lógico opuesto. En este modo, la salida Q de un flip-flop JK
será ALTA-BAJA-ALTA-BAJA, etc., con pulsos de reloj consecutivos.
La tabla de verdad de la Figura 3.l2b muestra que el flip-flop JK conmutará cuando ambas
entradas de datos, J y K, estén en el nivel ALTO, siempre que un pulso de reloj llegue a la entrada
CK. La acción de conmutación real tiene lugar cuando el pulso de reloj cambia del nivel ALTO al
BAJO, como muestra la flecha (t) en la tabla de verdad.
www.FreeLibros.me
~
I
48
J
FUNDAMENTOS DE LOS MICROPROCESADORES
Entradas
Modo de
operación
Salidas
Entradas
D
Salidas
Q
E
E -.
1iIe:: ~
P­
~.
é:E:- "
~oo
paralelo
{
DJ
Q)
D2
DI
Q2
Q¡
Do
Q(}
}
1
O
1
1
I
X
O
Igual que
antes
D.OO
paralelo
Dato encerrado
E
Habilitación
O
~
Dato habilitado
:~
> ­
O-BAJO
I-ALTO
X - irrelevante
Símbolo lógico para el cerrojo transparente
de 4 bits
(a)
(b)
Tabla de verdad para el cerrojo
Figura 3.11 .
...:¡
s;.::-"
--'
Entradas
.:
Modo de
operación
Q
J
Dato
~
Salidas
Q
J
K
CK
Conmuta­
ción
1
1
~
Estado
opuesto
Set
1
O
~
1
O
Reiniciali­
zación
O
1
~
O
1
Mantení­
miento
O
O
~
Q
Normal
FF
Reloj
...iII
'A.
Salidas
Entradas
Dato
... _~
CK
K
Q
Complementaria
No cambia
"ti ..
0- BAJO
l-ALTO
.j. - transición ALTA-BAJA del pulso de reloj
(o)
.
(b) Tabla de verdad para el flip-flop JK
Símbolo lógico para el flip-f1op JK
Figura 3.12.
www.FreeLibros.me
111.
]...
r
DISPOSITIVOS DIGITALES BASICOS
(
Salidas
Q
~
O
~
1
II
Igual que
antes
I
r
49
El flip-flop IK está en el modo ser cuando las entradas de datos son: 1- 1 YK = O. La segunda
línea de la tabla de verdad de la Figura 3.12b muestra que la transición de ALTO a BAJO del
pulso de reloj pone la salida Q a l. El modo de reinicialización (poner Q a O) se muestra en la
tercera línea de la tabla de verdad. La última línea de la tabla de verdad de la Figura 3.12b
describe el modo de mantenimiento (modo de no hacer nada) del flip-flop JK. Cuando ambas
entradas de datos (J y K.) son BAJAS, un pulso de reloj en la entrada CK no tendrá efecto sobre
las salidas.
El disparo es una característica importante de los flip-flops. Los flip-flops pueden clasificarse
en dispositivos disparados por flanco o dispositivos disparados por nivel. Los símbolos lógicos de
las Figuras 3. lOa y 3.12a sugieren que estos flip-flops son disparados por flanco, por el pequeño
> (mayor que) que está junto a la entrada de reloj. El flip-flop D es disparado en la transición L a
H (BAJA a ALTA) del pulso de reloj. Esto se muestra en la tabla de verdad y en el símbolo lógico
(la no existencia de circulito en la entrada CK implica que es necesario un 1 para activar el reloj).
El flip-flop D también se denomina flip-flop disparado por flanco positivo ya que es la transición
positiva del pulso de reloj la que dispara al flip-flop.
El flip-flop JK es una flip-flop disparado por flanco negativo. Esto se muestra en la tabla de
verdad y en el símbolo lógico de la Figura 3.12. El circulito en la entrada CK, del símbolo lógico
del flip-flop JK, implica que es necesario un nivel BAJO para activar el reloj. Debido a que el
flip-flop JK es disparado por flanco, realmente es en la transición H a L (ALTA a BAJA) (negati­
va) del pulso de reloj cuando se dispara el flip-flop.
El cerrojo transparente de 4 bits de la Figura 3.11 es un dispositivo disparado por nivel. Esto
significa que cuando la entrada de habilitación (análoga a las entradas CK de los flip-flops) está en
ALTA, cualquier dato binario en las entradas (D 3-Do) aparecerá inmediatamente en las salidas
(Q3-QO)' Por esta razón se dice que el cerrojo es transparente.
Salidas
Q
Q
Estado
opuesto
1
O
O
1
)
PROBLEMAS RESUELTOS .
3.12. Los circuitos lógicos secuenciales contienen dispositivos llamados _ _ .
Solución:
Los circuitos lógicos secuenciales contienen flip-f1ops.
3.13. Una característica de memoria utilizada para almacenar datos es típica de _ _ (flip­
flops, puertas).
/
"So cambia
Solución:
Los flip-flops tienen una característica de memoria y pueden utilizarse para almacenar datos.
3.14. El flip-flop D también se denomina flip-flop _ _ .
de reloj
~tlopJK
Solución:
El flip-f1op D también se denomina flip-flop de datos. A veces se llama flip-flop de retardo.
3.15. La salida normal de un flip-flop es la salida _ _ (Q, Q).
Solución:
La salida normal de un flip-flop es la salida Q). La salida Q es la invertida, o complementaria.
-,
www.FreeLibros.me
SO
FUNDAMENTOS DE LOS MICROPROCESADORES
3.16. Listar los tres modos de operación del flip-flop D mostrado en la Figura 3.10.
Solución:
Acudir a la tabla de verdad de la Figura 3.1 Ob. El flip-flop D puede operar en los modos de set,
reinicialización o mantenimiento.
3.17. Listar el modo de operación del flip"flop D durante cada uno de los cinco pulsos de reloj
de la Figura 3.13.
Solución:
Acudir a la tabla de verdad de la Figura 3.1 Ob. Según esta tabla, los modos del flip-flop D durante
cada pulso de la Figura 3.13 son los siguientes:
pulso a = modo set
pulso d modo set
pulso b = modo reset
pulso e modo reset
período de tiempo e (no pulso)" modo mantenimiento
3.18. Listar los valores binarios de la salida normal (Q) del flip-flop D de la Figura 3.13 después
de cada uno de los pulsos de reloj.
Solución:
Acudir a la tabla de verdad de la Figura 3.1 Ob. Las salidas binarias en Q del flip-flop D de la
Figura 3.13 son:
después del pulso a = 1
después del pulso d - I
después del pulso b = O
después del pulso e .., O
período de tiempo e (no pulso) .. O (igual que después del pulso b)
)
O
Entradas
I
I
O
,,--_
..
H
..
L
Q
?
FF
CK
LNOPUlSO
Figura 3.13.
Salidas
-"
Q
-,
?
Problema del flip-flop D.
............""­
":;;;
3.19. Un cerrojo es un dispositivo de --'-- (cuenta, almacenamiento).
Solución:
La función principal de un cerrojo es la de almacenar datos.
. .J&
3.20. Acudir a la Figura 3.11. La entrada de habilitación de este cerrojo de 4 bits es activada por
un _ _ (O, 1) lógico.
Solución:
Acudir a la tabla de verdad de la Figura 3.11 b. De acuerdo con esta tabla, la entrada de habilita­
ción de este cerrojo de 4 bits se activa por un 1 lógico.
www.FreeLibros.me
.....
.::Ji
'I11III
•-
"'!!P!'"
-
DISPOSITIVOS DIGITALES BASICOS
~.tO.
3.21. Listar los cuatro modos de operación del flip-flop JK de la Figura 3.12.
SI
. -.,
Solución:
Acudir a la tabla de verdad de la Figura 3.12b. Los modos de operación del flip-flop JK son
conmutación, set, reinicialización y mantenimiento.
los modos de set,
o pulsos de reloj
3.22. Listar el modo de operación del flip-flop JK durante cada uno de los pulsos de la Figu­
ra 3.14.
~flOP D durante
Salidas
Entradas
o
o
~
Q
?
Q
?
FF
H
CK
L
pea 3.13 después
J
o
:1 flip-flop D de la
O
Figura 3.14.
lo
K
Problema del flip-flop JK.
Solución:
Acudir a la tabla de verdad de la Figura 3.12b. De acuerdo con esta tabla los modos del flip-flop
JK durante cada pulso de la Figura 3.14 son:
pulso e"'" conmutación
pulso a = set
pulso b - conmutación
pulso f - reset
pulso e - conmutación
pulso g = mantenimiento
pulso d = conmutación
pulso h conmutación
ialidas
-1
'j
'j
.
:
3.23. Listar los valores binarios de la salida normal Q del flip-flop JK de la Figura 3.14 después
de cada pulso de reloj.
Solución:
Acudir a la tabla de verdad de la Figura 3.12b.
Figura 3.14 son las siguientes:
después
después del pulso a = se pone l
después
después del pulso b = conmuta a O
después
después del pulso e = conmuta a I
después del pulso d = conmuta a O
después
~.24.
Las salidas binarias en Q del flip-flop JK de la
del
del
del
del
pulso e = conmuta a 1
pulso f = se pone a O
pulso g - se mantiene en O
pulso h = conmuta a I
Acudir a la Figura 3.tO. Este flip-flop D es un dispositivo disparado por ___ (flanco,
nivel).
Solución:
entrada de habilita-
El flip-flop D de la Figura 3.10 es un dispositivo disparado por flanco. Esto se muestra en el
diagrama lógico por el símbolo>. También se muestra en la tabla de verdad por el símbolo t,
indicando que el flip-l1op se dispara en la transición H a L del pulso de reloj.
,'.
www.FreeLibros.me
1­
52
FUNDAMENTOS DE LOS MICROPROCESADORES
3.25. Acudir a la Figura 3.11. Este cerrojo de 4 bits es un dispositivo disparado por _ _ (flan­
co, nivel).
Solución:
El cerrojo transparente de la Figura 3.11 es un dispositivo disparado por nivel.
3.26. Acudir a la Figura 3.12. Este flip-flop JK es un dispositivo disparado por flanco _ _
(negativo, positivo).
Solución:
El flíp-flop de la Figura 3.12 es un dispositivo disparado por flanco negativo ya que se dispara en
la transición H a L (negativa) del pulso de reloj.
"
3.4. CODIFICADORES, DECODIFICADORES Y VISUALIZADORES
DE SIETE SEGMENTOS
~
*~
,t
"
Considerar el sencillo diagrama de bloques de la calculadora de la Figura 3.1Sa. En este sistema
digital la entrada decimal del teclado debe traducirse a forma decimal codificada en binario
(BCD). Este proceso lo realiza un dispositivo digital llamado codificador. La traducción de deci­
mal a BCD se denomina codificación. La salida de la unidad central de tratamiento (CPU) está
en forma decimal codificada en binario. El decodificador traduce el BCD al código especial del
visualizador de siete segmentos. Para el usuario, el decodificador está traduciendo de BCD a
decimaL
Un diagrama lógico de un codificador de prioridad decimal a BCD se muestra en la Figu­
ra 3.ISb. El codificador tiene 9 entradas activas en BAJA y 4 salidas conectadas a lámparas
indicadoras. El cableado del teclado se muestra en la parte izquierda, cada tecla numerada está
conectada a su entrada correspondiente del codificador. El ejemplo de la Figura 3.ISb muestra
que al pulsar la tecla 7, se activa (pone a tierra) la entrada 7 del codificador. Esta entrada produce
la salida BCD 0111, como muestran los visualizadores de la Figura 3.ISb. La mayoría de los
codificadores tienen una característica de prioridad. Esto significa que si se pulsan dos teclas al
mismo tiempo, la que tiene el valor decimal más alto activará las salidas. Es claro que las
conexiones de alimentación son necesarias para completar el cableado del codificador de la
Figura 3.ISb. El codificador puede comprarse en forma de CI, pero también puede ser construido
a partir de puertas lógicas individuales. Probablemente se necesitarán entre 10 Y 20 puertas
lógicas para implementar este circuito.
Considerar el circuito decodificador-visualizador detallado en la Figura 3.1Sc. El decodifica­
dor BCD a siete segmentos traduce el O111 BCD a su equivalente 7 en el visualizador de siete
segmentos. El visualizador utilizado en este circuito se denomina de ánodo común porque los
siete LEOs (que forman los siete segmentos) tienen sus ánodos conectados a la fuente de alimen­
tación de +S V. El visualizador LEO de siete segmentos de la Figura 3.ISc tiene las entradas
activas en BAJA, como muestran los circuitos en las entradas de la a a la g. Es necesario un nivel
BAJO para activar un segmento del visualizador. Observar también que el decodificador tiene las
salidas activas compatibles en BAJA. Los resistores de ISO n de cada línea, entre el decodificador
y el visualizador, son de limitación para mantener las corrientes a niveles seguros. El ejemplo de
la Figura 3.15c muestra que solamente las salidas del decodificador a, by c están activadas (en O
lógico). Las otras salidas (d, e, f y g) permanecen a I lógico. El visualizador de la Figura 3.ISc
www.FreeLibros.me
al
--...­
-.c
:-.41
=r=~
-=.r
-=.~
-~
"'a...
L__
DISPOSITIVOS DIGITALES BASICOS
[2][!J ~
L
IOr
Salida
Entrada
(flan­
EJ0~ r---­
0~0
~
flanco - - ­
Unidad
Codificador ----, central de
tratamiento
t'
- I~;r,"", I · O
Visualizador
decimal
Teclado
a que se dispara en
!
53
(a)
.
Teclado
Diagrama de bloques simplificado de una calculadora
Entrada
decimal
Salida BCD
9
8
D
Codificador e
6 de prioridad
decimal-a-BCD B
Activado
~
7
.
5
En este sIstema
6cada en binario
aducción de deci­
úento (CPU) está
ódigo especial del
ciendo de BCD a
l.
3
2
pestra en la Figu­
:tadas a lámparas
~ numerada está
a.ra 3.15b muestra
a entrada produce
..a mayoría de los
Illsan dos teclas al
Es claro que las
codificador de la
ale ser construido
~ 10 y 20 puertas
(b) Diagrama lógico de los circuitos codificadores del teclado
Salida decimal
Entrada BCD
Activa
a
a rl---'\.I\I'_,....r4
o
8
D
4
e
2
B
a
a~. ~
<e d e
A
Decodificador
BCD-a-7-segmentos
t5c. El decodifica­
IIl3.lizador de siete
l1ún porque los
1 fuente de alimen­
tiene las entradas
~ecesario un nivel
.licador tiene las
re el decodificador
IrOS. El ejemplo de
Ián activadas (en O
de la Figura 3.15c
A
4
f
I n - _ J \ ,1\ 1\
g ........_-"./\ ~,-".,.
il
JI'
~>
+5 V
Anodo común
i------J
'"
1500
Visualizador LEO de siete-segmentos
(e)
Diagrama lógico de los circuitos del decodificador-visualizador
Figura 3.16.
sólo una conexión de alimentación de +5 V, mientras que el decodificador debe tener dos
:xsiooes de alimentación. Las conexiones de alimentación del decodificador se han omitido
:1 ~agrama. Los decodificadores reales BCD a siete segmentos también contienen entradas
_""lo ~.¡uear (desconectar todos los segmentos) y para test de lámparas (conectar todos los
:':C
~~toS).
www.FreeLibros.me
f
S4
FUNDAMENTOS DE LOS MICROPROCESADORES
PROBLEMAS RESUELTOS
3.27. El codificador de la Figura 3.15b traduce un teclado decimal a la forma _ _ (ASCII,
BCD).
Solución:
Acudir a la Figura 3.15b. Este codificador traduce las pulsaciones de las teclas deCÍmales a forma
BCD.
3.28.
El codificador de la Figura 3.15b tiene entradas activas en _ _ (ALTA, BAJA).
35. B1.
Solución:
Acudir a la Figura 3.l5b. Este codificador tiene entradas activas en BAJA. Están representadas
en el diagrama lógico por los CÍrculitos en las entradas del codificador.
3.29.
El decodificador de la Figura 3.16 traduce del decimal codificado binario a _ _ (deci­
mal, hexadecimal).
Solución:
El decodificador en la Figura 3.16 traduce del BCD a la representación decimal en el visualizador
de siete segmentos.
La cin:uiI
denCrnl.n.
mulupiex,
CIiCltadon
En est
:.u d:JSri
:.!:llC"tu e1
:;¡
-­
F' ;.. _....'" - .
Salida
Entradas
11...0;....._o~O___o _o-,rl °
° O~
O
--.r-
° 1 ° 1 1 O 1 O o~
.!JTL2_!:Jil.~_Jill!!.Jl~
O
j
8
4
D
e
:il~
2 B Decodificador
A
BCD-a-7­
segmentos
a
a
b
hgfedcba
d
e
e e
dil
r%'
f
+5V
g
d
3.30.
bD
,V
'\
150n
Problema del decodificador BCD-a-siete-segmentos.
El decodificador de la Figura 3.16 tiene las entradas activas en _ _ (ALTA, BAJA) Ylas
salidas activas en _ _ (ALTA, BAJA).
Solución:
El decodificador de la Figura 3.16 tiene las entradas activas en ALTA y las salidas en BAJA.
3.31. Listar las indicaciones decimales del visualizador de siete segmentos para cada pulso de
entrada en la Figura 3.16.
www.FreeLibros.me
e
;--i:j ~
Visualizador LED
de siete-segmentos
Figura 3.16.
la_
-r::':J!?ll'U
a
::U-"I!l. !:as
,-\1. T.o\. :!' I
r
DISPOSITIVOS DIGITALES BASICOS·
a _ _ (ASCII,
decimales a forma
L. BAJA).
~
Solución:
Las salidas decimales para los diversos pulsos de la Figura 3.16 son las siguientes:
pulso f = 3
pulso a == l
pulso b "" 4
pulso g == O
pulso e 7
pulso h = 2
pulso d= 9
pulso i = 5
pulso e "" 6
pulso j = 8
3$: BUFFERS y DISPOSITIVOS DE TRES ESTADOS
istán representadas
o a _ _ (deci-
I en el visualizador
I
Salida
a
la circuiterfa electrónica que puede traducir señales de una sección de un sistema a otra se
denomina interfaz. En un sistema basado en microprocesador, las interfaces pueden ser buffers,
multiplexores, conversores analógico~digitales (ADC), conversores digitales~analógicos (DAC),
excitadores de transistores discretos y aisladores (ópticos o relés).
En esta sección nos concentraremos en un dispositivo de interfaz: el buffer. Los fabricantes
ban diseñado diversos circuitos integrados especiales denominados buffers que se utilizan como
interfaz en situaciones especiales. El símbolo lógico para un buffer no inversor de bus se ilustra en
la Figura 3.17a. la operación del buffer del bus se detalla en la tabla de verdad de la Figura 3.17 b.
El buffer tiene una entrada de habilitación activa en BAJA, y el dato no se invierte cuando pasa a
través del buffer. Cuando el buffer del bus está inhabilitado, la salida está «flotando» y no tiene
efecto en la línea del bus. En la condición de inhabilitación, la salida de la puerta no absorbe ni da
ninguna corriente a la línea del bus. El buffer del bus de la Figura 3.17 se dice que tiene salida de
tres estados (o tristate).
+5V
las salidas de los dispositivos lógicos se definen habitualmente como ALTA o BAJA. Por esta
razón, las salidas de dos dispositivos lógicos no pueden conectarse entre sí ya que si una está en
ALTA y la otra en BAJA, entonces la salida estará indefinida y los CI pueden sufrir daños. Los
fabricantes han desarrollado CI especiales con salidas de tres estados para utilizarlas cuando las
Entradas
IIalizador LED
lÍcte-segmentos
l
YA. BAJA) Y las
Iidas en BAJA.
Salida
Modo de
operación
Entradas
Dato
A
E
A
Y
O
O
O
O
l
1
1
O
1
1
Alta impedancia
(tensión de salida
flota)
Salida
y
Habilitado
E
Habilitación _ _---1
Inhabilitado
(a)
Símbolo lógico para el buffer
del bus de tres estados
(b)
Tabla de verdad para el buffer del bus de tres
• cada pulso de
Figura 3.17.
www.FreeLibros.me
56
FUNDAMENTOS DE LOS MICROPROCESADORES
J-ll. Al
di
salidas de distintos CI deban compartir un camino de salida o bus común. Los dispositivos de tres
estados tienen estados de salida de ALTA, BAJA y un estado especial de alta impedancia (estado
de alta-Z). Cuando el dispositivo está en su estado de alta-Z, su salida está desconectada o aislada
efectivamente del bus.
El diagrama lógico para un transceptor de bus está esbozado en la Figura 3.18a. Este transcep­
tor de bus de tres estados es un buffer no inversor que puede enviar datos en cualquier dirección.
Entre la RAM y el bus de datos y también entre el microprocesador y el bus de datos de un
sistema microcomputador es necesario un buffer de dos direcciones. En la práctica, los transcep­
tores son construidos en las RAM y microprocesadores.
La operación del transceptor de un bus de tres estados se detalla en la tabla de verdad de la
Figura 3.18b. El transceptor tiene dos entradas de control (G y DIR). La entrada DIR controla la
dirección del flujo de datos. Un nivel ALTO en la entrada DIR significa que el terminal A es la
entrada de datos y el terminal B es la salida al bus. Un nivel BAJO en la entrada DIR significa
que el terminal B es la entrada de datos y el terminal A es la salida al bus. Un nivel BAJO en la
entrada V activa los buffers y permite que pasen los datos. Sin embargo, un nivel ALTO en la
entrada V inhabilita los buffers quedando los terminales A y B aislados entre sí.
,
,
Controles{
DIR __-----i
Dato
A ---<I'-----~
>-'1--_ _ Dato
B
.Ll.I.
.
~
.....
s.
~.J!_
ca
SIl
"
Entradas de control
Habilitación Dirección
G
..
S.
Operación
G
DIR
L
L
Dato B abusA
L
H
Dato A a bus B
H
X
Aislamiento (alta Z)
H = nivel lógico ALTO
L - nivellógÍco BAJO
X irrelevante
(a)
Diagrama lógico pard el transceptor del bus de
tres estados
.
:,
í
'!
(b)
Tabla de verdad para el transceptor de bus de tres
estados
¡
=
•
PROBLEMAS RESUELTOS
3.32. La salida de un dispositivo lógico de tres estados puede ser 1 lógico, O lógico o el estado de
alta _ _ (tensión, impedancia).
..
..
Figura 3.18.
Solución:
La salida de un dispositivo lógico de tres estados puede ser ALTA, BAJA, o un estado de alta im­
pedancia.
www.FreeLibros.me
.... La.-.
=.....
--
'~
~
~l'!!:II:
DISPOSITIVOS DIGITALES BASICOS
spositivos de tres
pedancia (estado
nectada o aislada
~. Este transcep­
t.1quier dirección.
¡ de datos de un
ica los transcep­
de verdad de la
I DIR controla la
terminal A es la
da DIR significa
Ilivel BAJO en la
ivel ALTO en la
I
57
3.33. Acudir a la Figura 3.18. El transceptor es un buffer del bus de tres estados que puede pasat
datos en _ _ (ambas, una) dirección.
Solución:
El transceptor de la Figura 3.18 puede pasar datos en cualquier dirección (de A a B o de B a A)
dependiendo del nivel lógico en el control DlR.
3.34. Acudir a la Figura 3.18. Si el control de habilitación del transceptor (V) está en ALTA,
¿pasarán los datos por los buffers?
Solución:
No. Con el control de habilitación del transceptor en ALTA, los terminales de datos A y B están
aislados y ningún dato puede pasar en ninguna dirección.
335. La puerta del buffer del bus de la Figura 3.19 tiene una entrada de habílitación activa
en _ _ (ALTA, BAJA).
Solución:
El buffer del bus de la Figura 3.19 tiene una entrada de habilitación activa en BAJA.
Entradas
Salida
,1
Operación
[)ato B a bus A
O
O
f
e
d
O
O
•
'!
a
e
I
A
I
O
O
)atO A a bus B
Figura 3.19 Problema del buffer del bus de tres estados.
¡lamiento (alta Z)
3.36. Acudir a la Figura 3.19. Listar las salidas de la puerta del buffer del bus durante cada uno
de los seis pulsos de entrada.
Solución:
Las salidas de la puerta del buffer del bus de la Figura 3.19 durante cada uno de los seis pulsos de
entrada son:
durante el pulso d - estado de alta Z (puerta
durante el pulso a - 1 (puerta habilitada)
inhabilitada)
,
durante el pulso b = O (puerta habilitada)
durante el pulso e "" O (puerta habilitada)
durante el pulso e = estado de alta Z (puerta
inhabilitada)
durante el pulso f = I (puerta habilitada)
ice o el estado de
3.6. MEMORIAS SEMICONDUcrORAS
L~deaIUim-
El flip-flop, o cerrojo, es la celda bdsica de memoria utilizada en muchas memorias semiconduc­
toras. Las memorias semiconductoras habitualmente se dividen en dos grupos: memorias de
lectura/escritura y memorias de sólo lectura (ROM), Los nombres implican las diferencias entre
www.FreeLibros.me
58
fUNDAMENTOS DE LOS MICROPROCESADORES
los dos tipos de memoria. Una ROM es una memoria no volátil con su patrón 6inario de ceros y
unos programados permanentemente por el fabricante. La memoria de lectura/escritura es una
memoria que puede ser fácilmente programada, borrada y reprogramada por el usuario. La
programación se denomina escribir en memoria. Copiar datos de la memoria. sin destruir el
contenido, se denomina leer de memoria. La memoria de lectura/escritura se denomina RAM
(memoria de acceso aleatorio), con frecuencia. Generalmente, el programa de la RAM es volátil,
lo cual significa que se perderá si se desconecta la alimentación del CI, incluso durante un
instante. Los sistemas microcomputadores normalmente contienen los dos tipos de memorias
semiconductoras ROM y RAM. Las posiciones de almacenamiento ROM y RAM están habitual­
mente en CI separados.
Existen actualmente cuatro posibilidades de memorias de sólo lectum. La ROM estándar es
programada por el fabricante. La PROM (memoria de sólo lectura programable) puede ser pro­
gramada permanentemente por el usuario o distribuidor utilizando un equipo especiaL Puede ser
programada solamente una vez. La EPROM (memoria de sólo lectura programable borrable)
puede ser programada y borrada por el usuario. Los datos almacenados en la EPROM pueden ser
borrados aplicando luz ultravioleta de alta intensidad, a través de una ventana especial transpa­
rente, en la parte superior del CI. Otra PROM borrable es la EAROM (memoria de sólo lectura
alterable eléctricamente) que puede ser borrada y programada por el usuario con un equipo
especial. La EAROM se borra eléctricamente y no con luz ultravioleta. La ROM, PROM,
EPROM YEAROM son considemdas memorias no volátiles permanentes y no pierden sus datos
cuando se desconecta la alimentación del CL
Las memorias -RAM se subdividen en dos grupos. Si la memoria de lectura/escritura contiene
circuitos tipo «flip-flop» como celdas de memoria, se denomina RAM estática (SRAM). Una
forma más simple de la celda de memoria de lectura/escritura es la base de la RAM dinámica
(DRAM). Debido a que la celda de memoria de la RAM dinámica está basada en una capacitan­
cia, las celdas deben ser refrescadas cientos de veces por segundo. La RAM estática no necesita
refrescarse y mantiene su información binaria, indefinidamente, todo el tiempo que esté alimen­
tado el CI. Las RAM dinámicas tienen mayor capacidad y menos consumo de potencia que las
estáticas.
Un dispositivo de memoria semiconductom más moderno es la RAM no volátil (NVRAM).
La NVRAM combina RAM estáticas y PROM borrables eléctricamente (EEPROM) de idéntica
capacidad. Los datos pueden ser transferidos entre la SRAM y la EEPROM y viceversa mediante
operaciones de almacenamiento y rellamada. Los datos pueden almacenarse con seguridad en la
EEPROM no volátil cuando se desconecte la alimentación. Cuando se conecta la alimentación,
los datos de la EEPROM son rellamados automáticamente a la sección SRAM de la RAM no
volátil. El concepto de RAM no volátil también está implementado por los fabricantes de micro­
computadoras utilizando pastillas comunes de RAM con una bateIia de seguridad.
En microcomputadoras, las RAM se utilizan para almacenamiento temporal de programas
y datos del usuario. Las ROM son utilizadas más frecuentemente pam almacenar instrucciones
del lenguaje máquina que pueden considerarse el programa monitor. El programa monitor
puede contener rutinas de inicialización no modificables, rutinas de entrada/salida y algoritmos
aritméticos.
f
1
3.37
S
-:1:1<
3.31. 1..;
..
Se¡
l.l9. LI
So
!Al. La
vol
Sal
JJnII
3.41. La
SIl
.~
3.42. Las
SeII
I
~
3.·0.
uf
Sal
~
J.44. La
Del
!W
n:p
J.45.
La
SiII
www.FreeLibros.me
,
binario de ceros y
ra/escritura es una
Xlr el usuario. La
ría. sin destruir el
r denomina RAM
la RAM es volátil,
lcluso durante un
tipos de memorias
\M están habitual-
I
ROM estándar es
~/e) puede ser pro­
especial. Puede ser
~amable borrable)
PROM pueden ser
I especial transpa­
na de sólo lectura
io con un equipo
..a ROM, PROM,
I pierden sus datos
'escritura contiene
ica (SRAM). Una
la RAM dinámica
en una capacitan­
~tica no necesita
o que esté alimen­
e potencia que las
ro/átil (NVRAM).
ROM) de idéntica
'ÍC'e\ersa mediante
:)0 seguridad en la
I ]a alimentación,
M de la RAM no
ncantes de micro­
idad.
~ de programas
mar instrucciones
I!"ngrama monitor
ja y algoritmos
DISPOSITIVOS DIGITALES BAS1COS
59
PROBLEMAS RESUELTOS
3.37
En la práctica, la memoria de lectura/escritura se denomina _ _ (RAM, ROM).
Solución:
En la práctica, la memoria de lectura/escritura se denomina RAM.
3.38. Las letras RAM significan _________ en electrónica digital.
Solución:
Las letras RAM significan memoria de acceso aleatorio. En la práctica las RAM semiconducto­
ras también son memorias de lectura/escritura.
3.39. Las letras PROM significan _ _ _ _ _
, ___ ,
Solución:
Las letras PROM significan memoria programable de sólo lectura.
3.40. La ROM y la _ _ (RAM, PROM) son dispositivos de almacenamiento permanente no
volátiles.
Solución:
La ROM Y la PROM son dispositivos de almacenamiento permanente no volátiles. La ROM es
programada por el fabricante mientras que la PROM es programada por el usuario.
3.41, La RAM es un dispositivo de almacenamiento ___ (no volátil, volátil).
Solución:
La RAM es un dispositivo de almacenamiento volátil.
3.42. Las letras EPROM significan _ _ _ ---i... _ _'_ _ _ _ en electrónica digital.
Solución:
Las letras EPROM significan memoria de sólo lectura programable borrable.
3.43. Las letras EAROM significan _ _ _ _ _ _ _ _ _ _ .
Solución:
Las letras EAROM significan memoria de sólo lectura alterable eléctricamente.
3.44. La EPROM se considera un dispositivo de almacenamiento _ _'_ (temporal, perma­
nente).
Solución:
La EPROM se considera un dispositivo de almacenamiento permanente. Puede ser borrada y
reprogramada pero solamente con equipo especial.
3.45. Las memorias de lectura/escritura muchas veces se denominan RAM estáticas o ___ .
Solución:
Las R WM muchas veces se clasifican como RAM estáticas o dinámicas.
www.FreeLibros.me
'.
60
FUNDAMENTOS DE WS MICROPROCESADORES
3.46. La RAM _ _ (dinámica, estática) utiliza como celdas de memoria circuitos basados en
flip-flops.
Solución:
La RAM estática utiliza como celdas de memoria circuitos basados en flip-flops.
esaittml. 11
la direccióI
las entrada
Ir:ctura. el j
3.47. La RAM ___ (dinámica, estática) necesita que sus posiciones de almacenamiento sean
refrescadas cientos de veces por segundo.
Solución:
La RAM dinámica necesita que sus posiciünes de almacenamiento sean refrescadas cientos de
veces por segundo.
3.48. En una microcomputadora, una PROM puede ser utilizada para que contenga un progra­
ma _ _ (monitor, de usuario temporalmente).
Solución:
En una microoomputadora,una PROM puede utilizarse para que contenga un programa
monitor.
3.49.
',1
i
.
Las letras NVRAM significan _ _ .
Solución:
Las letras NVRAM significan RAM no volátil.
3.50.
Las más modernas NVRAM contienen RAM estáticas y _ _ (DRAM, EEPROM).
Solución:
Las NVRAM contienen SRAM y EEPROM de idéntica capacidad.
3.7. UTlLIZAOON DE LAS RAM Y ROM
La organización de una RAM o ROM puede considerarse similar a la de una tabla de verdad. La
Figura 3.20a muestra una posible organización de las posiciones de memoria. Esta tabla represen­
ta la organización de una RAM de 16 x 4 bits e indica que los datos de la memoria están organi­
zados en 16 grupos de 4 bits denominados palabras en esta tabla. En la Figura 3.20a, la mayoría
de las cajas (celdas de memoria) están vacías excepto la palabra 12 que contiene almacenado el
dato O1Ol. En la práctica, cada celda «vaCÍa» contiene algún patrón de ceros y unos.
Un símbolo lógico para una RAM de 16 x 4 bits se da en la Figura 3.20b. En el diagrama, la
RAM de 64 bits está en el proceso de escribir el dato de entrada 0101 en la posición de memo­
ria 12 10 (1100 2), Las entradas de datos contienen el dato que se va a almacenar (0101 2), La
posición de la palabra 1210 se localiza inicializando las entradas de dirección con 1100 2 (12 10), A
continuación, los dos controles «(3' y WE) colocan a la RAM en el modo de escritura. Observar
que las entradas de habilitación de escritura (WE) y de selección de pastilla «(3') deben estar en
BAJA durante la operación de escritura. El 0101, se coloca entonces en la palabra de posi­
.ción 12 10, como muestra la Figura 3.20a. Algunos nibricantes denominan a la entrada de control
(3' habilitación de memoria.
La tabla de verdad para la RAM de 64 bits está detallada en la Figura 3.20c. Esta RAM está en
el modo de escritura cuando ambos controles (WE y C3') están en BAJA. Durante la operación de
www.FreeLibros.me
'~
,j
DISPOSITIVOS DIGITALES BASICOS
itos basados en
61
escritura, los 4 bits de datos (D 4 , D 3, D 2 , DI) son cargados en la posición de memoria seftalada por
la dirección. Durante la operación de escritura, las salidas (04' 0 3, O2, D,) flotan en ALTA. Con
las entradas de control
= O Y WE = 1, la RAM está en el modo de lectura. Durante el modo de
lectura, el complemento de la palabra del dato señalada por las entradas de dirección aparece en
rs
Iops.
ICenamiento sean
Dirección
i-escadas cientos de
Palabra O
b~ un progra­
Palabra 1
Bit D
Bit
e
Bit B
Bit A
Palabra 2
alga
un programa
Palabra 3
.­
.,
Palabra 4
1
Palabra 5
. Em»ROM).
I
Ibla de verdad. La
sta tabla represen­
IOria están organi­
3.20a. la mayoría
De almacenado el
, unos.
En el diagrama, la
[)Sición de memo­
cenar (0101 2), La
¡)n 1100 (12 ), A
10
2
scrilura. Observar
:5) deben estar en
I palabra de posi­
:nlrada de control
Esta RAM está en
lte la operación de
I
Palabra 6
Palabra 7
Palabra 8
Palabra 9
.
Palabra lO
Palabra 11
Palabra 12
O
I
O
I
Palabra 13
~
Palabra 14
1
Palabra 15
•
(a)
Organización de una RAM de 16 x 4 bits
Figura 3.20.
www.FreeLibros.me
1
'í
,
.~
f
62
FUNDAMENTOS DE LOS MICROPROCESADORES
o
D4
°4
DJ
O]
Entradas de datos
O
D2
DI
Habilitación
de escritura
Selección
O) O
Escritura =
( Lectura I
LaRJ
Salidas
Entradas
te pequei
comprad
En la
Salidas de datos
(invertidos)
16x4bit
RAM
de gran
65.536 x
ten en el
Vn
e
mantenin
das y saJjc
es leida (
selección
Algun
8192x8:
WE
O)
Habilita memoria =
de pastilla
( Inhabilita memoria = 1 O
í
. -.;,,
,
¡
J
capacidad
H
¡
j;
~
.
(b)
Símbolo lógico para una RAM de 16 x 4 bits
3.51. la
ra)
¡.
Sol
_l
j'
ji
ti
JI
Entradas
de control
Modo de
operación
es
WE
Escritura
O
O
Estado lógico I
Lectura
O
I
Complemento del dato
almacenado en
memoria
Manteni­
miento
1
X
Estado lógico I
1¡
t~;1
I
'¡
sdI
Salidas
Q
;~
!
.'"
JIf:
!'¡¡
:;'J
~i
,
,t,
'r'
'l
~.
t"
x ~ irrelevante
(e)
,•
~
í
U
Tabla de verdad para una RAM de 64 bits
U
Figura 3.20 (continuaci6n).
la saJida. Los datos almacenados en la RAM no son destruidos por la operación de lectura. En el
modo de mantenimiento (hold) las salidas van todas al nivel ALTO y no entra ningún dato
procedente de las cuatro entradas D.
www.FreeLibros.me
L
T·
.1
¡
~..
63
DISPOSITIVOS DIGITALES BASICOS
datos
kls)
La RAM de 64 bits de la Figura 3.20 es una pastilla de memoria de capacidad extremadamen­
te pequeña y se cita por su simplicidad. Sin embargo, esta RAM estática de 16 x 4 bits puede ser
comprada todavía como un circuito integrádo TTL (lógica transistor-transistor) (el 7489).
En la pasada década, se realizaron grandes avances para producir memorias semiconductoras
de gran capacidad a bajo costo. Las RAM dinámicas comunes pueden ser de 16.384 x 1;
65.536 x 1; 131.072 xl; 1.048.576 x 1; 16.384 x 4; 65.536 x 4, y 262.144 x 4 bits. También exis­
ten en el mercado módulos de RAM dinámicas incluso con capacidades mayores.
Un CI ROM opera de forma similar a la RAM cuando está en los modos de lectura y
mantenimiento (hold). Una ROM comparable a la de la Figura 3.20 puede tener todas las entra­
das y salidas de la RAM excepto las entradas de datos y de habilitación de escritura. Una palabra
es leída de la ROM direccionando una posición espeCífica y activando después la entrada de
selección de pastilla (C'S) con un nivel BAJO.
Algunas organizaciones típicas y capacidades de CI ROM son: 512 x 4; 2048 x 8; 4096 x 8;
8192 x 8; 16.384 x 8; 65.536 x 8, y 131.072 x 8 bits. Algunos módulos EEPROM tienen incluso
capacidades mayores.
PROBLEMAS RESUELTOS
3.51. La RAM de 64 bits de la Figura 3.21 está en el modo de _ _ (mantenimiento, escritu­
ra) durante el pulso a, y todas las salidas están flotando en _ _ (ALTA, BAJA).
Solución:
Durante el pulso a en la Figura 3.21, ambos controles (eS y WE) están en ALTA. La tabla de
selección de modo de la Figura 3.20c indica que éste es el modo de mantenimiento para la RAM y
las salidas están flotando en ALTA.
Salidas
Entradas
L2....::
,,'; ~ ",
r, ~ ;" ,
1
1
O
O
O
I
.1
~
u.:
1
O
O
O
O
d
e
a
O
O
h
g
f
e
O
O
O
O
O
O
b
O
O
O
O
O
O
O
O
0­
1
O
O
I
O
O
0­
O
O
O
0_
°2
°1
16 x 4 bits _
RAM
O
O
D4
u...::
O
O
.
O
-
Al Ao
!
.,
.~,
8
4
2
Dirección
de lectura. En el
Itra ningún dato
Figura 3.21.
Problema de la RAM estática.
www.FreeLibros.me
..-.~
64
AJNDAMENTOS DE LOS MICROPROCESADORES
s
3.52. La RAM de la Figura 3.21 está en el modo de _ _ (lectura, escritura) durante los pulsos
b, e, dy e.
•a
Solución:
Durante los pulsos b, e, d y e en la Figura 3.21, ambos controles (CS y WE) están en BAJA. La
tabla de selección de modo de la Figura 3.20c indica que éste es el modo de escritura para la RAM.
Los datos de las entradas D se copian en la posición de memoria direccionada por las entradas A
durante estos cuatro pulsos.
e;
;;~
~.~
3.53. La RAM de la Figura 3.21 está en el modo de _
f, g. he i.
:-~
(lectura, escritura) durante los pulsos
,,1
3.57. Sil
Solución:
Durante los pulsos f, g. h e í en la Figura 3.21, CS ~ O Y WE - 1. La tabla de selección de modo
de la Figura 3.20c indica que éste es el modo de lectura para la RAM. Los datos almacenados en la
posición de memoria sefialada por las entradas de dirección aparecerán en las salidas en forma
invertida. La operación de lectura no destruye los contenidos de la RAM.
3.54. Acudir a la Figura 3.21. Listar la dirección y los datos almacenados el} la RAM durante la
operación de escritura en los pulsos b. e, d y e.
h.
1.!1.
u.
1ab
~
l.!I9. Aa
Solución:
01
Las posiciones de almacenamiento (direcciones) y los datos almacenados durante cada operación
de escritura son los siguientes:
pulso b .. dirección = 0000; dato almacenado - 1111
pulso e = dirección = 0001; dato almacenado - litO
pulso d .. dirección - 00 10; dato almacenado .. 1101
pulso e .. dirección - 00 11; dato almacenado - 1100
hJ
3.55. Acudir a la Figura 3.21. Listar la dirección y los datos que aparecen en las salidas de la
RAM durante la operación de lectura en los pulsos f, g. h e i.
Solución:
La posición de almacenamiento (dirección) y los datos de salida durante cada operación de
lectura son:
pulso f .. dirección" 0000
dato almacenado .. 1111
dato de salida (invertido) .. 0000
pulso g .. dirección .. 000 I
dato almacenado .. 1110
dato de salida (invertido) .. 0001
pulso h = dirección = 00 10
dato almacenado = 110 1
dato de salida (invertido) .. oo'to
pulso i - dirección = 1111
dato almacenado - no había dato almacenado en esta dirección
dato de salida .. desconocido (la salida será impredictible)
3.56. Si la RAM de la Figura 3.21 fuese una ROM, ¿qué entrada(s) se omitiría(n) del diagrama
lógico?
www.FreeLibros.me
..
3.68. Aa
NA
3.61. Aa
XCJ
Re
3.62.
3.63.
LOI
RIJ
DISPOSITIVOS DIGITALES BASICOS
Die los pulsos
,
IStán en BAJA. La
tura para la RAM.
por las entradas A
Solución:
La RAM de la Figura 3.21 puede convertirse en un símbolo lógico de ROM, omitiendo las
entradas de datos y de habilitación de escritura. Una ROM la programa permanentemente el fabri·
cante y no tiene modo de escritura.
IDrante los pulsos
PROBLEMAS SUPLEMENTARIOS
3.57. Si los flip.flops están interconectados para formar circuitos lógicos secuenciales, entonces las~
t
lit'lección de modo
almacenados en la
i salidas en forma
~
RAM durante la
l...: ope,,~o.
I
las salidas de la
_ _ son utilizadas para formar circuitos lógicos combinacionales.
Res. puertas lógicas.
3.58. Una función lógica puede ser descrita de cuatro formas: por su nombre, su símbolo lógico gráfico, su
tabla de verdad o su expresión _ _ .
Res. booleana.
3.59. Acudir a la Figura 3.22. Describir el tren de pulsos en la salida Y si este circuito lógico es una puerta
OR de 2 entradas.
Res. pulso a - O, pulso b - 1, pulso e - 1, pulso d == l.
Salida
Entradas
ll..!.JIl....2.
~
e
a
d
Ida operación de
D)
65
b
O
0­
Figura 3.22.
A
Circuito
B
lógico
y
?
Problema del tren de pulsos.''''''
3.60. Acudir a la Figura 3.22. Describir el tren de pulsos en la salida Y si este circuito lógico es una puerta
NANO de 2 entradas.
Res. pulso a." 1, pulso b - 1, pulso e - 1, pulso d - O.
3.61. Acudir a la Figura 3.22. Describir el tren de pulsos en la salida Y, si este circuito lógico es una puerta
XOR de 2 entradas.
Res. pulso a == O, pulSO b == 1, pulso e == 1, pulso d == O.
3.62. Los microprocesadores ¿qué cuatro instrucciones lógicas tienen en su conjunto de instrucciones?
Res. NOT (complementación o negación), ANO. OR Y XOR.
del diagrama
3.63. Escribir la expresión booleana para la tabla de verdad de la Figura 3.23.
Res. c· B . A + e . B ' A - Y.
www.FreeLibros.me
,~i
,
J
66
FUNDAMENTOS DE LOS MICROPROCESAOORES
Entradas
Salida
e
B
A
Y
o
o
o
o
o
o
o
o
o
1
I
I
1
1
1
o
l~~¡
1
o
o
o
1
l
~~
. ':'1
l
o
o
o
o
o
1
l
1
1
1
.­
3M. LisI:I
uno
Res.
Figura 3.23.
3.64. Dibujar el diagrama lógico de un circuito que genere la tabla de verdad de la Figura 3.23.
Res, Ver Figura 3.24.
3.70. Losl
...
Res.
3.71. UD1
.......
Res.
Salida
~",
3.72. Ac:ucI
estar
Entradas
Res.
A~~~~------r-~
B
~----~
3.73. Las I
c----~------~~
Figura 3.24.
Res.
Solución del diagrama lógico ANO-OR.
3.74.
3.65. Poner en set un flip-flop significa cargar un I en la salida normal
0 __
(Q,
ea.
salid.1
Res.
Q).
Res. Q.
3.75.
Cuu
pena
alta_
3.66. Poner en reinicialización un flip-flop significa cargar un O en la salida _ _ (Q, Q).
Res. Q,
Res.
3.67. Cuando a un flip-flop se denomina cerrojo, se utiliza como dispositivo de _ _ (conteo, me­
moria).
Res. memoria.
'.
3.68.
~n-j ~
Listar el modo de operación del flip-flop JK durante cada uno de los pulsos de reloj de la Figu­
ra 3.25.
Res. pulso a - reset
pulso c - conmuta
pulso e - conmuta
pulso f = mantenimiento
pulso b conmuta
pulso d = set
www.FreeLibros.me
3.76.
Listal
cornil
Res.
3.77. Una
perm
Res.
j
67
DISPOSITIVOS DIGITALES BASICOS
f." .
o
O
O
O
Figura 3.29.
Salidas
Entradas
.').t
-
--
J
Q
?
Q
?
_\O.
FF
CK
K
Problema del f1ip-f1op JK.
3.69. Listar las salidas binarias en la salida normal (Q) del flip-flop JK de la Figura 3.25 después de cada
uno de los pulsos de reloj.
Res. pulso a - O
pulso c - O
pulso e == O
pulso b == 1
pulso d .. 1
pulso f O
~.
13 3.23.
,
.j
3.70. Los traductores de código electrónico normalmente se denominan _ _ o _ _ .
Res. codificadores, decodificadores.
3.71. Un visualizador LED de siete segmentos puede ser excitado por un dispositivo llamado _ _
a-siete-segmentos.
Res. decodificador BCD.
• .4- Y
3.73. Las letras TTL significan _ _ _ _ - _ _ en electrónica digital.
Res. lógica transistor-transistor.
.'j
:.j
3.74. Cuando los dispositivos TTL o CMOS se conectan a las líneas del bus de la microcomputadora, las
salidas deben ser del tipo de _ _ _ _ .
Res. tres estados.
'lA
t conteo. me­
reloj de la Figu­
~
3.72. Acudir a la Figura 3.15c. Para que luzca el segmento d del LEO. la entrada d del visualizador debe
estar excitada en _ _ (ALTA, BAJA) por el decodificador.
Res. BAJA.
'''iI
j
3.75. Cuando la salida de un dispositivo TTL de tres estados no está ni en O lógico ni en 1 lógico, pero se le
permite que flote al nivel de tensión de la línea del bus, se dice que está en el estado de
alta _ _ .
Res. impedancia (Z).
­
1
1
3.76. Listar los dos tipos de memorias semiconductoras normalmente utilizados en los sistemas micro­
computadores.
Res. RAM y ROM.
3.77. Una ROM y una
permanentes.
Res, PROM.
(PROM, RAM) son muy similares, ya que ambas son tipos de memoria
www.FreeLibros.me
,
~
~'1
t
68
RlNDAMENTOS DE LOS MICROPROCESADORES
3.78. Colocar datos en memoria se conoce como operación de _ _ (lectura, escritura).
Res. escritura.
3.79. Copiar datos de memoria se conoce como operación de _ _ (lectura, escritura).
Res. lectura.
'1
.
:
3.80. En la práctica, las letras usadas para denominar una memoria semiconductora de lectura/escritura
son _ _ (EPROM, RAM).
Res. RAM.
3.81. ¿Qué dos tipos básicos de CI RAM pueden adquirirse?
Res. estáticos y dinámicos.
3.82.
Los programas de usuario pueden almacenarse temporalmente en la _ _ (EPROM, RAM) de una
microcomputadora.
Res. RAM.
3.83. ¿Cuál es la longitud de cada palabra de una RAM de 256 x 4 bits?
Res. 4 bits.
4.1. lN1
Más de
I.AIq
2. RqJ
3. MíIl
4. Señ:
3.84. ¿Cuántas palabras de datos puede contener una ROM de 32 x 8 bits?
Res. 32.
.3.85. ¿Cuál es la capacidad total en bits de una EAROM de 512 x 8 bits?
Res. 4096 bits.
'Ve
Muchas m.
sistemas m
tadora gene
de las ca.r3(
Ante U[
5.
FUD
La arqu
bits de los t
Elreper1
sador, dond
de comprol
utilizan di,!
El esquc
dispositivos.
puenos de f
funciones SI:
procesadora
Las seña
ejemplo RII
lecturas y e!I
Un esru.
especiales d.
E/S de dato
4.2.
A~
La arquited
operaciones
www.FreeLibros.me
Capítulo 4
FUNDAMENTOS
DE LAS MICROCOMPUTADORAS
lectura/escritura
M, RAM) de una
r
4.1. INTRODUCaON
Más de veinte compañías fabrican gran variedad de microprocesadores de propósito general.
Muchas más compañías ensamblan microprocesadores, memorias y otros componentes de los
sistemas microcomputadores. Debido a esta gran variedad, se ha seleccionado una microcompu­
tadora genérica para estudiarla en este capítulo. Esta microcomputadora universal tiene muchas
de las características de las mícrocomputadoras comunes.
Ante un nuevo microprocesador, el programador debe estudiar lo siguiente:
l.
2.
3.
4.
5.
Arquitectura del microprocesador.
Repertorio de instrucciones.
Mínimo sistema que utiliza el microprocesador.
Señales de control.
Funciones de las patillas.
La arquitectura está relacionada con la organización de los registros de la CPU, número de
bits de los buses de direcciones y datos, etc.
El repertorio de instrucciones es el conjunto de operaciones que puede realizar el microproce­
sador, donde se incluyen transferencia de datos, operaciones aritméticas y lógicas, instrucciones
de comprobación de datos y bifurcación y operaciones de entrada/salida. Estas instrucciones
utilizan diversos modos de direccionamiento.
El esquema de un sistema mínimo mostrará cómo se conectan al microprocesador otros
dispositivos. Un sistema mínimo puede estar formado por microprocesador, reloj, RAM, ROM,
puertos de entrada/salida, decodificador de direcciones y fuente de alimentación. A veces estas
funciones son realizadas por el o componentes separados; sin embargo, algunas unidades micro­
procesadoras pueden realizar la mayoría de estas funciones.
Las señales de control incluyen las salidas que controlan la operación de otros el (como por
ejemplo RAM, ROM Y puertos de E/S). Algunas señales de control típicas pueden controlar
lecturas y escrituras en memoria o lecturas y escrituras de entrada y salida.
Un estudio de la función de cada patilla del el dará más detalles sobre las entradas y salidas
especiales del microprocesador. Otras patillas pueden ser las de la fuente de alimentación, reloj,
~ 'S de datos serie, entradas de interrupción y control del bus.
4.2. ARQUITEcrtJRA SIMPLIFICADA DE UNA MICROCOMPUfADORA
La arquitectura de una microcomputadora se muestra en la Figura 4.1. En el centro de todas las
operaciones está la MPU (unidad microprocesadora). La MPU necesita conexiones con la fuente
69
www.FreeLibros.me
)
70
FUNDAMENTOS DE LOS MICROPROCESADORES
() (1 ()
Teclado
(¡ ()
.'"­
.:
¡
-
.~
1
-
~J
,
--tIo>
(
..
\
..:'",
Interfaz
del teclado
---....
1
Línea de
interrupciones
:1
I
¡.
¡
Decodificador
~ (t
~~_.~
...........
MPU
~
~
Fuente de
alimentación
RAM.
~
+
Bus de direcciones _
(16 líneas)
r
Reloj
1
~
r
1 - Bus de control
Bus de datos
(8 líneas)
~
--tIo>
,.)
ROM
---fIo>
~
1"
~
)
--+
l
alimentación
""'Í-­
<1
"
I
~j.
1 r - , r--, Visua­
1---4 1---1
Iizador
L ...i L_.J
I
I
I
Figura 4.1.
•
t
CDtonces, aHIIiI
CIl
.
Interfaz del
visualizador
I
r-' r-"
J
II
I
I---/I--'¡
,
,1
I
L • .JI..._..J
r
Arquitectura de una microcomputadora.
www.FreeLibros.me
J
El sistema 11
Las conexiones
especial denoml
entradas del te(
linea de imemil
la instrucción a
UlStrucciones di
circuito de intel
para activar la l.
::-us de datos. u
de tres estados 1
La miCl'OCOl
~entos. El v
especial de inJt'I
~ de la Figura
.le habilitación.
la interfaz di
Las 16 linea
_nos. Las líoe
:-:nplo. R -\\1.
~
---to--¡\
.\
+-- Líneas de
~
y
Líneas
de selección
de pastilla
r-­
RAM
de alimentaciót
microprocesad(
direcciones de I
conectan al bU!.
La arquitec1
nas semicondu
grama monitor
de pastilla y <14
estados, conect
tiende que la R
se omitan en le
La arquitec1
miento tempor.
de selección de
de tres estados .
palabras de 8 t
Jtrrod~flcado
: decodificad!
-_~ti\O corn
'I:J:!C al decodific
FUNDAMENTOS DE LAS MICROCOMPUTAOORAS
io---<4­
Fuente de
alimentación
_
Bus de datos
(8 líneas)
- - Líneas de
alimentación
71
de alimentación y el reloj. El reloj puede ser un circuito separado o puede residir en la pastilla del
microprocesador. Una sencilla MPU puede tener 16 líneas de dirección que forman el bus de
direcciones de un sentido. La MPU también tiene las 8 líneas típicas de datos, con buffers que se
conectan al bus de datos de dos sentidos.
La arquitectura de la microcomputadora mostrada en la Figura 4.1 tiene dos tipos de memo­
rias semiconductoras. La ROM es la memoria permanente, que probablemente contiene el pro­
grama monitor del sistema. La ROM tiene las entradas de dirección junto a las líneas de selección
de pastilla y de habilitación de lectura. También tiene la ROM 8 salidas, con buffers de tres
estados, conectadas al bus de datos. Cada palabra de memoria tiene por tanto 8 bits. Se sobreen­
tiende que la ROM tiene también conexiones a la fuente de alimentación aunque muchas veces
se omitan en los diagramas de bloques.
La arquitectura de la Figura 4.1 muestra también una RAM como dispositivo de almacena­
miento temporal de lectura/escritura. La RAM tiene las entradas de dirección junto a las entradas
de selección de pastilla y de habilitación de lectura/escritura. La RAM tiene 8 salidas, con buffers
de tres estados, conectadas al bus de datos. Esta RAM introduce, saca y almacena los datos corno
palabras de 8 bits. También se muestran las conexiones de la fuente de alimentación de la
RAM.
El sistema microcomputador de la Figura 4.1 tiene un teclado corno dispositivo de entrada.
Las conexiones de alimentación al teclado se muestran junto con las líneas de datos en un CI
especial denominado interfaz de teclado. El circuito de interfaz almacena los datos y coordina las
entradas del teclado. En el instante adecuado, la interfaz de teclado interrumpe la MPU vía la
línea de interrupción especiaL Esta senal de interrupción hace que la MPU ( 1) termine de ejecutar
la instrucción actual, (2) suspenda la operación normal y (3) bifurque a un grupo especial de
instrucciones del programa monitor que manipulan la entrada de datos desde el teclado. El
circuito de interfaz del teclado tiene entradas de dirección, de selección de pastilla y de control
para activar la unidad. Una vez activada, la interfaz de teclado pondrá los datos del teclado en el
bus de datos. La MPU acepta los nuevos datos de entrada, vía el bus de datos. Cuando las salidas
de tres estados no están activadas, vuelven a su estado de alta impedancia.
La microcomputadora de la Figura 4.1 utiliza corno salida un grupo de visualizadores de siete
segmentos. El visualizador está conectado a la fuente de alimentación de la derecha. Un circuito
especial de interfaz de visualizador o CI se utiliza para almacenar datos y excitar los visualizado­
res de la Figura 4.1. Cuando son activados por las entradas de dirección, de selección de pastilla y
de habilitación, la interfaz acepta los datos del bus de datos y los almacena. La interfaz excita
entonces, continuamente. los visualizadores, mostrando de forma visual los datos almacenados
en la interfaz del visualizador.
Las 16 líneas del bus de direcciones pueden contener 65.536 (2 16) diferentes patrones de ceros
y unos. Las líneas del bus de direcciones pueden estar conectadas a varios dispositivos corno, por
ejemplo, RAM, ROM e interfaces. Para conectar o habilitar solamente el dispositivo ordenado,
un decod(ficador de direcciones muestrea datos en el bus de direcciones. La lógica combinacional
del decodificador de direcciones activa la línea adecuada de selección de pastilla, habilitando el
dispositivo correcto. Para simplificar la circuitería, no todas las 16 líneas del bus de direcciones
van al decodificador de direcciones, memorias o interfaces.
www.FreeLibros.me
~
72
FUNDAMENTOS DE LOS MICROPROCESADORES
PROBLEMAS RESUELTOS
1;
4.1.
-1
4.8.
Soluciól
Segú
tes del b
nientes j
Acudir a la Figura 4.1. La _ _ (MPU, RAM, ROM) sirve como centro de todas las
operaciones y control de la microcomputadora.
Solución:
La MPU sirve como centro de todas las operaciones y control de la microcomputadora. Sin
embargo, las instrucciones de la ROM y/o RAM guían las acciones del microprocesador.
Acudir
4.9.
Acudir:
Soludáll:
4.2.
Solución:
El bus de direcciones es una ruta de datos de un sentido, desde la MPU a todos los dispositivos.
M~
~~I¡
Acudir a la Figura 4. l. El bus de _ _ (direcciones, datos) es una ruta de datos de un
sentido.
4.3.
Con 16 líneas, el bus de direcciones de la Figura 4.1 puede acceder hasta _ _ (16.384,
65.536) posiciones separadas de memoria y/o de entrada/salida.
Solución:
El bus de direcciones de 16 líneas de la Figura 4.1 puede acceder hasta 65.536 (2 16 ) posiciones de
memoria.
4.4.
Acudir a la Figura 4.1. Citar como mínimo tres tipos de salida de la unidad microprocesa­
dora.
Solución:
Según la Figura4.1, la MPU tiene salidas de bus de direcciones (l6Iíneas), del bus de datos
(8 líneas) y del bus de control.
4.5.
Acudir a la Figura 4.1. Citar como mínimo cuatro tipos de entradas a la unidad micropro­
cesadora.
Solución:
Según la Figura 4.1, la MPU tiene entradas de la fuente de alimentación, de reloj, de interrup­
ción y del bus de datos (8 lineas).
4.6.
Acudir a la Figura 4.1. Citar como mínimo cuatro tipos de entradas a la ROM.
Solución:
Según la Figura 4.1, la ROM tiene entradas de la fuente de alimentación, entradas de dirección
provenientes del bus de direcciones, una entrada de selección de pastilla y una entrada de habilita­
ción de lectura del bus de control.
~
4.7.
Acudir a la Figura 4.1. Citar la(s) salida(s) de la ROM.
Solución:
Según la Figura 4.1, la ROM tiene salidas del bus de datos de tres estados (8 lineas).
www.FreeLibros.me
Segút
4.10. Acudir;
interfaz
SoIIlCÍ6E
Según
ción. de 4
control d.
4.11. Acudir a
teclado.
Solucióa.:
Según
del bus de
4.12. ¿Cuál es!
Figura 4.1
Solucióa.:
El CÍl"C1I
para envial
4.13. ¿Qué hac
circuito d
SoluciÓD:
Cuand(
(a) ComJ:
(b) Suspe
(e) Bifurc
teclad
4.14. Acudir a J
interfaz d,
SolucWII:
Según 11
tación, de 4
entrada de
I
FUNDAMENTOS DE LAS MICROCOMPUTADORAS
".8.
Acudir a la Figura 4.1. Citar como mínimo cuatro tipos de entradas a la RAM.
Solución:
Según la Figura 4.1, la RAM tiene entradas de la fuente de alimentación, de dirección provenien­
tes del bus de direcciones, una entrada de selección de pastilla y entradas de lectura/escritura prove­
nientes del bus de control y entradas del bus de datos (8 líneas).
otro de todas las
ocomputadora. Sin
rocesador.
73
".9.
Acudir a la Figura 4.1. Citar la(s) salida(s) de la RAM.
Solución:
Según la Figura 4. t la RAM tiene salidas del bus de datos de tres estados (8 líneas).
ta de datos de un
·4.10. Acudir a la Figura 4.1. Citar como mínimo cinco tipos de entrada al circuito especial de
interfaz del teclado.
. a todos los dispo-
Solución:
Según la Figura 4.1, el circuito de interfaz del teclado tiene entradas desde la fuente de alimenta­
ción, de dirección desde el bus de direcciones, una entrada de selección de pastilla y entradas de
control desde el bus de control y de datos desde el teclado.
~
ta _ _ (16.384,
(1") posiciones de
Acudir a la Figura 4.1. Citar como mínimo dos tipos de salida del circuito de interfaz del
teclado.
Iad microprocesa­
Solución:
Según la Figura 4.1, el circuito de interfaz del teclado tiene una salida de interrupción y salidas
del bus de datos de tres estados (8 líneas).
t
~1), del bus de datos
".11.
".12.
¿Cuál es el propósito de la salida de interrupción del circuito de interfaz de teclado de la
Figura 4.1?
Solución:
El circuito de interfaz de teclado de la Figura 4.1 activa la línea de interrupción cuando está lista
para enviar datos de entrada desde teclado a la MPU.
~
unidad micropro­
".13. ¿Qué hace la MPU cuando la línea de interrupción de la Figura 4.1 es activada por el
circuito de interfaz de teclado?
Ir reloj, de interrup-
Solución:
Cuando la línea de interrupción de la Figura 4.1 es activada, la MPU hace lo siguiente:
(a) Completa la instrucción que está ejecutando actualmente.
(b) Suspende la operación normal.
(e) Bifurca a un grupo especial de instrucciones que manipulan la entrada de datos desde el
teclado.
lla ROM.
bdas de dirección
mtrada de habilita-
I
I
8 lineas).
4.14.
Acudir a la Figura 4.1. Citar como mínimo cinco tipos de entradas al circuito especial de
interfaz del visualizador.
Solución:
Según la Figura 4.1, el circuito de interfaz del visualizador tiene entradas de la fuente de alimen­
tación, de dirección desde el bus de direcciones, de datos desde el bus de datos de 8 líneas, una
entrada de selección de pastilla y entradas de control desde el bus de control.
www.FreeLibros.me
I
I
,
74
FUNDAMENTOS DE LOS MICROPROCESADORES
4.15. Acudir a la Figura 4.1. Citar las salidas del circuito especial de interfaz del visualizador.
Solución:
Según la Figura 4.1. el circuito de interfaz del visualizador tiene salidas de datos para excitar los
visualizadores de siete segmentos.
4.16. ¿Cuál es el propósito del decodificador de direcciones de la Figura 4.1?
Solución:
El decodificador de direcciones de la Figura 4.1 selecciona y ayuda a habilitar un solo dispositivo
corno, por ejemplo, la interfaz de teclado, R.OM, RAM o la interfaz del vísualízador.
Representación
hex
o
O O O H
O O O
H
•
4.3. ORGANIZACION SIMPLIFICADA DE LA MEMORIA
Escribir en o leer en una posición de memoria se denomina acceder a la memoria. Generalmente,
el acceso a los datos de una memoria puede realizarse de forma secuencial o aleatoria. Los datos
en la memoria de acceso secuencial se localizan buscándolos en forma serie a través de todas las
posiciones de memoria. Por ejemplo, cuando los datos se almacenan en cinta magnética, hay que
recorrer la cinta desde el principio al final hasta encontrar el dato apropiado.
En una memoria de acceso aleatorio, cualquier posición de memoria puede ser escrita o leída
en un tiempo determinado (llamado tiempo de acceso). Los dispositivos semiconductores de
almacenamiento, RAM y ROM, utilizados en las microcomputadoras son del tipo más rápido de
acceso aleatorio.
La microcomputadora genérica que se ha estudiado tiene 16 líneas en el bus de direcciones.
Esto es común en muchas pequefias microcomputadoras utilizadas para entrenamiento. Las
16 líneas de dirección pueden generar un total de 65.536 (2 16) combinaciones diferentes de ceros y
unos. Algunas combinaciones binarias se muestran bajo el bus de direcciones de la Figura 4.2. Es
costumbre representar la dirección binaria en forma hexadecimal; como muestra la Figura 4.2, la
dirección 0000 0000 0000 0000:; es igual a OOOOH (0000 16), Observar el uso de la H para designar
la representación hexadecimal. La dirección más alta generada por el bus de 16 líneas de la
Figura 4.2 es III1 1111 III1 1111 2 que se representa por FFFFH (FFFF I6 ).
El diagrama de la Figura 4.3 representa el mapa de memoria de la microcomputadora. El bus
de direcciones de 16 bits del microprocesador puede generar 65.536 (10000 16 ) direcciones únicas,
algunas de las cuales aparecen en notación hexadecimal en la columna izquierda de la Figura 4.3.
En esta microcomputadora particular, las 256 primeras posiciones (100 16 ) se encuentran en la
ROM. La ROM es, probablemente, de 256 x 8 bits (256 palabras, de 8 bits cada una). Si el bus de
direcciones accede a la dirección OOOOH, la ROM presentará en la salida su patrón de ceros y
unos programado permanentemente (la palabra 11000011).
Es conveniente para los principiantes pensar que los 256 primeros bytes o palabras (100 16) de
datos en la ROM de la Figura 4.3 están en la página ooH. Observar que el número de página es
igual a la representación hexadecimal del byte de orden superior de la dirección (ver Fig. 4.2). Así
cuando se trata de la página OOH, solamente es necesario considerar los dos dígitos hexadecimales
de orden inferior. Algunos microprocesadores utilizan instrucciones simplificadas para acceder a
las posiciones de memoria en la primera página (por ejemplo, el 6502, el 65816).
El mapa simplificado de memoria de la Figura 4.3 muestra que desde la página OlH hasta la
IFH (direcciones OIOOH· IFFFH) no hay memoria en esta microcomputadora. El acceso a esta
www.FreeLibros.me
~
•
•
r "-;:
A
F F F E H
F F F F H
área abierta prod
ningún dato. La :
página 20H. de <lo(
almacenamiento
colocado la RA..\t
y FFH, en esta mi
de almacenamien
Si un micropr
ocho celdas de mI
bus de datos. Des
mente escritos set
Físicamente la
están organizadas.
to más oscura de I
RAM de la pági:
uúlizan dos RAÑ
página 20H de eS1
En la Figura 4.
de la Figura 4.4.a
dos CI para forma
RAM de 256 x 4 I
Figura 4.4c tamt:
256 x 8 bits.
FUNDAMENTOS DE LAS MICROCOMPUTAOORAS
75
del visualizador.
latos para excitar los
I.f
un solo dispositivo
izador.
ria. Generalmente,
leatoria. Los datos
través de todas las
nagnética, hay que
~ ser escrita o leída
miconductores de
tipo más rápido de
de direcciones.
Iltrenamiento. Las
iferentes de ceros y
k la Figura 4.2. Es
ra la Figura 4.2, la
la H para designar
de 16 líneas de la
llIUS
Ilputadora. El bus
lirecciones únicas,
la. de la Figura 4.3.
encuentran en la
I una). Si el bus de
patrón de ceros y
Jalabras (100 16 ) de
mero de página es
I (ver Fig. 4.2). Así
tos hexadecimales
ias para acceder a
16).
@ina 01 H hasta la
L El acceso a esta
I
área abierta producirá resultados impredecibles ya que no está almacenado ningún programa ni
ningún dato. La memoria de lectura/escritura de la microcomputadora (RAM) se localiza en la
página 20H, de acuerdo con el mapa de memoria de la Figura 4.3. La RAM es un dispositivo de
aJmacenamiento de 256 x 8 bits. Los diseñadores del sistema microcomputador podían haber
colocado la RAM en cualquier otra página. El acceso al área comprendida entre las páginas 21 H
YFFH, en esta microcomputadora, producirá resultados impredecibles porque ningún dispositivo
de almacenamiento está ubicado en esta área abierta.
Si un microprocesador fuese a escribir en la posición de memoria 2000H de la Figura 4.3, las
ocho celdas de memoria (bits) de la parte superior de la RAM se rellenarían con ceros y unos del
bus de datos. Después, si el microprocesador fuese a leer en la dirección 2000H, los datos previa­
mente escritos serían leídos de la RAM.
Físicamente la ROM de la Figura 4.3, probablemente, es un solo el. Sin embargo, las RAM
están organizadas, con frecuencia, de forma diferente. En la Figura 4.3, el área de almacenamien­
to más oscura de la RAM está dividida en dos mitades. Esto sugiere que el área de memoria de la
RAM de la página 20H está formada por dos el físicamente separados. En este ejemplo se
utilizan dos RAM de 256 x 4 bits para formar el área de almacenamiento de 256 x 8 bits en la
página 20H de esta microcomputadora.
En la Figura 4.4 se muestran tres organizaciones físicas de el de RAM semiconductoras. El el
de la Figura 4.4a está organizado como una RAM de 256 x 8 bits. En la Figura 4.4b se utilizan
dos el para formar el mismo dispositivo de almacenamiento de 256 x 8 bits. Aquí se utilizan dos
RAM de 256 x 4 bits para construir la palabra de 8 bits necesaria. Las ocho RAM mostradas en la
Figura 4.4c también forman un dispositivo de almacenamiento de lectura/escritura de
256 x 8 bits.
www.FreeLibros.me
7.6
FUNDAMENTOS DE LOS MICROPROCESADORES
BiI
Bit
Bit S ..
.
BIt 6
7
256 bytes de ROM
Direcciones abiertas
(no memoria)
256 bytes de RAM
Direcciones abiertas
(no memoria)
Figura 4.3.
Diagrama simplificado de memoria mostrando las posiciones de la ROM y la RAM.
La organización de CI mostrada en la Figura 4.4c se utiliza normalmente para construir
grandes memorias de lectura/escritura. En general se utilizan CI de RAM de 1024 xl;
16.384 xl; 65.536 x 1, y 1.048.576 x 1. Utilizando la técnica mostrada en la Figura4.4c, son
necesarias ocho RAM de 4096 x 1 bit son necesarias para formar una memoria de lectural
www.FreeLibros.me
""4.4. 1
FUNDAMENTOS DE LAS MICROCOMPUT ADORAS
77
.. Bit
Bit O
Bit 1
Bit 2
Palabra de S-bits
Palabra de 8-bits
Bit 3
Bit 4
Bit 5
I
Bit 6
7
. ROM
Bit
Bit 4
Bit 5
Bit 6
7
256 x4
RAM 256 x 8
bertas
na)
256 x 4
(b)
Bit
M
O
/"
Palabra de S-bits
ria)
f
ICO
Ocho RAM de 256 x 1 bit
M V la RAM.
(e)
le para construir
LM de 1024 x 1;
son
Doria de lectura/
1 Figura 4.4c,
Figura 4.4.
Tres métodos de formar una memoria de lectura/escritura de 256 x 8 bits utilizando
RAM semiconductoras.
www.FreeLibros.me
78
FUNDAMENTOS DE LOS MICROPROCESADORES
escritura de 4096 x 8 bits. Observar que en dicha configuración, las ocho RAM están activadas
por la misma línea de selección de pastilla procedente del decodificador de direcciones.
En un sistema microcomputador, la memoria se divide en bloques de IK. Una capacidad de
IK no significa exactamente 1000, sino 28 o 1024 bytes de memoria (1024 x 1). Por tanto, 4K de
memoria significan 4096 bytes (1024 x 4 = 4096). Si una microcomputadora comercial tiene
256K de memoria, realmente tendrá 262.144 (1024 x 256 262.144) posiciones de memoria de
8 bits cada una. La capacidad de memoria de las microcomputadoras comerciales actuales varía
desde unos 64K a más de 1 millón (1 M) de bytes. Una capacidad de memoria de I M realmente
significa 1.048.576 (1024 x 1024 = 1.048.576) bytes de memoria.
,
~ ~:
.. '.I
­
PROBLEMAS RESUELTOS
4.17. Escribir o leer en una posición de memoria de una microcomputadora se denomi­
na ___ (acceder a, encontrar la) memoria.
Solución:
Escribir o leer en una posición de memoria se denomina acceder a la memoria.
4.18. Las RAM y ROM utilizadas en las microcomputadoras son ejemplos de memorias de
acceso _ _ (aleatorio, secuencial).
Solución:
Las RAM y ROM son ejemplos de memorias de acceso aleatorio.
4.19. Acudir a la Figura 4.2. Si la dirección en el bus de direcciones fuese 0010 0000 0000 0000,
¿a qué posición de memoria (número hexadecimal) accedería el microprocesador?
Solución:
El binario 00 10 0000 0000 0000 es igual a 20ooH. Se accedería a la posición de memoria 2000H
si la salida del bus de direcciones fuese 00 I O 0000 0000 0000 de la Figura 4.2.
4.20. Acudir a la Figura 4.3. Si la microcomputadora direcciona la posición de memoria
OOOIH, la_(RAM, ROM) sacará _ _ _ _ _ _ _ _ (8bits).
Solución:
De acuerdo' con el mapa de memoria de la Figura 4.3, la posición 0001 H de la ROM producirá la
salida del dato almacenado permanentemente 0000000 l.
4.21. Acudir a la Figura 4.3. Si la microcomputadora accede a la posición de memoria 200IH y
si el dispositivo de almacenamiento está en el modo de escritura, un
(byte, nibble)
de datos del bus de datos se colocará en la _ _ (RAM, ROM).
Solución:
De acuerdo con la Figura 4.3, la posición de memoria 200 I H está en una RAM cuyas palabras
son de 8 bits (bytes).
4.22. Acudir a la Figura 4.3. ¿Qué salida aparecerá en el bus de datos si el microprocesador lee
la posición de memoria FFFFH?
www.FreeLibros.me
SoluciÓll
Dea
la direcc
4.23.
Lá_
SoluciÓII
En 1,
memoru
4.24. ¿En qw
Solución
laR
orden su
4.25. OchoC
ra 4.4c I
memori
SoluciÓD.
laR
16.384 b
4.26. Acudir,
de direc
Soluc::iáll:
UD b
OOOOH a
8 bits: sir
4.27. Si una
drá_
SoluciÓII:
L'na
bytes de
I
4.4. REPER
El grupo de ÍD
repertorio de ;,
variar desde ex
estandarizados.
de los microprc
Las instrucc
organizarán en
4
FUNDAMENTOS DE LAS MICROCOMPUTADORAS
[ están activadas
:ciones.
na capacidad de
~or tanto, 4K de
comercial tiene
•de memoria de
es actuales varía
le I M realmente
79
/
Solución:
De acuerdo con el mapa de memoria de la Figura 4.3, ningún dispositivo de memoria reside en
la dirección FFFFH, y por tanto la salida será impredecible.
4.23. La _ _ (RAM, ROM) se ha implementado utilizando solamente un CI.
Solución:
En la Figura 4.3 la ROM se ha implementado utilizando solamente un Cl. En este ejemplo la
memoria de lectura/escritura se implementó utilizando dos CI RAM de 256 x 4 bits.
4.24. ¿En qué página reside la RAM de la Figura 4.3?
Solución:
La RAM de la Figura 4.3 reside en la página 20H de memoria. Los dos dígitos hexadecimales de
orden superior se consideran el número de página en este sistema.
ora se denomi­
l
de memorias de
Solución:
La RAM de 16.384 x 8 bits se referencia como una memoria de 16K. La memoria de 16K tiene
16.384 bytes o palabras de memoria.
4.26. Acudir a la Figura 4.3. ¿Cuál es la memoria máxima que puede ser accedida por 16 líneas
de dirección?
J
)()()() 0000 0000,
ocesador?
•
4.25. Ocho CI RAM de 16.384 x 1 bits pueden organizarse de forma similar a los de la Figu­
ra 4.4c para formar una memoria de lectura/escritura de 16.384 x 8 bits, que se denomina
memoria de _ _ K.
. 11
Solución:
Un bus de 16 líneas de dirección puede acceder ~ 64K de memoria. Las direcciones van de
OOOOH a FFFFH, que es igual a 65.536 10 posiciones. En este caso las palabras de memoria son de
8 bits: sin embargo, otros sistemas pueden tener 4 ó 16 bits por palabra.
1memoria 2000lI
memoria
4.27. Si una microcomputadora comercial contiene 512K de memoria, realmente ten­
drá _ _ posiciones de memoria de 8 bits cada una.
Solución:
Una microcomputadora con una memoria de SI2K tendrá 524.288 (1024 x 512 - 524.288)
bytes de memoria.
10\1 producirá la
Loria 2001 H Y
_ <byte, nibble)
4.4. REPERTORIO DE INSTRUCaONES
l1M cuyas palabras
El grupo de instrucciones que un microprocesador espeCífico puede ejecutar se denomina su
repertorio de instrucciones. Los repertorios de instrucciones de los microprocesadores pueden
variar desde ocho hasta 200 instrucciones básicas. Los repertorios de instrucciones no están
estandarizados, debido al individualismo de cada fabricante y a la diferencia de arquitectura y uso
de los microprocesadores.
Las instrucciones de un repertorio pueden clasificarse de diversas formas. En este capítulo, se
organizarán en las siguientes categorías:
~
oprocesador lee
www.FreeLibros.me
80
FUNDAMENTOS DE LOS MICROPROCESADORES
l.
2.
3.
4.
5.
6.
7.
Instrucciones aritméticas.
Instrucciones lógicas.
Instrucciones de transferencia de datos.
Instrucciones de bifurcación.
Instrucciones de llamada a subrutina.
Instrucciones de vuelta.
Instrucciones misceláneas.
Un sencillo repertorio de instrucciones de un microprocesador debería incluir las siguientes ins­
trucciones aritméticas:
l. Sumar.
2.
3.
4.
5.
6.
Restar.
Incrementar.
Decrementar.
Comparar.
Negar.
~~
Otras instrucciones aritméticas utilizadas por algunos microprocesadores pueden incluir opera­
ciones de suma con arrastre, resta con préstamo, multiplicación y división.
El mismo microprocesador simplificado deberla tener las siguientes instrucciones lógicas:
2. ORo
3. OR exclusiva.
4. Not.
5. Desplazamiento a la derecha.
6. Desplazamiento a la izquierda.
Otras instrucciones lógicas utilizadas por algunos microprocesadores pueden incluir desplaza­
miento aritmético a la derecha, desplazamiento circular a la derecha, desplazamiento circular a la
izquierda, desplazamiento circular a la derecha a través del arrastre, desplazamiento circular a la
izquierda a través del arrastre y operación de test (prueba).
El microprocesador básico deberla contener variaciones de las siguientes instrucciones de
transferencia de datos:
.
Otras instrucciones de transferencia de datos utilizadas por algunos microprocesadores pueden
incluir intercambio y diversas operaciones de borrado e inicialización.
El microprocesador debería contener las siguientes instrucciones de bifurcación en su reperto­
rio de instrucciones:
l.
2.
3.
4.
Bifurcación
Bifurcación
Bifurcación
Bifurcación
Bif'un:ac
Bifurcac
Bifurcac
Otras instruccio
depender de ca
4mwrt1ow». Las
e n sencillo [
como CALL i pe
que realizan Urui
incondicional. y
de IJamada conel
I.lamada si no P'l
Al final de ..
principal. Esta t;
pueden incluir el
habitualmente in
ta condicional.
Un repertor'ÍIl
tes instrucciones
l.
2.
1. ANO.
1. Cargar.
2. Almacenar.
3. Transferir.
4. Entrar.
5. Salir.
5.
6.
7.
incondicional.
si cero.
si no cero.
si igual.
www.FreeLibros.me
Noopen
Introduci
3. Sacar.
4. Esperar.
5. Alto.
Otras insbUl.'cial
ruptura y ajuste j
Los usuarios
como por eie'"!"""!
Motorola 6'
operación. En la
frecuentemente e
ra 4.5a, el nem04
nemotécnicos SOl
instrucción de al
representación be:
ción. En la Figura
6800. La columru
al contenido del
acumulador A.
Un ejemplo q
contenido del acu
(00101101,) se ro
do de la pOsición I
dor A y ahora el ~
FUNDAMENTOS DE LAS MICROCOMPUTAOORAS
5. Bifurcación si no igual.
6. Bifurcación si positivo.
7. Bifurcación si negativo.
las siguientes ins­
\
\
len incluir opera­
':iones lógicas:
81
/
Otras instrucciones de bifurcación condicional utilizadas por algunos microprocesadores pueden
depender de condiciones como mayor que o menor que, no arrastre o arrastre, no «overflow» u
«overfloW». Las operaciones de bifurcación son instrucciones de toma de decisiones.
Un sencillo microprocesador debería tener una instrucción de llamada a subrutina (referencia
como CALL) para hacer que el programa bifurque o salte a un grupo especial de instrucciones
que realizan una tarea específica. Todos los microprocesadores tienen la instrucción de llamada
incondicional, y algunos también tienen instrucciones de llamada condicional. Las instrucciones
de llamada condicional pueden incluir llamada si cero, llamada si no cero, llamada si positivo,
llamada si no positivo, etc.
Al final de la subrutina el programa debe volver donde originalmente abandonó el programa
principal. Esta tarea la ejecuta una instrucción de vuelta. Las instrucciones de vuelta (retomo)
pueden incluir el retomo de una subrutina o de las operaciones de interrupción. Las vueltas son
habitualmente incondicionales, pero algunos microprocesadores contienen instrucciones de vuel­
ta condicional.
Un repertorio de instrucciones simplificado de un microprocesador debería incluir las siguien­
tes instrucciones misceláneas:
l. No operación.
2. Introducir.
3. Sacar.
4.
5.
incluir desplaza­
iento circular a la
ento circular a la
instrucciones de
esadores pueden
In en su reperto-
Esperar.
Alto.
Otras instrucciones miSGeláneas pueden incluir habilitar interrupción, inhabilitar interrupción,
ruptura y ajuste decimal.
Los usuarios del microprocesador pueden describir de varias formas la misma instrucción,
como por ejemplo se esboza en la Figura 4.5 para la instrucción de sumar del microprocesador
Motorola 6800. El nombre de la instrucción es comúnmente un verbo de acción y se denomina
operación. En la Figura 4.5a, la operación es sumar. Los usuarios de la MPU también trabajan
frecuentemente con formas abreviadas de la instrucción denominadas nemotécnicos. En la Figu­
ra 4.5a, el nemotécnico para esta operación particular de sumar es ADD A (observar que los
nemotécnicos son mayúsculos). El registro de instrucción y la circuitería de decodificación de la
instrucción de un microprocesador comprenden solamente ceros y unos. El código de op es la
representación hexadecimal del código binario de 8 bits que hará que la MPU ejecute la instruc­
ción. En la Figura 4.5a, el código de op para ADD A es 8B I6 (1000 1O11 2) para el microprocesador
6800. La columna simbólica de la Figura 4.5a muestra que el contenido de memoria (M) se suma
al contenido del acumulador A de la MPU, y la flecha indica que la suma se coloca en el
acumulador A.
Un ejemplo que utiliza la instrucción de sumar (ADD A) está esbozado en la Figura 4.5b. El
contenido del acumulador A (00011110 2) se suma al contenido de memoria (00001111 2), la suma
(00101101 2) se coloca en el acumulador A, a la derecha. Observar que no ha cambiado el conteni­
do de la posición de memoria de la Figura 4.5b, mientras ha cambiado el contenido del acumula­
dor A y ahora el acumulador A contiene la nueva suma.
www.FreeLibros.me
82
rI
FUNDAMENTOS DE LOS MICROPROCESADORES
4.32. Listar
Operación
de los
Código Op Simbólico (Todas las etiquetas de los
(hex)
registros referencian contenidos)
Nemotécnico
Soludó
Las
Sumar
8B
ADDA
ferir.
A+M-+A
4.33.
(a)
Resumen de la instrucción de suma
....
Acumulador A
·furcacic
A"""'Ia'§
,
I
I
Lasop
de
Solució
Acumulador A
Memoria
et
4.34.
(b)
Listar .
río de
0000 1111
Solucio
Instrucción de suma
Las
Figura 4.5.
tes: bifi:
ción si 1
ción si ,
.
~
4.35. Un Bf'II
PROBLEMAS RESUELTOS
4.28.
El grupo de operaciones que puede ejecutar un microprocesador
su _ _ _ _ _ _ .
ma. se
se denomina
Solución:
El grupo de operaciones que puede ejecutar un microprocesador se denomina su repertorio de
instrucciones.
4.29. Citar siete tipos de las instrucciones que se encuentran en el repertorio de instrucciones de
un microprocesador.
Solución:
Una agrupación de operaciones del repertorio contiene las siguientes categorías: aritméticas,
lógicas, de transferencia de datos, bifurcaciones, llamadas a subrutina, vueltas de subrutina e instruc­
ciones misceláneas.
Soluciál
Unl
na subr
~j
4.36. ¿Qué 11
Soluciól
La~
4.37. ¿Qué iJ
vuelva
SoltlCÍál
bi
micropl
4.30. Una operación ADD (de SUMA) es una instrucción aritmética, mientras que una operación OR (O) se denomina una instrucción _ __
Solución:
Una operación OR se clasifica como una instrucción lógica.
4.31. Las operaciones de desplazamiento se denominan instrucciones ___ .
Solución:
Las operaciones de desplazamiento se denominan instrucciones lógicas.
www.FreeLibros.me
pueden
tina.
'1
4.38. Listar (
muchQ
Sol. . .
tasi
esperar
ción Id.
,
FUNDAMENTOS DE LAS MICROCOMPUTADORAS
83
4.32. Listar cinco operaciones básicas de transferencia de datos encontradas en la mayor parte
•
de los repertorios de instrucciones de los microprocesadores.
le los
/
l)S)
Solución:
Las operaciones de transferencia de datos del microprocesador incluyen cargar, almacenar, trans­
ferir, entrar y salir.
4.33. Las operaciones de toma de decisión de un microprocesador se denominan instrucciones
de _ _ .
Solución:
Las operaciones de toma de decisión de un microprocesador se denominan instrucciones de bi­
.furcación.
4.34. Listar varias operaciones de bifurcación condicional que pueden encontrarse en el reperto­
rio de instrucciones de un microprocesador.
Solución:
Las instrucciones de bifurcación condicional de un microprocesador típico incluyen las siguien­
tes: bifurcación si cero, bifurcación si no cero, bifurcación si igual, bifurcación si no igual, bifurca­
ción si positivo, bifurcación si negativo, bifurcación si mayor que, bifurcación si menor que, bifurca­
ción si arrastre, bifurcación si no arrastre, bifurcación si overflow y bifurcación si no overflow.
4.35. Un grupo especial de instrucciones que realizan una tarea específica, dentro de un progra­
ma, se denomina un(a) ___ (índice, subrutina).
. se denomina
L
repertorio d,
l
instrucciones de
L
aritméti,,,
brutina e instruc-
lque una opera-
Solución:
Un grupo especial de instrucciones que realizan una tarea específica en un programa, se denomi­
na subrutina.
4.36. ¿Qué instrucciones hacen que el microprocesador bifurque a una subrutina?
Solución:
La instrucción CALL o de llamada a subrutina hace que la MPU bifurque a una subrutina.
4.37. ¿Qué instrucción se coloca al final de una subrutina para indicar al microprocesador que
vuelva a la posición correcta en el programa principal?
Solución:
La instrucción vuelta de subrutina (RET) se coloca al final de una subrutina para hacer que el
microprocesador bifurque a la posición correcta del programa principal. Esta instrucción también
puede restaurar algunos registros a la condición que tenían antes de la operación de llamada a subru­
tina.
4.38. Listar cinco operaciones misceláneas encontradas en los repertorios de instrucciones de
muchos microprocesadores.
Solución:
Las instrucciones misceláneas de la MPU incluyen no operación, introducir (push), sacar (pop),
esperar (wail), alto (halt), habilitación de interrupción (enable interrupt), inhabilitación de interrup­
ción (disable interrupt), bifurcar y ajuste decimal.
www.FreeLibros.me
84
FUNDAMENTOS DE LOS MICROPROCESADORES
Operación
?
?
(hex)
Restar
SUBA
80
Simbólico (Todas las etiquetas de
los registros referencian contenidos)
A-M_A
Generalmen
computacional '
decodificación e
nes necesarias d
Las funcione
l.
(a)
Resumen de la instrucdón de resta
4.
Acumulador A
Acumulador A
?
Después de la operaclÓII
Memoria
(b)
Buscar.
I
2. Transfer
3. Responc:
Problema de resta
Figura 4.6.
4.39•. Acudir a la Figura 4.6a. ¿Qué deberá aparecer encima de SUB A en el diagrama que
describe la instrucción de resta?
Proporci
La mayoría
esbozados en la
mética y lógica
control, junto é
registros más es
Figura 4.7.
La unidadd
desplazar circm
mentar, borrar :
procedimiento I
lador (OA ,ó ) se s
colocar en el ac
Algunas de 1
ALU contiene 1
Solución:
La abreviatura SUBA es el nemotécnico para restar del acumulador A. En la Figura 4.6a, enci­
ma de SUB A debe aparecer «Nemotécnico».
4.40. El 80 hexadecimal de la Figura 4.6a se denomina _ _ _ _ .
Solución:
El 80'6 de la Figura 4.6a se denomina código de op de la instrucción de restar.
4.41. Acudir a la Figura 4.6b. La diferencia binaria que deberá aparecer en el acumulador A,
después de la operación SUB A, será _ _ .
Bus de
direcciones
E'
Solución:
El binario 00110111-00101101 = 00001010 (decimal 55 - 45 = 10). El acumulador A conten­
drá la diferencia de 0000 l O1O2 después de la operación SUB A en la Figura 4.6b.
Líneas de
control
4.5. ORGANIZACION SIMPLIF1CADA DE LA CPU
La unidad principal de cualquier sistema computador se denomina unidad central de tratamiento
o CPu. Muchos CI microprocesadores son la CPU del sistema. Es común en tecnología de
computadoras implementar la memoria de programa, memoria de datos, interfaces de entrada/
salida, decodificador de direcciones y CPU en CI separados, como sugiere el sistema de la Figu­
ra 4.1. La MPU forma la unidad central de tratamiento en este sistema.
www.FreeLibros.me
e
.,.------1 .~
FUNDAMENTOS DE LAS MICROCOMPUTAOORAS
85
Generalmente la CPU contiene elementos de memoria denominados registros y circuitería
computacional denominada unidad aritmética y lógica (ALU). También contiene circuitería de
decodificación de instrucciones y una sección de temporización y control, además de las conexio­
nes necesarias de entrada y salida.
Las funciones principales de la CPU de una microcomputadora son:
l. Buscar, decodificar y ejecutar instrucciones del programa en el orden adecuado.
2. Transferir datos entre memoria y las secciones de entrada/salida.
3. Responder a las interrupciones externas.
4. Proporcionar señales de temporización y control al sistema completo.
~agrama
La mayoría de las CPU de los microprocesadores contienen como mínimo los elementos
esbozados en la Figura 4.7. Las secciones principales incluyen diversos registros, la unidad arit­
mética y lógica, el decodificador de instrucciones y la importante sección de temporización y
control, junto a las entradas y salidas. La mayoría de las CPU realmente contienen algunos
registros más especiales, así como muchas entradas y salidas especializadas no detalladas en la
Figura 4.7.
La unidad aritmética y lógica (ALU) de la CPU realiza operaciones como sumar, desplazar/
desplazar circularmente, comparar, incrementar, decrementar, negar, AND, OR, XOR, comple­
mentar, borrar y preinicializar (preset). Si la ALU ejecutase la instrucción de SUMAR (ADD), el
procedimiento podría ser parecido a lo esbozado en la Figura 4.8a. Aquí el cómenido del acumu­
lador (OA I6 ) se suma al contenido del registro temporal (05 16), La suma (OF I6 ) entonces se vuelve a
colocar en el acumulador.
Algunas de las secciones funcionales de una ALU típica se encuentran en la Figura 4.8b. La
ALU contiene un sumador y desplazador, que está conectado al acumulador, vía el bus interno
que
L6Q.enc>
CPU
r-­
,.,
~
::1
......-­
.
~
Contador de programa
.S
'"
:;,
Registro de
instrucciones
~
...
f+-+
~:;,
Bus
de datos
~~'
IXI
"-
l·
f-ot­
.
~
i'
Líneas
de entrada
f+-Temporización y control
......­
de
le entrada/
de la Figu­
~
.S
IXI
Decodificador
de instrucciones
ro-­
e
r--­
'"::1
.........-­
.....-­
~ología
...........
o
IXI
Líneas de
control
rratamiento
......­
Acumulador ~
c:::
...,........
I
Registro
temporal
o
-
L
11
u
'¡:;­
IXI
conten.
Unidad aritmética
y lógica
!--
Bus de
o
direcciones '0'
1:
..,
unulador A,
l
..
¡
I
lA
i
. ¡
);. i
~
Figura 4.7.
Arquitectura simplificada de una CPU.
.­
www.FreeLibros.me
,.
86
RJNDAMENTOS DE LOS MICROPROCESADORES
¡
Acumulador
I0000 ~
Antes de la operación ADD
.
ALU
10000 1111
J
Acumulador
Después de la operación ADD
Registro temporal
(en CPU)
(a)
r- --
Ejecución de la instrucción de sumar en la ALU
--ALU -
''---1
I
\
~
I
IL-
::J
Registro
temporal
splazador
e
El
~
.5
Sumador
res tienen un COI!
de direcciones. L
da por instruccic
que el contador
ejecutar un prog¡
dor de programa
La secuencia
de la computado
es el código de e
sección de contr
instrucciones. El
que ejecute la in
La organizaci
de las CPU de 1
16 bits. Existen I
de la CPU .
Acumulador .............¡~
.~
,~
__
(b)
Organización de la ALU
Figura 4.8.
de datos. De importancia crítica para el programador es el registro de status localizado en la
ALU, también denominado registro de códigos de condición o de señalizadores. El registro es
realmente un grupo de flip-flops individuales que pueden ser puestos a I ó O según las condicio­
nes creadas por la última operación de la ALU. Los flip-flops individuales, o señalizadores,
incluyen indicadores para cero, resultados negativos, arrastres desde el MSB, etc. Los señalizado­
res son utilizados para tomar decisiones cuando posteriormente se emplean instrucciones de
bifurcación. Los registros temporales y acumulador mostrados en la Figura 4.8b se consideran
muchas veces parte de la ALU. El acumulador es utilizado en la mayoría de las operaciones
realizadas por la CPU, como por ejemplo en las transferencias de datos.
La sección de temporización y control de la Figura 4.7 es robableme
ión más com­
pleja de la CPU. ~.fe~ta Lsecuencia todos los eventos de la CPU y de la micr.QCWllputaaefB.. En
un capítulo anterior se mencionó que cada instrucción del programa puede dividirse en etapas de
búsqueda, decodificación y ejecución. Cada una de estas etapas puede ser además subdividida en
una serie de pequeños pasos, denominados microprograma. El microprograma para cada instruc­
ción reside en la sección de decodificación de instrucciones y es ejecutado por la sección de
temporización y control de la CPU.
Un registro de 16 bits llamado contador de programa se muestra como parte de la CPU de la
Figura 4.7. El contador de programa es responsable de seguir la pista de la dirección de la siguien­
te instrucción de memoria que se va a buscar. Debido a que las instrucciones del programa,
normalmente, son ejecutadas en secuencia, el contador de programa cuenta normalmente de
forma ascendente hasta que no se le diga que haga otra cosa. La mayoría de los microprocesado­
www.FreeLibros.me
4.42. Las letras
Soluciéll:
Las Ieb
4.43. Acudir al
Solucióo;
La uniC
ma mostra
4.44. Una
el'(
(b) circuitJ
sección de
Solucióo;
Una O
cuiteria ca
sección de
4.45. Citar cual
Solucióa:
Cuatro
(a)
Busca
(b)
Trans
(e)
Respc:
Propc:
(d)
I
,
I
FUNDAMENTOS DE LAS MICROCOMPUT ADORAS
87
l a tienen
un contador de programa de 16 bits que accederá a 64K palabras de memoria vía el bus
direcciones. La ejecución secuencial normal de las instrucciones del programa puede ser altera­
.::..? por instrucciones especiales de bifurcación, llamada, o vuelta, o por interrupciones que hacen
.;ue el contador de programa bifurque a un número distinto de la dirección siguiente. Para
~tar un programa después de conectar la computadora, el operador debe inicializar el conta­
.:or de programa con el número de la posición de la primera instrucción del programa.
La secuencia de búsqueda-decodifica-ejecuta la instrucción es fundamental para la operación
:c la computadora. La primera instrucción buscada, de la memoria de programa, se supone que
:"S el código de op de la primera instrucción y es colocada en el registro de instrucciones por la
:...",,-uón de control de la CPU. El código de op es entonces interpretado por el decodificador de
~_,trucciones. El decodificador de instrucciones indica a la sección de temporización y control
~ Je ejecute la instrucción específica.
La organización de la CPU mostrada en la Figura 4.7 es una versión simplificada. La mayoría
:.e las CPU de los microprocesadores contienen como mínimo algunos registros más de 8 y
-.; bits. Existen grandes variaciones en los microprocesadores según el número y tipos de registros
:e la CPU.
::l!
ie ADD
PROBLEMAS RESUELTOS
....42. Las letras CPU significan ¿qué parte de un sistema microcomputador?
_./
localizado en la
res. El registro es
~ún las condicio­
, o sefializadores,
c. Los señalizadoinstrucciones de
,8b se consideran
~ las operaciones
bón máscom­
:cm~En
-e en etapas de
as subdividida en
cada instruc­
or la sección de
Solución:
Las letras CPU significan unidad central de tratamiento.
".43. Acudir a la Figura 4.1. La CPU reside ¿en qué bloque de este sistema microcomputador?
Solución:
La unidad central de tratamiento reside en el bloque MPU (unidad microprocesadora) del siste­
ma mostrado en la Figura 4.1.
4.44. Una CPU generalmente contiene (a) dispositivos de memoria denominados_.
(b) circuitería computacional denominada ___ • (c) circuitería ___ ___ y (d) una
sección de temporización y ___ .
Solución:
Una CPU generalmente contiene (a) dispositivos de almacenamiento llamados registros, (b) cir­
cuitería computacional llamada ALU, (e) circuitería de decodificación de instrucciones y (d) una
sección de temporización y control.
liara
~de
la CPU de la
ión de la siguien­
s del programa,
rlormalmente de
microprocesado­
1
4.4S. Citar cuatro tareas principales de la CPU de una microcomputadora.
Solución:
Cuatro tareas de la CPU de una microcomputadora son:
(a) Buscar, decodificar y ejecutar instrucciones de programa en el orden adecuado.
(b) Transferir datos entre memoria y las secciones de entrada/salida.
(e) Responder a interrupciones externas.
(d) Proporcionar señales de temporización y control a todo el sistema.
www.FreeLibros.me
~ Ji
J/
88
FUNDAMENTOS DE LOS MICROPROCESADORES
4.46. ¿Qué significan las letras ALU?
.~
,~
".52. El cont
dones (
tipos de
Solución:
Las letras ALU significan unidad aritmética y lógica.
So-.
4.47. Acudir a la Figura 4.9. ¿Cuál es el contenido binario del acumulador después de la opera­
Las i:
illC'reJne1
ción ANO?
Solución:
El contenido binario del acumulador de la Figura 4.9 después de realizar la operación ANO, bit a
bit, es 00000000. La tabla de verdad ANO se muestra en la Figura 3.1.
"'.53. AJ comi
coloca e
(
SoI.w.
I
Acumulador
~
I?
I
A"~ de b opmcl60 AND~ " " ' _ d...."""Ióft AND
Regtstro temporal
(en CPU)
~
~
Seftalizador de cero
Si acumulador OOH, entonces seftalizador de cero - 1
Si acumulador #- OOH, entonces seilalizador de cero = O
"54.
La seca.
nes e ioc
denomir
EJ_
SoIIlCiáE
ciones e
Figura 4.9.
4.48.
AIro
coloca el
Acumulador
Acudir a la Figura 4.9. El señalizador de cero estará en _ _ (set, reinicialización) des­
pués de la operación ANO.
Í:
4.6. OPER·\J
Solución:
La condición del señalizador de cero se basa en el contenido del acumulador después de la
operación ANO. Debido a que el acumulador es igual a cero, el señalizador de cero del registro de
status se pondrá a l después de la operación ANO de la Figura 4.9.
4.49. El registro de status de la ALU también se denomina registro de códigos _ _ , y los
flip-flops individuales se denominan _ _ (señalizadores. signos).
Considerar la SIe1
;lequeño .,.....
¡laSOs que a cont
Instrucción J
Instrucción 2
Instrucción 3
Solución:
El registro de status de la ALU se denomina registro de códigos de condición, y los flip-flops
individuales muchas veces se denominan señalizadores (flags).
4.50. ¿Qué sección importante de la CPU afecta y secuencia todos los eventos en la CPU y en la
microcomputadora?
Solución:
La sección de control y temporización de la CPU afecta y secuencia todos los eventos en la CPU
y en la microcomputadora.
4.51.
El registro de la CPU que sigue la pista de la dirección de la siguiente instrucción que se va
a buscar en la memoria de programa se denomina _ _ _ _ _ _ .
Solución:
El contador de programa sigue la pista de la dirección de la siguiente instrucción que se va a
buscar en la memoria de programa.
www.FreeLibros.me
\
Instrucción 4
DespuésdeJ
como las del ~
.,rograma comier
::rene 2 bytes de
:nstrucción. míen
LOAD (CARGA
~emplo. El opera
jel microprocesa
:,marias en notaci
,Ión.
Suponer que e
~n la Figura 4. 1.
!
•
f1JNDAMENTOS DE LAS MICROCOMPUTADORAS
89
.t..52. El contador de programa normalmente incrementa su contenido accediendo a las instruc­
ciones de la memoria de programa en orden secuencial excepto cuando se altera por ¿qué
tipos de instrucciones?
Solución:
tspués de la opera-
Jperación AND, bit a
Las instrucciones de bifurcación, llamada o vuelta, o interrupciones, pueden alterar el normal
incremento del contador de programa.
.t .53.
Al comienzo de la ejecución de un programa el código de op de la primera instrucción se
coloca en el _ _ (acumulador, registro de instrucciones) de la CPU.
Solución:
Al comienzo de la ejecución de un programa, el código de operación de la primera instrucción se
coloca en el registro de instrucciones de la CPU.
~ 54.
La sección de la CPU que interpreta el código de op colocado en el registro de instruccio­
nes e indica la sección de control y temporización sobre cómo ejecutar la instrucción se
denomina ___ .
Solución:
.. de cero'" t
DI' de cero = O
,
tci&áaciónl
de~
klador despu~ de la
r cero del registro de
~
ligos ___ , y los
Lón, y los flip-tlops
~ en la CPU y en la
I
l. . 'o.en
la CPU
Lucción que se va
IJUcción que se va a
El decodificador de instrucciones de la CPU interpreta el código de op en el registro de instruc­
ciones e indica a la sección de control y temporización cómo ejecutar la instrucción.
...6. OPERACION DE LA MICROCOMPUTADORA
-.:msiderar la sencilla tarea de sumar tres números como 10 + 5 + 18 = 33'0' Puede escribirse un
programa de microcomputadora para que realice esta tarea elemental siguiendo los
::--a50S que a continuación se indican:
~ueño
Instrucción 1 CARGAR (LOAD) el primer número (10'0) en la CPU.
Instrucción 2 SUMAR (ADD) el segundo número (5 10 ) al primero.
Instrucción 3 SUMAR (ADD) el tercer número (18 10 ) a la suma de los dos primeros núme­
ros.
Instrucción 4 ALMACENAR (STORE) la suma de los tres números (33 10 ) en la posición
2000'6 de la memoria de datos.
Después de cargarlas en la memoria de programa, las instrucciones anteriores deben aparecer
:omo las del diagrama de memoria de la Figura 4.10. Observar que la primera instrucción del
;,rograma comienza en la dirección OOOOH. La primera instrucción (CARGAR el número OAH)
:lene 2 bytes de memoria. El primer byte de memoria contiene la parte de operación de la
:nstrucción, mientras que el segundo byte contiene el operando. El código de op para la operación
LOAD (CARGAR) es 86H (100001102) para el microprocesador que se está utilizando en este
ejemplo. El operando OAH (00001010 2) es el primer número que se va a cargar en el acumulador
del microprocesador. Observar en la Figura 4.10 que es costumbre representar las cantidades
binarias en notación hexadecimal. En la máquina real éstos son niveles ALTOS y BAJOS de ten­
sión.
Suponer Que el programa se coloca en el bloque de RAM de la microcomputadora ilustrada
en la Figura 4.1. Suponer también que la CPU de la microcomputadora tiene las características
www.FreeLibros.me
90
FUNDAMENTOS DE LOS MICROPROCESADORES
-,
Memoria de programa
Direcciones Contenidos
(hex)
(hex)
0000
86
Instrucción l-CARGAR (LOAD)
0001
OA
0002
88
detalladas en la
~:.latro operacion
La operación
la posición de m~
lCUmulador cont
;.Jbreescribe en el
se muestra en la
>urna al contenid
en el acumulador
:\DD).
(
"
Instrucción 2-SUMAR (ADO)
\
0003
05
0004
88
0005
12
0006
87
0007
20
0008
00
.
1
";)
Instrucción 3-SUMAR (ADD)
Memor
..
Instrucción 4-ALMACENAR (STORE)
0009
ooOA
..,.,.~
........
Memoria de datos
I1
Memoria
2000
2001
2002
2003
Figura 4.1 O.
Un segmento del programa de mícrocomputadora para sumar 10+ 5 + 18.
www.FreeLibros.me
FUNDAMENTOS DE LAS MICROCOMPUTADORAS
~adas en la Figura 4.7. Entonces la Figura 4.11 detalla los resultados de cada
_...aIrO operaciones del programa CARGAR-SUMAR-SUMAR-ALMACENAR.
91
una de las
La operación CARGAR (instrucción 1) detal1ada en la Figura 4.11 a muestra el contenido de
-'- ;x>sición de memoria OOOlH cargado en el acumulador de la CPU. Después de la operación, el
c..:'Jmulador contiene 00001010 2, que es el primer número a sumar. La operación de CARGAR
.: jreegcribe en el contenido del acumulador y lo borra. La operación de SUMAR (instrucción 1)
.: muestra en la Figura 4.1Ib. El contenido de la posición de memoria 003H (00000101 2 ) se
_:na al contenido del acumulador (0000 10102), dando la suma de 00001111 2, La suma se coloca
. - el acumulador. Observar que el número del acumulador cambia durante la operación de suma
;DD).
Acumulador
I
Antes de la operación
Memoria de programa (OOOIH)
_
~
~lOlOr
~
Acumulador
Después de la operaCIón
~
La Ínstrucción de carga
(a)
RE)
Acumulador
I 00001~,
Acumulador
Antes de la operación
Después de la operación
Memoria de programa (0003H)
La instrucción de suma
(b)
Acumulador
I 000011111
~
Antes de la operación
Memoria de programa (0005H)
1001000011
00%]
I0010000 1I
Acumulador
Después de la operación
( 00100001
(d)
~
.
La instrucción de suma
Antes de la operación
10+5+ 18.
Después de la operación
I000 1
(e)
Acumulador
Acumulador
I
Memoria de datos (2000H)
La instrucción de almacenar directo
Figura 4.11.
www.FreeLibros.me
~ 1
.,
I
92
FUNDAMENTOS DE LOS MICROPROCESADORES
La segunda operación de SUMA (instrucción 3) se detalla en la Figura 4.11 c. La suma acumu­
lada, 00001111 2, se suma al contenido de la posición de memoria 0005H. La suma binaria' es
00001111 + 00010010 = 00100001. La suma final de 00100001 2 aparece en el acumulador des­
pués de la segunda operación de SUMA.
La operación de ALMACENAR (instrucción 4) se muestra en la Figura 4.11 d. El contenido
del acumulador (00 l 0000 l z) es transferido y almacenado en la posición 2000H de la memoria de
datos. Observar que la posición de la memoria de datos estaba identificada en la memoria de
programa por 2 bytes separados (posiciones 007 y 0008H). La posición de memoria de programa
0006H en la Figura 4. !O contiene B7H que es el código de op para la instrucción ALMACENAR
directo.
Considerar la búsqueda, decodificación y ejecución de la instrucción CARGAR en las direc­
ciones OOOOH y 000 1H de la memoria de programa de la Figura 4.10. Este tipo de instrucción de
CARGAR probablemente puede ser ejecutada entre 2 y 6 microsegundos (Jl.S) por muchas micro­
computadoras. Algunas de las acciones que ocurren en la CPU, buses, líneas de control y memo­
ria se detallan para la instrucción de CARGAR en la Figura 4.12.
Comenzando en la parte superior izquierda de la Figura 4.12, el contador de programa en la
CPU se inicializa con la dirección del primer paso del programa. A continuación, la dirección de
16 bits es transferida al registro de direcciones y después al bus de direcciones y memoria de
programa. Para activar la memoria de programa, la CPU envía una señal de lectura (línea R/Wa
l) mientras que el decodificador de direcciones (no parte de la CPU) habilita la selección de
pastílIa de memoria (L'S) con un O. A continuación, el contador de programa en la CPU es
incrementado a 000 l H. La posición OOOOH de la memoria de programa es accedida y leída en el
bus de datos. El código de op (86H) para la instrucción de CARGAR es transferido al registro de
instrucciones de la CPU. Esto completa la etapa de búsqueda del código de op de la instrucción
CARGAR.
A continuación el código de op (86H) que está contenido en el registro de instrucciones de la
CPU es interpretado por el decodificador de instrucciones. En este caso la CPU determina que se
trata de la instrucción CARGAR inmediato, que significa que cargará el contenido de la posición
de memoria que sigue inmediatamente al código de op en el acumulador. El contenido del
contador de programa (000 l H) es transferido al registro de direcciones, bus de direcciones y
memoria. La CPU genera un pulso de lectura ALTO, que va a la entrada R/W de la memoria. Un
nivel BAJO se aplica a la entrada de memoria CS, que la habilita. En la tercera línea de la parte
inferior de la Figura 4.12, el contador de programa es incrementado a 0002H, quedando listo
para la búsqueda de la siguiente instrucción. Se accede a la posición de memoria 000 l H, Y su
contenido (OAH) es colocado en el bus de datos y despuéS en el acumulador de la CPU. Observar
que las etapas de búsqueda y ejecución de esta instrucción son similares a las operaciones de
lectura, excepto que el dato leído de memoria era transferido a un registro diferente de la CPU. El
código de op de la etapa de búsqueda se coloca siempre en el registro de instrucciones.
PROBLEMAS RESUELTOS
Busca
•1
.li
Decodifica
•
Ejecuta
4.5t1. AC'IXIir
ma, d
tro_
S.I _
4.55.
Las dos partes de una instrucción de un microprocesador se denominan operación
y-_.
Cual
do (88'
Solución:
Las dos partes de una instrucción de un microprocesador se denominan operación y ope­
rando.
www.FreeLibros.me
".57. Acudir
que se
I
FUNDAMENTOS DE LAS MICROCOMPlITADORAS
~lC.
La suma acumu­
: La suma binaria' es
I el acumulador des­
Inicializado por operador
Contador de programa
r
Registro de direcciones
!4.11d. El contenidc
tH de la memoria de
a en la memoria de
emoria de programa
t:'ión ALMACENAR
Busca
.. de programa en la
;ión. la dirección de
¡,nes y memoria de
ectura (línea R/Wa
ilita la selección de
Ima en la CPU es
:cedida y leída en el
ferido al registro de
ti' de la instrucción
instrucciones de la
lJ detennina que se
nido de la posición
. El contenido de!
:s de direcciones '.
de la memoria. U~
ra línea de la parte
H. quedando listo
Doria 0001 H, Y su
! la CPU. Observar
las operaciones de
ente de la CPU. El
ucciones.
z:
<
x<
Decodifica
Ejecuta
I Registro de direcciones
[§B]
'IOOOOH
~
·1 ooOOH I Bus de direcciones + mt:moria
Salida de RjW de la CPU
[O
Salida del decodificador de
direcciones
[2]
~
Contador de programa
RGAR en las direc­
po de instrucción de
, por muchas micro­
de control y memo­
l
{O
Incrementa
~
(@!!!J
Entrada RjW de memoria
Entrada C'S de memoria
Contador de programa
Memoria de programa (OOOOH) ~
Bus de datos
Bus de datos
Registro de instrucción
~
{Registro de instrucción
93
Decodificador de instrucciones
Contador de programa
~
'lO@iiD
Registro de direcciones
lO@iiD
'looolHI Bus de direcciones + memoria
Salida de RjW de la CPU
m
Salida del decodificador de
direcciones
[!J
Contador de programa
[§!TI
Incrementa
Registro de direcCiones
,[O
Entrada RjW de memoria
,m
Entrada
es de memoria
I~ Contador de programa
Memoria de programa (OOOIH) ~
Bus de datos
~
Acumulador
Bus de datos
Figura 4.12.
Un análisis detallado de la instrucción de cargar inmediato.
456. Acudir a la Figura 4.10. Cuando es accedida la posición 0002H de la memoria de progra­
ma, el contenido (8B) es transferido, vía bus de ___ (direcciones, datos), al regis­
tro _ _ de la CPU.
minan operación
operación y ope-
Solución:
Cuando es accedida la posición 0002H de la memoria de programa de la Figura 4.10, el conteni­
do (8B) es transferido. vía bus de datos. al registro de instrucción de la CPU.
4.57. Acudir a la Figura 4.10. La posición de la memoria del programa ooo3H contiene 05H,
que se considera la parte ___ (operando, operación) de la instrucción.
www.FreeLibros.me
94
FUNDAMENTOS DE LOS MICROPROCESADORES
Solución:
En la Figura 4.10, la posición de memoria 0003H contiene 05H, que se considera la parte
operando de la instrucción.
4.58.
Sohldóa:
La inICIa
ma se inicial
que se va a I
como se ind
Un número binario de 16 bits está representado normalmente por _ _ (un número)
dígitos hexadecimales.
Solución:
Un número binario de 16 bits es costumbre representarlo por cuatro dígitos hexadecimales. Por
tanto 00 1O 0000 0000 1111 2 puede ser representado por 200F en notación hexadecimal.
4.59.
Listar las tres etapas que sigue la CPU cuando ejecuta cualquier instrucción.
..l
".65. Listar cinco
Solución:
Los ciclos de la CPU son las etapas de búsqueda, decodificación y ejecución cuando corre
cualquier instrucción.
4.60. Acudir a la Figura 4.12. La etapa de Msqueda de esta instrucción es básicamente una
operación de ___ (lectura, escritura), donde el contenido de memoria acaba en
el _ _ (acumulador, registro de instrucciones) de la CPU.
Solución:
La etapa de búsqueda de esta o cualquier instrucción es básicamente una operación de lectura,
donde el contenido de memoria acaba en el registro de instrucciones.
4.61. Durante la etapa de búsqueda de una instrucción, el _ _ (decodificador de instruccio­
nes, contador de programa) apunta a la dirección del código de op que se va a acceder en
memoria.
Solución:
Durante la etapa de búsqueda de una instrucción, el contador de programa apunta la dirección
del código de op que se va a acceder en memoria.
cesador'.
Res.
4.66. El bus de un;
Res. direco
4.67. El bus de 8 b
Res. datos..
4.68.
Acudir a la f
salidas. entra
Res. entrad;
4.69.
Acudir a la F
posición de 11
Res. 208F,
4.70.
Acudir a la
ROM _ _
4.62. Acudir a la Figura 4.12. Además de las entradas de dirección, ¿qué otras dos entradas de
memoria necesitan ser activadas para leer un byte de memoria?
Solución:
Según la Figura 4.12, la entrada RjW(lectura/escritura) de la MPU y laCS (selección de pastilla)
de memoria del decodificador de direcciones necesitan ser habilitadas junto con las entradas de
dirección para leer un byte de memoria.
4.63. Acudir a la Figura 4.10. Una vez que la CPU ejecuta la instrucción 4, ¿qué número deci­
mal se almacenará en la posición 2000H de la memoria de datos?
Solución:
El programa de la Figura 4.10 suma OAH + 05H + 12H, dando un total de 21 H. La suma de 21 H
será almacenada entonces en la posición 2000H de la memoria de datos. Esto se ilustra también en
la Figura 4.11 d.
Res.
4.71.
www.FreeLibros.me
sacará...
La ROM de!
Res. OOlf !P
4.72. Ocho CIs RJ
formar una
de _ _ K.
Res.
8,4.
4.73. La lista de op
de _ _ .
Res.
4.74.
4.64. Acudir a la Figura 4.12. Una vez conectado a la red, la inicialización del contador del
programa es realizada por el _ _ (decodificador de direcciones, operador).
arquilC
i\aJes ~
instruí:
Unaoperac;t
ALMACE,,~
Res.
transic
~
FUNDAMENTOS DE LAS MICROCOMPUTADORAS
9S
Solucióo:
La inicialización del contador de programa es realizada por el operador. El contador de progra­
ma se inicializa con la dirección de la memoria de programa de la primera instrucción del programa
que se va a ejecutar. Esta primera inicialización del contador de programa puede, o no, ser OOOOH
como se indica en la Figura 4.12.
se considera la parte
~
_ _ (un número)
I /
sÍhexadecimales. Por
xadecimaJ.
PROBLEMAS SUPLEMENTARIOS
Icción.
~..6S.
rción cuando corre
\
~
básicamente una
emoria acaba en
Listar cinco cosas que sea necesario conocer cuando se aprende algo sobre un nuevo micropro­
cesador.
Res. arquitectura, repertorio de instrucciones, sistema mínimo que utiliza el microprocesador, se­
ñales de control y funciones de las patillas.
·CA'. El bus de una dirección de 16 bits de la Figura 4.1 se denomina bus de _ _ .
Res. direcciones.
4.67. El bus de 8 bits de dos direcciones de la Figura 4.1 se denomina bus de _ _ •
Res. datos.
.,eración de lectura.
4.68. Acudir a la Figura 4.1. Las conexiones de la MPU al bus de datos se consideran _ _ (entradas,
salidas, entradas y salidas).
Res. entradas y salidas.
dor de instruccio­
se va a acceder en
".69.
Acudir a la Figura 4.2. Si la dirección en el bus de direcciones fuese 0010 0000 1000 1111, ¿a qué
posición de memoria (número hex) accedería el microprocesador?
Res. 208F w
4.70.
Acudir a la Figura 4.3. Si la microcomputadora accede a la posición de memoria OOFEH, la
ROM _ _ (sacará, aceptará) _ _ _ ~ _ _ _ _ (8 bits).
~apunta la dirección
.
~
5
dos entradas de
Lón
Res. sacará, 00 100000.
4.71. La ROM de la Figura 4.3 se dice que reside ¿en qué página de memoria?
Res. 00'6 (página cero).
de p"'illa)
Dn las entradas de
té
4.72. Ocho as RAM de 4096 x l bit pueden organizarse de forma similar a los de la Figura 4.4c para
formar una memoria de lectura/escritura de 4096 x _ _ bits, que se denominaría memoria
de _ _ K.
número deci-
Res. 8,4.
4.73. La lista de operaciones que pueden ser realizadas por un microprocesador se denomina su repertorio
de _ _ .
l. La suma de 21H
ilustra también en
Res. instrucciones.
4.74.
lel contador del
Ior).
.
Una operación de SUMAR (ADD) es una instrucción aritmética, mientras que una operación de
ALMACENAR (STO RE) es una instrucción de _ _ .
Res. transferencia de datos .
www.FreeLibros.me
96
t
I
FUNDAMENTOS DE LOS MICROPROCESADORES
4.75. Las operaciones de bifurcación son las instrucciones de toma de _ _ del microprocesador.
Res. decisiones.
4.76. Las instrucciones de llamada a subrutina y las _ _ (aritméticas, de vuelta) están siempre asociadas
con las subrutinas.
Res. de vuelta.
4.77. La circuitería computacional de una CPU se denomina _ _ (tres letras).
Res. ALU (unidad aritmética y lógica).
4.78. La CPU de una microcomputadora contiene una serie de dispositivos de almacenamiento temporal
denominados _ _ (registros, ROM).
Res. registros.
4.85. Elcontadc:
instrucciól
Res. de.
4.86. Durante bi
ma y traru
Res. cód
4.87. Durante I,¡
de progra¡
nes, temp
Res. ePI
4.88.
4.79. La CPU de una microcomputadora contiene circuitería utilizada para interpretar instrucciones a la
que se denomina _ _ .
Res. decodificador de instrucciones.
Acudir al
ra 4.14b d
Res. ()()()
Memoril
4.80. La CPU de una microcomputadora contiene un bloque de circuitería para secuenciar eventos, que se
denomina sección de _ _ y _ _ .
Res. control, temporización.
Direcci~
(hex)
4.81. La CPU de una microcomputadora reside en un dispositivo denominado _ _ (interfaz, micropro­
cesador).
Res. microprocesador.
0000
4.82. Acudir a la Figura 4.13. ¿Cuáles son los contenidos binarios del acumulador después de la operación
OR?
Res. 00111111.
0002
0001
0003
0004
Acumulador
?
~
Después de la operación OR
()O(M!
Registro temporal (en CPU)
1"­
Señalizador de cero
Si acumulador - OOH, entonces señalizador de cero - l
Si acumulador # OOH, entonces señalizador de cero - O
Figura 4.13.
Mcm
La instrucción OR.
200(
4.83. Acudir a la Figura 4.13. El señalizador de cero estará a _ _ (1, O) después de la operación ORo
Res. a l.
4.84. Los señalizadores son parte de un código de condición especial o registro _ _ que se encuentra en
la ALU de la unidad central de tratamiento de una microcomputadora.
Res. de status.
www.FreeLibros.me
2001
'.
FUNDAMENTOS DE LAS MICROCOMPUTADORAS
ICTOprocesador.
97
.&.15. El contador de programa de la CPU sigue la pista ~ (de la dirección, del tiempo) de la siguiente
instrucción del programa que se va a ejecutar.
Res. de la dirección.
I
Ián siempre asociadas
í
..... Durante la etapa de búsqueda, un _ _ (código de op, operando) es leído de la memoria de progra­
ma y transferido al registro de instrucción de la CPU.
Res. código de op.
/
467. Durante la etapa de decodificación, el decodificador de la instrucción en la _ _ (CPU, memoria
:enamiento temporal
l
,e
"
lar instrucciones a la
L
de programa) interpreta el código de op que actualmente reside en el registro _ _ (de instruccio­
nes, temporal).
Res. CPU de instrucciones.
..... Acudir a la Figura 4.14a y b. ¿Cuál es el contenido binario del acumulador de la CPU en la Figu­
ra 4.14b después de la operación ANO?
Res. 00000000 2 ,
Memoria de programa
DCIar eventos, que se
Dirección Contenidos
(hex)
(hex)
.(interfaz, micropro­
0000
L
de la opcmción
84
0001
00
Instrucción I-AND lógica del operando OOH con el conteni­
do desconocido del acumulador de la CPU
0002
4C
Instrucción 2-INCREMENTA el acumulador
0003
B7
0004
20
0005
01
Instrucción 3-ALMACENA (STORE) el contenido del acu­
mulador en la posición 200IH de la memoria de datos
0006
IiIdor de cero - 1
liIdor de cero - O
I
I~~
I
1 Memoria de datos
2000
• operación ORo
2001
L
se encuentra en
2002
(a)
Segmento de programa
Figura 4.14.
www.FreeLibros.me
98
FUNDAMENTOS DE LOS MICROPROCESADORES
I
Acumulador
Acumulador
4.94.
Acudir a la f
es _ _ .
Res. 4CH.
4.95. Acudir a .. f
es _ _ .
Memoria de programa (000 l H)
I
Res.
(b)
Acumulador
~
Antes de la Instnlttión
La instrucción ANO
.
I
2~e/
?
I
87H..
datos.
Acumulador
Despun de la instruccl6n 2
a
Incrementa
(e)
La instrucción incrementar
?
Acumulador
Antes de la InslnlCdóB 3
.
Acumulador
Después de la instrucción 3
Memoria de datos
(d)
La instrucción de almacenar directo
Figura 4.14. (continuaciÓn).
.,1
"
l
J
¡
~.A
,1
.
.¡
~~;t
.,
~
:1
.j
4.89.
Acudir a la Figura 4.14a y c. El contenido binario del acumulador de la CPU en la Figura 4.14c
después de la operación de incrementación es _ _ (8 bits).
Res. 0000000 12,
4.90.
Acudir a la Figura 4.1 la y d. ¿Cuál es la dirección hexadecimal de la posición de la memoria de datos
mostrada en la Figura 4.14d?
Res. 2001H.
~
I
4.91.
Acudir a la Figura 4.14a y d. El contenido binario de la posición de la memoria de datos mostrada en
la Figura 4.l4d después de la operación de almacenar es _ _ (8 bits).
Res. 00000001 2,
4.92.
Acudir a la Figura 4.14a. ¿Qué dos posiciones de la memoria de programa contienen las direcciones
de la operación de almacenar?
Res. 0004H y ooo5H.
4.93. Acudir a la Figura 4.14a. El código de op para la instrucción 1 es _ _ (hex), mientras que el
operando es _ _ (hex).
Res. 84H, OOH.
www.FreeLibros.me
.#} ,
FUNDAMENTOS DE LAS MICROCOMPUTAOORAS
99
.t.94. Acudir a la Figura 4.140. El código de op para la instrucción 2 es _ _ , mientras que el operando
es _ _ .
Res. 4CH, no existe operando en la instrucción de incrementar.
4.95. Acudir a la Figura 4.140. El código de op para la instrucción 3 es _ _ , mientras que el operando
es _ _ .
Res. B7H, combina un operando de 2 bytes para formar la dirección 2001H de la memoria de
datos.
IIa Figura 4.14c
Lria de datos
l
m"""'da en'
las direcciones
ientras que el
www.FreeLibros.me
1
Capítulo 5
Líneas de COllt,.,
La mayoría de le
tes líneas de con
EL MICROPROCESADOR
5.1. CARACfERISTICAS COMUNES DE LOS MICROPROCESADORES
Un microprocesador puede definirse brevemente como una pastilla de muy alta escala de integra­
ción (VLSI), que realiza las tareas de la unidad central de tratamiento de una microcomputadora
u otro sistema de control automático. Lo que sigue es un esbozo, abreviado, de las características
principales compartidas por casi todos los microprocesadores de 8 y 16 bits. Este listado sirve para
dar al estudiante una visión general de las características más importantes de los diversos micro­
procesadores.
Conexiones de alimentaci6n
Los microprocesadores (excepto el 8080) requieren una fuente de alimentación regulada de
5 Vdc.
TlUlUJílo en bits
Líneas tI.
Líneas di
Líneas d~
Líneas di
Líneas di
6. Líneas d
7. Líneas d
l.
2.
3.
4.
5.
Regiltro, inte,.
Contador de prc
la siguiente ¡nSl
anchura del bw
microprocesado
Acumulador
veces a las Opel
6502 tienen tO(
registros de pro!
Registro de
Los bits indi"id
res se asocian. 1
bifurcación pos
Registros dt
Los microprocesadores se clasifican normalmente en unidades de 4,8, 16 Ó 32 bits. El tamaño en
bits de un microprocesador a veces se denomina tamaño de palabra. La longitud del registro
acumulador es una buena pista para conocer el tamaño de palabra de un microprocesador. Los
microprocesadores 8080/8085,6800,6502 y Z80 son de 8 bits. Los 8086, 8088, 68000, 65816 Y
Z8000 son MPU típicas de 16 bits. El 80386, 68020,32000 y Z-8()()()() son ejemplos de micropro­
cesadores avanzados de 32 bits.
cenar datos tetl
tarea específica.
funcionar com<
16 bits habitual
dores.
Registro ;,.
Líneas de datos
cuando se utili
Los registros de
Z8000 y 68000
Los microprocesadores transfieren datos e instrucciones entre la MPU y memoria (o E/S) vía un
bus de datos bidireccional. El 6800, 6502, Z80 y 8088 son procesadores que utilizan buses exter­
nos de datos de 8 bits. Muchos miembros de la familia 8080 multiplexan direcciones o informa­
ción de control en las líneas de datos parte del tiempo.
pista de la sigUI
RAM utilizad.<¡
registros. La pi
Líneas de dirrecl611
Modos de dire
Los microprocesadores más antiguos (8080/8085, 6800, 6502) utilizan buses de dirección de
16 bits que pueden direccionar solamente 2 16 ó 64K de memoria. Las MPU más modernas de
16 bits tienen buses de direcciones de 16, 20 ó 23 bits. Un bus de direcciones más ancho permite
direccionar memorias mayores.
Un modo ded
ejecución de u
modos de dire
Registro de.
1. Mod<l
2. Mod<1
100
www.FreeLibros.me
I
t
EL MICROPROCESADOR
)ítulo 5
UMtu
101
tú co"trol
La mayoría de los microprocesadores se caracterizan porque tienen todas o algunas de las siguien­
tes líneas de control:
l.
2.
3.
4.
5.
6.
7.
)ORES
Líneas de reloj.
Líneas de lectura/escritura.
Líneas de entrada/salida.
Líneas de interrupción.
Líneas de reinicialización.
Líneas de control del bus.
Líneas de status del ciclo.
Registros i"ternos
Contador de programa. El contador de programa (PC) es el registro que contiene la dirección de
lCaIa de integra*
rocomputadora
5 características
stado sirve para
diversos mícro*
la siguiente instrucción del programa. La longitud del contador de programa es igual que la
anchura del bus de direcciones. El contador de programa normalmente contiene 16 bits en los
microprocesadores de 8 bits pero es mayor en las MPU de 16 y 32 bits.
Acumulador. El acumulador es el registro o registros asociados a las operaciones de la ALU ya
veces a las operaciones de E/S. Puede ser de 8, 16 ó 32 bits. Las MPU del 8080/8085, 6800 Y
6502 tienen todas acumuladores de 8 bits. Algunos procesadores (68000 y Z8000) tienen sólo
registros de propósito general que pueden ser utilizados como acumuladores.
Registro de status o señalizadores. El registro de status está en todos los microprocesadores.
Los bits individuales del registro se denominan señalizadores. Las condiciones de los señalizado­
res se asocian, generalmente, a las operaciones de la ALU y son utilizados por instrucciones de
bifurcación posteriores para tomar decisiones.
Registros de propósito general. Los registros de propósito general pueden utilizarse para alma­
cenar datos temporalmente o para que contengan una dirección. No tienen asignada ninguna
tarea específica. En los microprocesadores de 8 bits, los registros de propósito general no pueden
funcionar como un acumulador en la ALU y en operaciones de E/S. Sin embargo, las MPU de
16 bits habitualmente permiten que los registros de propósito general se utilicen como acumula*
dores.
Registroindice. El registro índice se utiliza para que contenga la dirección de un operando
cuando se utiliza el modo de direccionamiento indexado (8080/8085, 6800, 6502, Z80, 8086).
Los registros de propósito general son utilizados como registros índice en los microprocesadores
Z8000 y 68000.
Registro del puntero de pila. El puntero de pila (SP) es un registro especializado que sigue la
pista de la siguiente posición de memoria disponible en la pila. La pila es un área reservada de la
RAM utilizada para almacenamiento temporal de datos, direcciones de vuelta y contenido de
registros. La pila se utiliza durante las llamadas a subrutina y durante las interrupciones.
l
regulada de
Lamaftoen
lid del registro
rocesador. Los
8000,65816 Y
s de micropro­
l
(o E/S) vía un
buses exter­
!leS a informa*
ID
Jdirección de
modernas de ,~
Dcha permite
Modos de direccio"amie"to
Un modo de direccionamiento es la técnica utilizada para buscar el operando deseado durante la ,
ejecución de una instrucción. Los microprocesadores individuales pueden no utilizar todos los
modos de direccionamiento listados a continuación:
l. Modo de direccionamiento inherente (implícito).
2. Modo de direccionamiento inmediato.
Q
r
www.FreeLibros.me
102
FUNDAMENTOS DE LOS MICROPROCESADORES
3.
I
I
J
I
Modo de direccionamiento extendido o absoluto.
5.6.
4. Modo de direccionamiento de registro.
5. Modo de direccionamiento indirecto de registro.
6.
7.
8.
9.
Modo
Modo
Modo
Modo
10. Modo
11. Modo
12. Modo
13. Modo
/
El regiS1
prograrr
Soluciólt
El co
de direccionamiento índice.
de direccionamiento de página cero (directo).
de direccionamiento relativo.
de direccionamiento basado.
de direccionamiento basado en índice.
de direccionamiento de cadena.
de direccionamiento de E/S.
de direccionamiento de status de registro.
5.7.
Los bits
mente _
Solución:
Losb
¡¡zadores.
Generalmente, los microprocesadores más modernos de 16 bits tienen modos de direccionamien­
to más potentes y flexibles.
5.2. DES<X
PROBLEMAS RESUELTOS
S.I.
Los folletos so!l
hojas de datos e
función de ~
descripción de I
junto al repertOI
que utilizan el II
El micropnx
línea con 40 par
tran dos tipos (
plástico, mientn
mico del micro¡:
dores vienen tan
ser empaquetad.<
En las Figunl
patillas. Observa
el CI DIP plástic
estas marcas de
izquierda es la I
numeran entone
cuando éste se 11
Un diagram
microprocesadOl
doro El diagrama
cesador Inte) 80l
ciÓn. Las patilla!
fases. Las patilla:
otras salidas). sq
(Do -D7) son las
16 bits se debe '
WAIT, WR. HL
sistema. Otras e
Casi todos los microprocesadores requieren una fuente de alimentación regulada
de _ _ Vdc.
Solución:
Todos los microprocesadores (excepto e180SO) requieren una fuente de alimentación regulada de
5 V dc.
5.2.
El 8080/8085, 6800, Z80 y 6502 son todos ejemplos de microprocesadores de _ _ bits.
Solución:
El 8080/8085, 6800, Z80 y 6502 son todos ejemplos de microprocesadores de 8 bits. Todos
tienen acumuladores de 8 bits.
S.3.
'¡:.;­
La mayoría de los microprocesadores de 8 bits utilizan buses de datos de _ _ (8, 16)
bits para transferir datos e instrucciones a y desde memoria (o E/S).
Solución:
La mayoría de las MPU de 8 bits utilizan líneas de datos de 8 bits.
I
5.4.
La mayoría de los microprocesadores de 8 bits utilizan buses de direcciones. de _ __
(8, 16, 20) bits.
Solución:
La mayoría de los microprocesadores de 8 bits utilizan buses de direcciones de 16 bits. El bus de
16 bits direccionará 2 16 Ó 64K de memoria.
5.5.
La línea de control_ enVÍa un mensaje desde la MPU a la RAM, indicando a la
RAM si el acceso a memoria es una operación de lectura o escritura.
Solución:
La línea de control de lectura/escritura de la MPU señala la RAM si el acceso a memoria es una
operación de lectura o escritura.
www.FreeLibros.me
•
EL MICROPROCESADOR
5.6.
103
El registro interno de la MPU que ~ontiene la dirección de la siguiente instrucción del
programa es el ___ .
Solución:
El contador de programa contiene la dirección de la siguiente instrucción de memoria.
\
'5.7.
Los bits individuales del registro de status de un microprocesador se denominan común­
mente _ _ .
Solución:
Los bits individuales del registro de status del microprocesador se denominan comúnmente seña­
Iizadores.
le direccionamien­
5.2. DESCRIPCIONES DE LA HOJA DE DATOS
:ntación regulada
~ntación
regulada de
~
es de _ _ bits.
l
de 8 bits. Todos
i
de _ _ (8, 16)
I
clones. de _ __
1: 16 bits. El bus de
l
. mdicando a la
I
memoria es una
Los folletos sobre microprocesadores específicos contienen varias características comunes. Las
hojas de datos contienen información sobre el empaquetamiento del el, diagramas de patillas y
función de cada patilla del el. El esquema de la arquitectura de la epu aparece junto a una
descripción de las características más importantes. Los diagramas de temporización aparecen
junto al repertorio de instrucciones del procesador. La hoja de datos también esboza los sistemas
que utilizan el microprocesador.
El microprocesador está ubicado normalmente en un circuito integrado encapsulado en doble
línea con 40 patillas (40-pin dual-in-line package) (el OIP 40 patillas). En la Figura 5.1 se mues­
tran dos tipos de encapsulado. El DIP de 40 patillas de la Figura 5./a está encapsulado en
plástico, mientras que el de la Figura 5.1 b utiliza una base cerámica. El empaquetamiento cerá­
mico del microprocesador se aconseja para operaciones a altas temperaturas. Los microprocesa­
dores vienen también empaquetados con 28,42, 50 Y 68 patillas. Las unidades mayores pueden
ser empaquetadas en portadores de pastillas planos más modernos montados en superficie.
En las Figuras 5.1 e y d se detallan dos métodos para determinar la patilla 1 del el DIP de 40
patillas. Observar la muesca central y la ranura longitudinal que sirven como marcas de índice en
el el OIP plástico de la Figura 5.1c. Inmediatamente en sentido contrario a las agujas del reloj, de
estas marcas de índice, está la patilla 1 del el. En la Figura 5.ld, el punto en la parte inferior
izquierda es la marca índice para mostrar qué terminal del el es la patilla l. Las patillas se
numeran entonces en modo creciente, en sentido contrario a las agujas del reloj, en tomo del el
cuando éste se mira desde la parte superior.
Un diagrama de patillas, como el de la Figura 5.2a, se incluye en las hojas de datos del
microprocesador. El fabricante detalla además el nombre y uso de cada patilla del microprocesa­
dor. El diagrama de patillas y las breves descripciones de la Figura 5.2 corresponden al micropro­
cesador Intel 8080. Observar que las patillas 2, 11,20 y 28 son patillas de la fuente de alimenta­
ción. Las patillas 15 y 22 (01, 02) son las entradas de reloj de un circuito de reloj externo de dos
fases. Las patillas 3 a 10 del el 8080 son bidireccionales (significa que unas veces son entradas y
otras salidas), según indican las direcciones de las flechas de la Figura 5.2a. Estas patillas de datos
(Do -0 7 ) son las ocho conexiones al bus de datos del sistema. El bus de direcciones del sistema de
16 bits se debe conectar a las salidas de dirección Ao a A15' Otras seis salidas (SYNC, DBIN.
WAIT, WR, HLDA e INTE) llevan las señales de control y temporización a las demás partes del
sistema. Otras cuatro entradas (READY, HOLD, INT y RESET) son entradas de control que
I
www.FreeLibros.me
,"~
,
104
FUNDAMENTOS DE LOS MICROPROCESAOORES
,
\
(a)
Microprocesador DIP plástico de 40 patillas
Indice
®--/4
..
(b)
Microprocesador DIP plástico de 40 patillas
Punto
índice
@
EZ::::::::::::::::I
o
..
@
~--~--------------------~21
Nombre de PI
0------------------··@
(Vista superior)
(Vista superior)
(e)
Numeración de las patíllas del CI DIP
plástico de 40 palíllas
(d)
Numeración de las patillas en el el DIP
cerámico de 40 patillas
Figura 5.1.
GND. +5 V.­
01,02
Do-D,
Ao-Au
SYNC
DBIN
WAIT
I
WR
comparten la información con otras partes del sistema. La tabla de la Figura S.2b da detalles
adicionales sobre cada patilla del microprocesador Intel 8080.
Una hoja de datos típica también debe incluir un diagrama de la estructura del microprocesa­
dor. La Figura 5.3a muestra un diagrama de bloques del microprocesador Intel 8080. El diagrama
de la CPU de la Figura 5.3a del microprocesador 8080 muestra los registros internos, incluyendo
el acumulador, B y e, D y E, H y L, puntero de pila, registro de status (señalizadores) y algunos
registros temporales. El diagrama de bloques también muestra el registro de instrucción y el
decodificador de instrucciones, así como la sección de control y temporización. El diagrama de la
CPU 8080 también muestra la ALU y los señalizadores asociados y el bloque de ajuste decimal en
la Figura 5.3a. Las ocho entradas/salidas de datos así como las salidas de dirección de 16 bits
tienen butTers. La CPU del 8080 también contiene muchas líneas de control internas, caminos de
datos y buses.
Algunas hojas de datos contienen también un resumen de los registros de la CPU que son de
interés para el programador. La Figura 5.3b muestra los registros del 8080 que utiliza el progra­
mador. Observar que el registro principal es el registro A, o acumulador. Los registros B y e, D y
E, y H y L son unidades de propósito general. El puntero de pila, contador de programa y
sefializadores son registros especializados. El registro par l/L también puede utilizarse como
registro de direcciones.
www.FreeLibros.me
~I
HLDA
lNTE
READY
t
HOLD
lNT
.
REINICTA[
(RESET
Las hojas do
ciones entre la:
entradas/salida
esquemas que 1
basado en el 80
interfaces de I<J
EL MICROPROCESADOR
A"
A"
40
39
38
Al)
37
A"
o
o
36
3~
INTEa='
8080
HOlO
.NT
ro de 40 patillas
4>,
A.
JJ
32
A.
JI
As
30
29
28
21
A,
Al
t11V
A,
26
...
WA1T
24
READV
23
<1>,
22
HlOA
2'
(a)
-----lllo...,@
Si
en el CI DIP
las
S.2b da detalles
el microprocesaEl diagrama
nos. incluyendo
~~res) y algunos
... ,trucción y el
I diagrama de la
juste decimal en
cción de 16 bits
nas. caminos de
::PU que son de
ltiliza el progra­
"ros B y e, D y
de programa y
utilizarse como
I
• U
I
Caja.
A,So
A,
34
2~
-----1(0
105
Diagrama de patillas para el microprocesador Intel 8080
(Cortes[a de [mel Corporation)
Nombre de patilla
Propósito
Entrada o salida
GND, +5 V, -5 V, +12 V
01,02
Do-DI
Ao-A 1S
SYNC
DBIN
WAIT
WR
HLDA
lNTE
READY
HOLD
lNT
REINICIALlZACION
(RESET)
Conexiones de la fuente de alimentación
Señales de reloj
Líneas de datos
Líneas de dirección
Sincronizador
«Strobe» de dato de entrada
MPU en estado de espera
.,.-"
«Strobe» de escritura
Conocimiento de mantenimiento
Conocimiento de interrupción
Entrada estable de datos
Petición de mantenimiento
Petición de interrupción
Entradas
Entradas
Bidireccional
Salidas
Salida
Salida
Salida
Salida
Salida
Salida
Entrada
Entrada
Entrada
(b)
_o,
Reinicialización de la MPU
Entrada
Funciones de patilla para el microprocesador Intel 8080
Figura 5.2.
Las hojas de datos contienen diagramas de temporización elaborados que muestran las rela­
ciones entre las entradas de reloj y otras señales externas (sync, escritura. salidas de dirección,
entradas/salidas de datos, etc.) así como operaciones internas. El fabricante también incluye
esquemas que ilustran cómo se utiliza el procesador en un sistema mínimo. Un sistema mínimo
basado en el 8080 puede incluir el microprocesador, reloj, controlador del sistema, RAM, ROM e
, interfaces de los puertos de entrada/salida.
..
www.FreeLibros.me
,
111,
Ii
¡
'!I¡: j!I"
l
106
FUNDAMENTOS DE LOS MICROPROCESADORES
n,
Do
IUS m OA1(8
BJ..OHtHTlONI\L
IIlRnlo!ióo
ACI
AIlC
AOC
ADD
ADD
""""
IVS INTERNO ~ DATOS
ADI
.
ow
o
",
REti
'"
<:
REG
011
oro,
REO
'"
ANA
ANA
ANI
L
IlflJ.
PUNTERODf. t'tt..A
CON'fADOll DE PROORANt.
,"
'"
........
o"",""",
mil
U6l
01
CMA
~I
--.. .
.....-.
~_
+) '1/
~'v
GND
REO
M
DATO
I
I
•
(
,
I
I
(
,
I
)
cr
REO
M
EllQ,
EllQ.
ElIQ,
ETIQ.
DATO
EllQ,
ElIQ,
llM
00l
RP
OCR
REG
OCR
M
[)(J(
RP
CNC
ePI
CPO
Al.IMENTAOON
I
]
Ole
CMP
OIP
(fE
,....--... +tl v
lo!
M
DATO
EllQ
ElIQ,
ETIQ,
CNZ
CP
PUfN'T'ES Dl
e
REO
cm
ce
'"
DATO
REO
I
••
G
I
•
I
I
ti
JI
••
I
•
I
DI
(a)
Diagrama funcional de bloques del microprocesador lntel 8080 (Corles{a de ¡me! Corporation)
dores
A
B
C
D
E
H
L
Acumulador
•
J!I(
N
11
I'E
JIO
Il
I.I:M
Puntero de pila
.
~
Contador de programa
PORT
•
REO
lo!
.:
Registros generales;
usados como registros de
8 bits o como registros
pares de 16 bits
~
II.T
11
111
111
IIIX
8 bits
:'}eftalJza­
El
RP
ETIQ,
ETIQ,
EllQ,
EllQ.
EllQ,
ETIQ,
ETIQ,
EllQ.
EllQ.
!OC(
IlIRfL
Ir
:''IUl
rmr
t,
l'
>, ~
1-'1
•
:1
.............
- ... ,xoclo ........
16 bits
(b)
Registros de programación de la CPU dellnte18080
~*"""*."
:..."<IlInI • ......",.
:=n.EJS
Figura 5.3.
Las hojas de datos del fabricante también contienen información detallada sobre el repertorio
de instrucciones de'! microprocesador. El resumen del repertorio de instrucciones para los micro­
procesadores Intel 8080/8085 se muestra en la Figura 5.4. El Intel 8085 es una versión actualiza­
da del microprocesador 8080 y utiliza casi el mismo repertorio de instrucciones. El procesador
8085 se estudiará con más detalle en los Capítulos 10 Y 11.
www.FreeLibros.me
,,1
-,"".'
I
• :..:m..CIO_
~lurt,xEJS
)o,~
..... 0 .......
107
EL MICROPROCESADOR
IIISlrIa:ÍIÍI
1('1
~
~
WD
WD
WI
/
\.I;A
m:;
T'f\4P
m;¡
~A
'"
\.1;1
C>J.l.
'"
('(
!t,
CM
"""
(j)
~
., '"
(1,(A
AftftAY DE
fttrotsnOS
l)I(
(16)
[\,Ip
m;
(16)
CMP
C'IC
C1'
C1'E
M
ETlQ.
ETlQ.
ETlQ.
ETIQ.
C1'I
DATO
CI'O
ETIQ
ElIQ.
...
e
DATO
REG
M
REG
M
DATO
REG
M
DATO
ETlQ.
ETlQ.
ETlQ.
c:sz
116'
cr
""1
1lAA
L
~ Corporation)
DUl
OCR
OCR
OCX
DI
El
IIl.T
RP
l)i
PORT
REG
M
RP
ETlQ.
ETlQ.
ETIQ.
ETIQ.
ETlQ.
ElIQ.
EllO·
EllO·
EllO·
DIREC.
RP
DIREC.
lS..
I"íR
l"X
r
;'1
:'IP
.X
:'V.
;p
:PE
.'/O
::z
~
! ..DU
_"lO
REG
M
RP
Cidil"
CE dato
IIXIJ ISSS
lE
IIXIJIlSSS
86
C6dalO
IOIOIlSSS
A6
E6 dalO
COd....
OCd....
Fe di",.
lF
3F
1011lSSS
BE
IJ4dí",.
C4dí",.
F4dí",.
EC dí",.
FE dalO
E4d,,,,.
CCdí",
)1
ooRP 1001
OOSS SIOI
35
ooRP 1011
FJ
FB
'6
00"'110
SIrO
J4
OORPOOII
DAd,,,,,
FA dím:,
C3dím:.
01 dím:
C2 d,m:.
Fl d,m:.
EA dí,.""
E1di,.""
CAd,m:
lA di",.
IXIJX 1010
2.... dírec,
m
BJIIS
1
1
1
1
1
1
1
1
1
J
J
J
1
1
1
1
3
J
3
3
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
J
3
3
3
3
3
J
1
1
1
:
...
......... T
MeSA 8()!(lA
1
7
4
1
4
1
4
1
4
4
1
1
4
J
J
J
J
18
9118
9/18
17
11/11
11/11
4
4
4
4
4
7
11117
11/11
11/11
J
4
J
9/18
9/18
9/18
9/18
7
9/18
9/18
4
10
,
llfll
10
6
11117
11117
4
10
5
10
5
4
4
4
4
l
10
7
10
í
10
5
10
10
10
10
10
10
10
10
10
4
4
10
6
l/lO
1/10
10
7!1O
7¡10
'/10
'/10
1¡1O
1¡10
Il
1)
16
7
16
,
CiClos
Il1!InI<tión
FR
FR
SRRWW'
SRa¡SRRWW'
SRa¡SR RWW'
F
F
F
FR
SRtSUWW'
S RaS RRWW'
S RaS RRWW'
SRas RRWW'
FR
SRas RRWW'
SRaSRRWW'
F
FOO
FRW
S'
F
F
FB
FRl
F'
FRW
S'
FRjFU'
FRíFRR'
FRR
FR;FR R'
FR!FRR'
FRJF RR'
FRJFRR'
FRIFRR'
FR/FRR'
FRRR
FR
FRRRR
Byle5
EmdosT
Cirio!
maquina
MeSA 8Oi0A
Fl
F
FR
F
FR
FR
F
F'
CooíSU
RP, DATOl6
LXI
MOV REG,REG
MOV M.REG
MOV REG.M
MVI
ROO.DATO
MVI
M.DATO
NOP
ORA
REO
ORA
M
DATO
ORI
OUT
PORT
I'CHL
POP
RP
PUSH RP
RAL
lAR
Re
RET
RIM (.SA sóIol
RLC
RM
RN(
RNZ
Rr
RPE
RPO
RRe
N
RSi
RZ
SBB
REG
SBO
M
DATO
S81
SHlO DIREC
SlM (8Oií~ sólo)
SPHL
DlREC
SH
snx RP
SIC
SUB
REG
SUB
M
DATO
SUI
XCHG
XRA
REG
XRA
M
XRI
DATO
XTHl
OORPIXIJI darol6
0100 DSSS
J
10
10
FRR
1
4
j
F'
Olll~
I
1
,
1
01000110
0000 DIlO dalO
36 dala
00
10111lSSS
B6
F6 dalO
Dldal!>
E9
11 RP IXIJI
11 RP 0101
FW
FR
FR
FR W
F
F
FR
FR
FRO
S'
FU
SWW'
F
F
s¡s RR'
FRR
F
F
S.IS Rl'
SiS RR'
SiS RR'
SiS RR'
s¡s RR'
S¡S RR'
F
SWW'
S!S RR'
F
FR
FR
FRRWW
F
S'
FRR W
FW
F
F
FR
FR
F
F
FR
FR
FRRWW
17
IF
08
C9
10
01
R
DO
ro
FlI
E8
EO
OF
11 XX XIII
C8
1001lSSS
9E
DEdal!>
21 din<;.
JO
F9
12_
IXIJXOOIO
31
1001 !lSSS
%
D6dalo
EB
1010 I$SS
AE
EEdalO
El
1
7
1
1
)
2
10
10
I
4
4
I
I
1
1
1
1
J
4
4
1
1
10
I
I
I
10
6
10
12
4
1
4
4
I
6/11
10
íill
1
1
4
4
I
I
I
I
I
I
6112
6/11
I
6f1l
6112
6112
6/12
j
10
11
4
10
4
5111
5:!1
5ill
5/11
1/11
5{11
4
11
I
4
I
12
6il2
5111
4
4
1
1
16
7
1
16
1
1
I
2
1
1
1
J
1
1
1
1
1
I
1
1
1
1
4
6
Il
1
4
4
,
1
4
4
J
1
16
1
Il
J
4
4
J
1
4
4
1
1
18
-_do Ciclo máquina
..
\
sobre el repenone'
lllisqueda de instr. de cuatro periodos di! reloj
&!Queda de instr. de ~i! periodo! di! reloj
ltcrura de memoria
ltc1ura de E./S
Escritura en memoria
Esentura de E/S
Bu! desocupado
Variable o digl10 binario opcional
DIJítos binarios que idl!ntifican un "'Sistro destino
B-rol. C-OOI. 0-010 Mmori.·11O
E-OII. H-IOO.l-IOI A-III
Dí¡iIO! binariO! que idenlifican un re¡¡SlrO fuente
Be-OO. HL-IO
RP
Resi sao par DE _01. SP _ 11
• Blísqueda de ,n!lruceión de cinco periodos di! reloj en 808OA.
t La lttuenCJa más larga del ciclo máquina se aplica de la evaluación de condición en el 808OA.
es. presenlaf1Í un ciclo extra de leclUra (READI-R- para esla condición en el 8080A,
000
SSS
es para los micro­
versión actualiza.
El procesador
Repertorio de ínstrucciones para los microprocesadores Intel 8080{8085 (Cortesía de lmel Corporalion)
les.
Figura 5.4.
I
te
SI
iW
-
www.FreeLibros.me
108
I
· . • .• ,.1,:.•
ti
,
•
<-;
FUNDAMENTOS DE LOS MICROPROCESADORES
Considerar las primeras instrucciones del 8080;8085 de la Figura 5.4. La instrucción «suma
con arrastre inmediato» se simboliza con el nemotécnico especial de Intel: ACI. El código de op
para la instrucción es CEH, como muestra la segunda columna (<<Código)). La tercera columna
(<<Bytes))) indica el número de bytes de memoria del programa que necesita la instrucción. La
~ tabla muestra que la instrucción ACI requiere 2 b)1eS del espacio de memoria de programa; la
primera posición contendrá el código de op CEH, mientras que la segunda posición de la memo­
ria del programa contendrá el número que se va a sumar: el dato o el operando. La columna de
«Estados T)) muestra la duración relativa del tiempo que tarda en ejecutarse la instrucción. La
columna derecha de la tabla se refiere a las operaciones externas básicas que la CPU está realizan­
do. En este caso la F significa búsqueda normal de la instrucción desde la memoria de programa,
mientras que la R significa lectura de memoria. Resúmenes del repertorio de instrucciones como
el de la Figura 5.4 son extremadamente valiosos para la persona que deba programar un sistema
microcomputador basado en el 8080. También se incluyen en el manual de datos detalles adicio­
nales de cada instrucción.
PROBLEMAS RESUELTOS
5.8.
Citar al menos cinco cosas que contenga la hoja de datos de un microprocesador típico.
Solución:
La hoja de datos de un microprocesador típico puede contener información sobre empaqueta­
miento del CI, diagrama de patillas, nombre y función de cada patilla del CI, organización o
arquitectura del microprocesador, diagramas de tiempo, repertorio de instrucciones y sistemas típi­
cos que utilizan el procesador.
5.9.
Cuando se mira desde arriba, la patilla I está inmediatamente a continuación ___ (en
el sentido de las agujas del reloj, en sentido contrario de las agujas del reloj) de la marca
índice en un CI DIP.
Solución:
Acudir a las Figuras S. te Yd. Cuando se miran desde la parte superior, la patilla I está inmedia­
tamente a continuación, en sentido contrario a las agujas del reloj. la marca índice.
5.12. Acudir
microp:
SoluciÓII
Segú
5.13. Acudir
CPU di
Soluciól
Segu
B.
C.
D
registro
5.14. Acudir
Soluciól
Segil
derecha
5.15. Los ser
de inst:
SoluciGI
Los
5.16. Acudir
es ADl
Soluciíl
scp
op del I
5.17. AcudiI
ria del
Soludt
5.10. Acudir a lí:l Figura 5.2. Las patillas Do a D7 del CI 8080 son líneas de datos _ _ (de
entrada, de salida, bidireccionales) que están conectadas al bus de datos del sistema.
Solución:
De acuerdo con la Figura 5.2, las patillas Do y D7 en el CI 8080 son líneas de datos bidireccio­
nales.
il.·.;,..'
P'
5.11. Acudir a la Figura 5.2. ¿Qué salida del microprocesador 8080 estará activada por un nivel
BAJO durante la operación de escritura?
Solución:
Según la Figura 5.2b. la salida WR será activada por un nivel BAJO para indicar a un dispositivo
de memoria del sistema que el dato se va a escribir en memoria.
'.
I
;.1
5.18. Acudi
través
tura).
Soluri
Sei
que la
La Fe
la R s
j
www.FreeLibros.me
l"',,·,
Seg
suma i
I I.
I~ • • • • • •
EL MICROPROCESADOR
bstrucci6n «suma
1. El código de op
1 tercera columna
la instrucción. La
1 de programa; la
ción de lé;! memo­
¡). La co1umna de
la instrucción. La
:pe está realizan­
:>rÍa de programa.
strucciones como
ramar un sistema
I)S detalles adicio­
109
5.12. Acudir a la Figura 5.2. ¿Qué tensión suministra la unidad de alimentación que utiliza el
microprocesador 8080?
Solución:
Según la Figura 5.2, el 8080 requiere tensiones de alimentación de -5, +5 y + 12 V.
5.13. Acudir a la Figura 5.3b. Citar como mínimo seis registros de uso general localizados en la
CPU del 8080.
Solución:
Según la Figura 5.3b, los registros de propósito general de 8 bits de la CPU 8080 son los registros
B, C, D. E. H Y L. Aunque no esté etiquetado como tal, el acumulador también se considera un
registro de propósito generaL
5.14. Acudir a la Figura 5.30. El registro contador de programa contiene _ _ bits.
Solución:
Según la Figura 5.3a, el contador de programa contiene 16 bits (observar el pequeño 16 a la
derecha del bloque contador de programa).
IOCeSador típico.
5.15. Los señalizadores (registro de status) están asociados con ___ (la ALU, el decodificador
de instrucciones).
sobre empaqueta­
Solución:
Los señalizadores están más asociados con la ALU.
::1. organización o
!leS
y sistemas típi­
ación _ _ (en
~oj) de la marca
l,"'"
¡nmedia.
te.
5.16. Acudir a la Figura 5.4. El nemotécnico de Intet para la instrucción de «suma inmediata)}
es ADI. El código de op del 8080 para la instrucción ADl es _ _ (hex).
Solución:
Según la Figura 5.4. el nemotécnico para la instrucción «suma inmediata» es ADI y el código de
op del 8080 es C6 16 •
5.17. Acudir a la Figura 5.4. La instrucción ADI necesitará _ _ (un número) bytes de memo­
ria del programa.
Solución:
Según la infonnación de la columna «Bytes» de la Figura 5.4, la instrucción ADI (instrucción de
suma inmediata) necesitará 2 bytes de memoria de programa.
datos _ _ (de
del sistema.
~
datos bidireccio­
L
por un nivel
r a un dispositivo
•
I
~I
,I
5.18.
Acudir a la Figura 5.4. Durante la ejecución de la instrucción ADI, la CPU del 8080 va a
través de un ciclo máquina de búsqueda de instrucción y un ciclo de ___ (lectura, escri­
tura).
Solución:
Según la información de la columna «Ciclos máquina» de la Figura 5.4, la instrucción ADI hace
que la CPU vaya a través de un ciclo máquina de búsqueda de instrucción y de un ciclo de lectura.
La F en la columna «Ciclos máquina» significa un ciclo de búsqueda de la instrucción. mientras que
la R significa un ciclo de lectura de memoria.
www.FreeLibros.me
110
FUNDAMENTOS DE LOS MICROPROCESADORES
5.3. FUNCIONES Y DIAGRAMA DE LAS PATILLAS
En las siguientes secciones se examinará un microprocesador genérico algo más complejo. Este
microprocesador tendrá muchas de las características de las unidades reales. Por simplicidad se
han omitido muchas señales específicas de la MPU.
El diagrama de patillas del microprocesador genérico se muestra en la Figura 5.5a. La MPU
está ubicada en un DIP de 40 patillas. Este CI utiliza una fuente de alimentación de 5 V conecta­
da a las patillas 1 y 2. La utilización de fuentes de alimentación de +5 V parece lo más común en
los diseños más modernos de microprocesadores.
Las patillas XI y X 2 en la parte superior derecha de la Figura 5.5a son para conectarlas a un
cristal que regule la frecuencia de reloj de la MPU. Como es habitual en las unidades más
modernas, la circuitería de reloj se construye dentro de la pastilla microprocesadora, mientras que
los diseños más antiguos necesitaban un circuito generador de reloj separado. La salida CLK
(patilla 38) es una señal de reloj que se utiliza como reloj del sistema. La frecuencia de la salida
de CLK es probablemente menor que la del reloj interno.
El bus de direcciones del sistema se conectará a las patillas del CI etiquetadas AQ a A IS en la
Figura 5.5a. Estas 16 salidas de dirección pueden acceder hasta 65.536 (2 16 ) posiciones de memo­
ria y/o entradas/salidas.
El flujo de instrucciones y datos dentro y fuera del microprocesador pasa a través de las
patillas etiquetadas Do a D7 en el CI de la Figura 5.5a. Estas patillas (21-28) son bidireccionales, ya
que unas veces sirven como entradas y otras como salidas. En general, estas patillas de datos
también pueden ser colocadas en la condición de tres estados (estado de alta impedancia).
La patilla 30 del CI de la Figura 5.5a es la salida de control de escritura. Un nivel BAJO en la
patilla WR indica que el dato del bus de datos se va a grabar en la posición de memoria o E/S,
seleccionada. La salida de control de lectura está etiquetada RD (patilla 31) en el CI de la Figu­
ra 5.5a Un nivel BAJO en la patilla RD indica que se va a leer la memoria o el dispositivo de E/S,
seleccionado y que el bus de datos está disponible para transferir el dato leído. La lectura se
realiza cuando la señal RD está en el nivel BAJO.
La habilitación de la entrada de reinicialización en la Figura 5.5a hace que la MPU suspenda
su trabajo en el programa actual y bifurque a una rutina de inicialización. Un nivel BAJO en la
entrada Rl!JNttIALIZACION de la MPU pondrá en reiniciaHzación el contador de programa
con algún número predeterminado, como por ejemplo 000° 16 , Los demás registros internos de la
CPU también se pueden poner a cero o cambiar sus contenidos durante la operación de reiniciali­
zación. Cuando la entrada de REINICIALlZACION alcanza de nuevo el nivel ALTO (inhabilita­
do), la CPU comenzará a ejecutar instrucciones en la nueva posición de memoria 0000 16 (u olra
posición predeterminada de memoria). En esta posición de memoria comienza una rutina de
inicialización habitualmente almacenada en la ROM. La mayoría de las acciones del microproce­
sador se realizan en conjunción con el reloj, y por tanto se dice que son síncronas. La entrada de
RE/NICIALIZACION a la MPU es asíncrona y puede interrumpir y detener una instrucción a
medio ejecutar.
La entrada de petición de interrupción al microprocesador es la patilla 35 en la Figura 5.5a La
entrada INTR responde a un nivel ALTO de algún dispositivo externo. La Figura 5.6 ayudará a
demostrar lo que ocurre cuando la MPU responde a la señal de petición de interrupción. Suponer
que el circuito de interfaz de entrada de la Figura 5.6 tiene 8 bits en paralelo listos para transferir­
los a la MPU. El procedimiento puede seguirse a través de los números inscritos en los círculos de
la Figura 5.6 como se indica:
www.FreeLibros.me
alimen'
1
Nombre (
GND. l'
XI,X:
CLK
AQ-AI~
DQ-D
RD
WR
lNTR
RE/SIC
fRESE.
{~.
,
·I····'····?
EL MICROPROCESADOR
más complejo. Este
. Por simplicidad se
Fuente de
{
alimentación de + 5-V
GND
XI
v"c
x2
111
CLK
lota
5.5a. La MPU
ión.de 5 V conecta­
:e Id más común en
Ao
Al
lalasconectarJas
a un
unidades más
Al
I
Kiora. mientras que
do. La salida CLK
:uencia de la sa1ida
Bus de direcciones
A3
A4
As
A6
INTR
REINIC1A­
Reinicialización
LlZACION
RD
WR
)Siciones de memo-
As
Do
La a través de las
A9
D,
AtO
D2
Al!
D3
A¡2
D4
Ds
D6
D7
bidireccionales, ya
patillas de datos
impedancia).
11 nivel BAJO en la
le memoria o E/S,
D el el de la Figu­
dispositivo de E/S.
:ido. La lectura se
IS
la Figura 5.5a La
Ira 5.6 ayudará a
llpción. Suponer
IS para transferir­
en los círculos de
Lectura
Escritura
A7
actas Ao a A IS en la
la MPU suspenda
nivel BAJO en la
actor de programa
Iros internos de la
lCión de reiniciali­
!\LTO (inhabilita­
lria 0000'6 (u otra
tza una rutina de
:s del mícroproce­
as. La entrada de
ma instrucción a
Petición de interrupción
Al)
AI4
AI5
(a)
Bus de datos bidireccional
Diagrama de patillas para un microprocesador genérico
I
Nombre de patilla
Propósito
Entrada o salida
GND. Ve,
• ¡
Xi' Xl
CLK
Ao-A I5
Do-DI
RD
WR
INTR
REINICIALIZACION
(RESET)
Conexiones de la fuente de alimentación
Conexiones de cristal para el reloj interno
Señal del reloj
Bus de direcciones
Bus de datos
Control de salida
Control de escritura
Petición de interrupción
Entrada
Entradas
Salida
Salidas
Bidireccional
Salida
Salida
Entrada
Reinicializa el contador de programa
Entrada
1
(bJ Funciones de las patillas para un microprocesador genérico
. ¡
Figura 5.5.
www.FreeLibros.me
..• I 'I ', !I 1i¡i>i>II'III'I!~.i!III!Ill~~1 HIIIIUi• •_ _IIRIII_
.
'.,:¡;
i
l·.
112
.1
FUNDAMENTOS DE LOS MICROPROCESADORES
4. LaMPU
Interfaz
de entrada
contiene
direccíól
de senlc
20DE la
vuelva a
5. Antes d(
sacados
6. El conta
prograrn
INTR
MPU
I
RAM
Memoria del
programa principal
le~
2005 .. · .
~~
La interruJX
MPU para hace;'
o más interrupc
ción, reiniciado
5
2006 •• • .
"
1
I Memoria de programa
I
5.19. Acudir
de _ _
das a UII
4
Solución::
Segun
ría de rel.
5.20. Acudiri
es _ _
Solucióll:
LafH
Memoria de
lectura/escritura
(patilla 5
Figura 5.6. Pasos en el tratamiento de una entrada de petición
de interrupción al microprocesador genérico.
5.21. Acudir,
parte de:
Soluciéll:
La PI
1.
·l.
"
,
,
La interfaz de entrada envía una sefial de petición de interrupción a la MPU. Ver el
número 1 inscrito en el círculo de la Figura 5.6.
2. La MPU completa la instrucción que está ejecutando (instrucción de la posición de me­
moria 2006H).
3. Debido a que el control debe volver posteriormente a la instrucción 2007H, los conteni­
dos del contador de programa (ahora 2007H) y de la mayoría de los registros internos de
la CPU son introducidos en un área especial de la RAM denominada pila. Estos serán
devueltos posteriormente en el orden adecuado a los registros de la CPU y contador de
programa.
de una n
S.22. Acudir 1
habílítaJ
ga _ _
SoluciÓft
SegW
haciend<
CIO\ Ir
www.FreeLibros.me
1 1 1111
I
'11.11111111111111111.,1
1
EL MICROPROCESADOR
113
La 'Mpu ahora bifurca a una dirección predeterminada, de la memoria de programa, que
contiene un programa especial denominado rutina de servicio de interrupción (en la
dirección 20DO de este ejemplo). La MPU ejecuta entonces las instrucciones de la rutina
de servicio de interrupción, que en este caso es una operación de entrada. En la dirección
20DE la MPU encuentra el fin de la rutina de servicio de interrupción y se le indica que
vuelva al programa principal.
5. Antes de volver al programa principal, los datos del contador de programa y registro son
sacados de la pila y devueltos a la CPU.
6. El contador de programa ahora devuelve la CPU a la posición de memoria 2007H del
programa principal, donde continúa.
4.
,
La interrupción es un método muy útil de permitir que un dispositivo periférico obtenga la
MPU para hacer algo de manera casi inmediata. La mayoría de los microprocesadores tienen una
o más interrupciones. Las entradas de interrupción también pueden denominarse de reinicializa­
ción, reiniciadoras, interrupciones enmascarables o trampas.
~.
PROBLEMAS RESUELTOS
5.19. Acudir a la Figura 5.5. Este microprocesador utiliza una fuente de alimentación
de _ _ V Y circuitería de reloj _ _ (externa, interna) con las patillas 39 y 40 conecta­
das a un(a) _ _ (tensión ac, cristal).
Solución:
Según la Figura 5.5, este microprocesador utiliza una fuente de alimentación de +5 V y circuite­
ría de reloj interna con las patillas 39 y 40 conectadas a un cristal.
5.20. Acudir a la Figura 5.5a La flecha apunta hacia fuera desde la patilla 5 porque este terminal
es _ _ (bidireccional, de entrada, de salida).
Solución:
La flecha apuntando hada' afuera'enla Figura 5.5a simboliza que este terminal de dirección
(patilla 5) es una salida.
5.21.
I
Solución:
La patilla 30 de la Figura 5.5a es la salida de escritura, que se considera parte del bus de control
de una microcomputadora.
a MPU. Ver el
JOSición de me­
'H. los conteni­
:ros internos de
fta. Estos serán
y contador de
I
Acudir a la Figura 5.5a La línea que deja la patilla 30 del microprocesador se considera
parte del bus de _ _ (direcciones, control, datos) de una microcomputadora.
•
5.22.
Acudir a la Figura 5.5a Una señal BAJA en la patilla 33 del microprocesador _ _ (in­
habilitará, habilitará) la entrada de reinicialización, haciendo que la MPU pon­
ga ___ (el contador, la memoria) de programa a 0000 16,
Solución:
Según la Figura 5.5, una señal BAJA en la patilla 33 habilitará la entrada de reinicialización,
haciendo que la MPU ponga el contador de programa a 000° 16 , La barra sobre REINICIALIZA­
CION indica que se necesita un nivel BAJO para habilitar esta entrada .
www.FreeLibros.me
~
. ",
al
I
114
FUNDAMENTOS DE LOS MICROPROCESADORES
5.23. Acudir a la Figura 5.5. La patilla" de reinicialización es una entrada ___ (asíncrona,
síncrona), ya que no actúa en conjunción con el reloj.
Solución:
La patilla de reinicialización en la MPU de la Figura 5.5 es una entrada asíncrona ya que no
actúa en conjunción con el reloj.
5.24. Acudir a la Figura 5.5. Las transferencias de datos son realizadas con palabras en paralelo
de ___ bits en este microprocesador.
I
Solución:
De acuerdo con la Figura 5.5a. el bus de datos debe ser de 8 bits, y por tanto las transferencias de
datos son realizadas con palabras en paralelo de 8 bits.
tf
5.25. Acudir a la Figura 5.5. Una señal de petición de interrupción es una ___ (entrada,
salida) del microprocesador.
~
Circuite
Lógica (
8. Lógica (
6.
7.
En la última
dor genérico. L
interna del mie
Comenzand
bus de datos bíí
tiene 16 salidas
de control se ID
Dos señales de e
son las líneas de
de reloj que sol
Solución:
Según la dirección de las flechas de la Figura 5.5, una señal de petición de interrupción es una
entrada al microprocesador.
5.26. U na petición de interrupción hace que la MPU bifurque y ejecute una ______ en la
memoria de programa y despuéS vuelva al programa principal.
't
Solución:
Según la Figura 5.6. una petición de interrupción hace que la MPU bifurque y ejecute una rutina
de servicio de interrupción en la memoria de programa y despuéS vuelva donde dejó el programa
principaL
:~.
..
Bus de J----,
jlrecciones
'-1
,/~
,
I
5.4. ARQUITECTURA DEL MICROPROCESADOR
(16)
Casi todos los microprocesadores contienen como mínimo lo siguiente:
.­
1.
2.
3.
4.
5.
6.
7.
8.
Buffer!
cerrojos
'" Ao-A 1S
Unidad aritmética y lógica.
Varios registros.
Contador de programa.
Circuitería de decodificación de instrucciones.
Sección de control y temporización.
Cerrojos y buffers de datos.
Líneas de control y buses internos.
Varias entradas y salidas de control.
Escritura 1---'­
__
WR
RD
Además de estos elementos, una pastilla microprocesadora puede contener también algunas de
las unidades funcionales siguientes:
1. Memoria ROM.
2. _ Memoria RAM.
3. Puertos de entrada/salida serie.
4. Circuitería de reloj interna.
5. Temporizadores programables.
CLK
Reloj
1
Figu
www.FreeLibros.me
11111 I1
1 11
1
EL MICROPROCESADOR
L
(asíncrona,
asíncrona ya que no
Ilabras
l
t
paralelo
transferencias de
t
l _ _ (entrada,
115
6. Circuitería de arbitración de prioridad de interrupciones.
7. Lógica de interfaz de comunicación de E/S serie a paralelo.
8. Lógica de control de acceso directo a memoria.
En la última sección se estudió el diagrama y las funciones de las patillas de un microprocesa­
dor genérico. La arquitectura de esa misma MPU se examinará en esta sección. La organización
interna del microprocesador, o arquitectura, se ilustra en la Figura 5.7.
Comenzando con las conexiones externas, la MPU de la Figura 5.7 tiene ocho conexiones del
bus de datos bidireccional que conducen al bus de datos interno. En la parte izquierda, la MPU
tiene 16 salidas del bus de direcciones que memorizan las direcciones del bus interno. Las salidas
de control se muestran en la parte inferior izquierda; y son las líneas de escritura, lectura y reloj.
Dos señales de entrada son aceptadas por esta MPU en la parte inferior derecha de la Figura 5.7;
son las líneas de petición de interrupción y de reinicialización. Esta MPU tiene circuitería interna
de reloj que solamente necesita para que opere un cristal externo (o un capacitador en algunos
MPU
lterruPCión es una
~
Bus interno
- - ___ enla
I
, ejecute una rutina
~ dejó el programa
Bus interno
Complementador y
.---_--1 Bus de
~~4-I
Do-D,
Buffer/
cerrojos
~sp::or _ _
datos (8)
Registro de datos/direcciones
Bus de t - - - - ,
brecciones
(16)
~~ ~::~¿s
Contador de programa
A o-A'5
Contador de fila
Escritura
I-:===-__
__.JL----I~_ _ _.l...-_ _ _ _.L...._ ___.J~_ _.....J.._ _ _ _'___ __'____I
WR
REINIClAL/ZACION
Temporización y control
I-R_D_ _ _ _ _- y_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _--,r-______-t Petición
de
INTR interrupción
CLK
bién algunas de
+5V
Reloj
r
• ISU'.::
GND
~
~
Cristal
Fuente de alimentación
Figura 5.7.
t
Diagrama de bloques funcionales del microprocesador genérico.
www.FreeLibros.me
i EtW
Reinicialización
I
116
FUNDAMENTOS DE LOS MICROPROCESADORES
casos). El microprocesador de la Figura 5.7 está alimentado por una sola fuente de alimentación
de 5 V.
Las funciones de la mayoría de las unidades de la MPU de la Figura 5.7 han sido examinadas
en explicaciones anteriores. Estas funciones se definen a continuación de forma breve:
l.
2.
3.
4.
5.
6.
7.
Registro de instrucción: Esta unidad es un registro de 8 bits que contiene el primer byte de
una instrucción (el código de op).
Decodificador de instrucciones: Esta unidad interpreta el contenido del registro de ins­
trucción, determina el microprograma exacto que se debe seguir para ejecutar la instruc­
ción completa y dirige adecuadamente la sección de control.
Unidad aritmética y lógica: Esta unidad realiza las operaciones aritméticas, lógicas y de
desplazamiento circular que afectan al registro de status (señalizadores). Los resultados de
la sección de la ALU se colocan de nuevo en el acumulador vía el bus interno. El registro
temporal y acumulador muchas veces se consideran parte de la ALU. Las condiciones de
los señalizadores son realimentadas a la unidad de control y temporización.
Acumulador: Esta unidad es un registro de propósito general de 8 bits que es el foco de la
mayor parte de las instrucciones aritméticas, lógicas, de carga, almacenamiento y E/S.
Contador de programa: Esta unidad es un área de almacenamiento de 16 bits que siempre
apunta a la siguiente instrucción que se va a ejecutar. Siempre contiene una dirección de
16 bits. Puede ser incrementada o puesta a cero por la sección de controlo modificada por
instrucciones de transferencia.
Unidad de control y temporización: Esta sección recibe señales del decodificador de ins­
trucciones para determinar la naturaleza de la instrucción que se va a ejecutar. La infor­
mación del registro de status también está disponible para las bifurcaciones condicionales.
Las señales de temporización y control son enviadas a todo el microprocesador para
coordinar la ejecución de las instrucciones. También se generan las señales externas de
control.
Registro de status: La MPU genérica, muy sencilla, de la Figura 5.7 contiene solamente
los señalizadores de cero y arrastre en su registro de status.
Las unidades recientes añadidas a este microprocesador incluyen el reloj interno, control de
interrupción, puntero de pila y registro multipropósito de direcciones/datos.
La circuitería de reloj interna, junto con el cristal externo, genera señales similares a las de la
Figura 5.8. El circuito de reloj genera una señal de reloj de dos fases sin solapamiento para
utilizarla en el interior la MPU. La salida CLK del MPU es similar a la señal de reloj 02 y sirve
para sincronizar acciones en el sistema completo. En la Figura 5.8, las señales de reloj se dividen
en estados T (TI' T 2, etc.) y una división de tiempo mayor denominada ciclo máquina. Los
estados T son siempre de una duración determinada, mientras que la longitud de un ciclo máqui­
na puede variar. La Figura 5.8 muestra un ciclo máquina que consta de cuatro estados T.
La relación entre los estados T (TI' T2, etc.) y los ciclos máquina (MI' M 2, etc.) se muestra en
la Figura 5.9a. Los ciclos máquina se asocian a acciones de la MPU, como lectura, escritura,
búsqueda o ejecución. En este microprocesador los tipos de ciclo máquina son:
1. Lectura (busca un código de op).
2. Lectura de memoria o E/S.
3. Escritura en memoria o E/S.
4. Ejecución de una operación interna.
www.FreeLibros.me
'!i: '
La instrucción 4
ra 5.9a. Estos se
memoria de pn
de escritura en
escritura) se del
los ciclos máqll
tiene cuatro est;
uno. El ciclo e
dos T.
Un ejemplo
la Figura 5.9a.
(lectura). Durar
ciclos máquina
byte de la mem
la ALU del mic
misma longitud
La unidad t
externo a tra'-é
control a tra..-é
bifurca a una I
cuando se com
El puntero.
dirección, decrt
El puntero de
dirección. El tr
El registro I
8 bits que pUe(
registros de d.ir
rior y el de ord
menos que se 11
registros de pn
,
EL MICROPROCESAOOR
~ de
alimentación
I sido examinadas
13 breve:
rases mternas
r:'
~ el
primer byte de
~ reiistro de ins­
jecutar la instruc­
ticas. lógicas y de
Los resultados de
Iterno. El registro
lIS condiciones de
:ión.
lit' es el foco de la
ll1liento y E/S.
bits que siempre
una dirección de
o modificada por
I
Idificador de ins­
lecutar. La infor­
es condicionales.
procesador para
iales externas de
!tiene solamente
terno, control de
úlares a las de la
lapa miento para
: reloj 02 y sirve
~ reloj se dividen
fI máquina. Los
un ciclo máqui­
estados T.
~) se muestra en
ctura, escritura,
1
117
de reloj
{0
1
02-+---­
CLK salida ......--'
~-----------------v------------------J
Ciclo
máquina
Figura 5.8.
Formas de onda del reloj.
La instrucción de almacenamiento está dividida en cuatro ciclos máquina (MI - M 4 ) en la Figu­
ra 5.9a. Estos son: primero, la búsqueda del código de operación (lectura); segundo, la lectura de
memoria de programa; tercero, otra lectura de la memoria del programa, y cuarto, la operación
de escritura en memoria. La combinación completa de cuatro acciones (lectura, lectura, lectura y
escritura) se denomina ciclo de instrucción, como muestra la Figura 5.9a. Observar que no todos
los ciclos máquina tienen la misma duración. En la Figura 5.9a, el primer ciclo máquina (M,)
tiene cuatro estados T mientras que los otros ciclos máquina tienen solamente tres estados T cada
uno. El ciclo completo de instrucción para la instrucción de almacenamiento tiene 13 esta­
dos T.
Un ejemplo de la temporización de una instrucción de suma inmediata (ADD) se muestra en
la Figura 5.9a. El primer ciclo máquina (M,) es la operación de búsqueda del código de op
(lectura). Durante T4 de MI' la MPU decodifica la instrucción ADD y decide que necesita dos
ciclos máquina más para completar la instrucción. El segundo ciclo máquina (M,) lee el siguiente
byte de la memoria del programa como operando, mientras M3 ejecuta la operación de suma en
la ALU del microprocesador. Observar en la Figura 5.9 que los ciclos máquina no tienen todos la
misma longitud ni son ciclos de instrucción.
La unidad de control de la Figura 5.7 aceptará una señal de interrupción de un dispositivo
externo a través de la entrada INTR. Entonces, guía las acciones de la MPU vía la unidad de
control a través de los pasos 2 a 6 esbozados anteriormente en la Figura 5.6. De forma breve,
bifurca a una rutina de servicio de interrupción que responde a la petición de interrupción y
cuando se completa vuelve al programa principal.
El puntero de pila de la Figura 5.7 es como un contador de programa, ya que contiene una
dirección, decrementa o incrementa su contenido y puede ser cargado con una nueva dirección.
El puntero de pila es de 16 bits en este microprocesador, así que puede acceder a 16 líneas de
dirección. El uso del puntero de pila se detallará más tarde en la Sección 5.6.
El registro de direcciones/dalos de la Figura 5.7 realmente está formado por dos registros de
8 bits que pueden ser utilizados separadamente o como un par de registros combinados. Los dos
registros de direcciones/datos de 8 bits están etiquetados con H y L (para el byte de orden supe­
rior y el de orden inferior). Habitualmente son referenciados como el registro H y el registro L a
menos que se utilicen juntos, y entonces se denomina el par de registros HL. Los registros HL son
registros de propósito general como el acumulador, ya que pueden ser incrementados, decremen-
j,
J
•
,
,O,'
,'1
www.FreeLibros.me
'1:
I,'I',!
k'
!~
118
FUNDAMENTOS DE LOS MICROPROCESADORES
Instrucción STORE (ALMACENAR)
Almacena el contenido del acumulador en la posición de memoria dada por los dos siguientes bytes de la memoria de
programa
Solucióll
Unt
de la MI
Ciclo de instrucción
.
M2
MI
T,
/
T2
T)
T4
Búsqueda
del código
de operación
(a)
T1
TI
.
M)
A
M4
A
T)
TI
Lectura
de la memoria
de programa
T1
T)
TI
Lectura
de la memoria
de programa
T2
T}
Escritura
en la
memoria
Temporización y ciclos máquina para una instrucción de almacenamiento inmediato
Instrucción ADD (SUMAR)
Suma el contenido del acumulador a los del siguiente byte en la memoria del programa y deja la suma en el acumu­
lador
Ciclo de instrucción
.
MI
.,
T,
T2
M2
T3
Búsqueda
del código
de operación
(b)
T4
' 1
TI
T2
T3
Lectura
de la memoria
de programa
l'
5.28. Acudir
interno
5.29. Acudir
accione­
Solución
En ]¡¡
acciones
control.
5.30. Elconu
ciones. i
Solución:
El COI
apunta a
5.31. Acudir a
sección (
Suma
Temporización y ciclos máquina para una instrucción de suma inmediata
Figura 5.9.
tados y cargados con datos y pueden ser la fuente de los datos almacenados. El registro HL
también sirve como registro de direcciones ya que puede contener la dirección de destino de
almacenamiento o la dirección fuente cuando se cargan datos. En resumen, los registros HL
pueden ser utilizados para señalar direcciones. La Sección 5.5 tratará del uso del registro de
direcciones/datos. Algunos microprocesadores tienen un registro especial denominado contador
de datos que apunta a posiciones de memoria (utilizado como el registro par HL de esta
unidad).
PROBLEMAS RESUELTOS
5.27. Citar como mínimo seis unidades funcionales contenidas en la mayoría de las pastillas mi­
croprocesadoras.
Solución;
La mayoría de las pastillas MPU contienen como mínimo una ALU, varios registros, un conta­
dor de programa, circuitería de decodificación de direcciones, una sección de control y temporiza­
ción, bus con butTers y cerrojos, butTers internos y líneas de control y varias entradas y salidas de
control.
www.FreeLibros.me
Solución:
Las se
ción de el
instruccio
5.32. Citar cw
está e-stuc
SoluciÓll:
El mle
código de
ción de UI
5.33. En la FII
namient(
Solucióll:
Los es
mente 9 e
la instrua
5.34. Si cada e
instruccit
Solucióll:
Lains
Figura 5.S
•
EL MICROPROCESADOR
bytes de la memoria de
¡
119
5.28. Acudir a la Figura 5.7. ¿Qué unidad funcional se encuentra entre el bus de datos y ~I bus
interno de datos de este microprocesador?
Solución:
Un buffer y los cerrojos del bus están localizados entre el bus de datos yel bus interno de datos
de la MPU genérica de la Figura 5.7.
5.29. Acudir a la Figura 5.7. ¿Qué tres líneas de control de salida ayudan a sincronizar las
acciones de otras partes de un sistema basado en microprocesador?
Solución:
En la MPU de la Figura 5.7, las salidas de lectura, escritura y reloj ayudan a sincronizar las
acciones de las demás partes del sistema. La mayoría de los microprocesadores tienen más señales de
control.
en la
memoria
mediato
'la suma en el acumu­
5.30. El contador de programa es un área de memoria de 16 bits reservada para _ _ (direc­
ciones, instrucciones).
Solución:
El contador de programa es un área de memoria de 16 bIts reserVada para direcciones. Siempre
apunta a la dirección de la siguiente instrucción que se va a ejecutar.
5.31. Acudir a la Figura 5.7. Las señales de control de lectura y escritura son generadas por la
sección de _ _ y _ _ de la MPU.
Solución:
Las señales de control de lectura y escritura son generadas por la sección de control y temporiza­
ción de esta MPU. La sección de control y temporización sigue las direcciones del decodificador de
instrucciones o a veces la unidad de control de interrupciones.
5.32. Citar cuatro tipos de ciclos máquina utilizados por el microprocesador genérico que se
está estudiando en esta sección.
JiS. El registro H L
ión de destino de
, los registros H L
50 del registro de
[)mínado contador
~ par HL de esta
t
Solución:
El microprocesador genérico utiliza los siguientes tipos de ciclos máquina: lectura o búsqueda del
código de op, lectura de memoria o entrada/salida. escritura en memoria o entrada/salida y ejecu­
ción de una operación interna.
5.33. En la Figura 5.9 ¿qué instrucción se ejecuta en menor tiempo la de suma o la de almace­
namiento?
"".'
Solución:
Los estados T son siempre de la misma longitud. La instrucción de la Figura 5.9 necesita sola­
mente 9 estados T, mientras que la instrucción de almacenamiento requiere 13 estados T. Por tanto,
la instrucción de suma necesita menos tiempo para ejecutarse.
de las pastillas mi-
. registros, un conta­
cntrol y temporiza­
ntradas y salidas de
5.34. Si cada estado Tes igual a 500 nanosegundos (ns), ¿cuánto tiempo tardará en ejecutarse la
instrucción de suma de la Figura 5.91
',;'
'j;
Solución:
La instrucción de suma tarda nueve estados T en ejecutarse de acuerdo con el diagrama de la
Figura 5.9. Por tanto, 9 x 500 ns 4,5 )lS. La instrucción de suma necesita 4,5 )ls para ejecutarse.
www.FreeLibros.me
'.....
120
FUNDAMENTOS DE LOS MICROPROCESADORES
5.35. Acudir a la Figura 5.7. Activar la entrada INTR hace que la unidad _ _ _ _ indique
a la sección de control y temporización que bifurque temporalmente a una rutina de
servicio de interrupción en la memoria del programa.
Memoria de
Dirección!
(hex)
Solución:
Al activar la entrada INTR de la MPU de la Figura 5.7 se logra que la unidad de control de
interrupciones indique a la sección de control y temporización que bifurque temporalmente a una
rutina de servicio de interrupción en memoria del programa.
2000
2001
5.36. El puntero de pila es como el contador de programa ya que contiene una _ _ (direc­
ción, instrucción) de ___ bits.
2002
Solución:
El puntero de pila es como el contador de programa, ya que contiene una dirección de 16 bits.
2003
2004
5.37. Acudir a la Figura 5.7. Las dos unidades de almacenamiento etiquetadas con H y L se
denominan registro de ___/___ .
2005
~
1
Solución:
Las dos unidades de almacenamiento de la Figura 5.7 etiquetadas con H y L se denominan
registro de datos/direcciones o registro de propósito general.
~
5.38. Acudir a la Figura 5.7. Cuando los dos registros de datos/direcciones se conectan entre sí y
se utilizan como un área de almacenamiento de 16 bits, se denominan el registro
par ___ .
I;
Solución:
Cuando los dos registros de direcciones/datos de la Figura 5.7 se conectan entre sí y se usan
como un área de almacenamiento de 16 bits, se denominan el registro par HL.
t
.~
5.39. Acudir a la Figura 5.7. Los registros de datos/direcciones pueden ser utilizados para alma­
cenamiento y manipulación de datos, o combinados como un par pueden ser usados
para ______ (señalar direcciones, seleccionar datos).
Solución:
Los registros de datos/direcciones de la Figura 5.7 pueden ser utilizados para almacenar y mani­
pular datos, o combinados como un par pueden ser utilizados para señalar direcciones.
2006
2007
2008
,
¡
2009
200A
2008
.......
-
Memoria·
.....
2100
1
2101
5.5. lITILIZAOON DEL REGISTRO DE DIRECCIONES/DATOS
U na característica interesante del microprocesador genérico de la Figura 5.7 es el uso del registro
par HL para direccionar posiciones de memoria. Se dice que el registro par HL se utiliza como un
puntero o puntero de dirección cuando temporalmente se encarga de la tarea del contador del
programa principal apuntando a las direcciones de memoria o E/S. Algunos microprocesadores
muy comunes, como el 8080/8085 y Z80, tienen registros de este tipo para apuntar a las direccio­
nes. El registro par HL también se denomina registro de direcciones, contador de datos, puntero,
o registro de propósito general en otros microprocesadores.
Considerar la sencilla tarea de sumar los contenidos de tres posiciones consecutivas de memo­
ria y almacenar la suma en la posición de memoria siguiente. Los contenidos de memoria de este
www.FreeLibros.me
J
2102
2103
2104
2105
Figura 5.'1
I
J
.
L ___ indique
,
EL MICRbpROCESAOOR
121
Memoria del programa
le a una rutina de
Dirección Contenido
(hex)
(hex)
- ._'
~
midad de control de
rmporalmente a una
2000
3A
2001
00
2002
21
2003
21
2004
01
2005
21
r ~ L se denominan
2006
86
} Instrucción 3-ADD (SUMAR)
bectan entre sí y
mman el registro
2007
23
} Instrucción 4-INCREMENT (INCREMENTAR) registro par HL
2008
86
} Instrucción 5-ADD (SUMAR)
2009
23
200A
77
una _ _ (direc­
lllim:ción de 16 bits.
Idas con H y L se
~
• entre
,
SI
y
Instrucción l-LOAD acumulador
Instrucción 2-LOAD (CARGAR) registro par HL
} Instrucción 6-INCREMENT (INCREMENTAR) registro par HL
se usan
lizados para alma­
lUeden ser usados
200B
......
} Instrucción 7-STORE (ALMACENAR) acumulador
-
......
,
Memoria de datos
: 31 macenar y mani­
'nes.
d uso del registro
r utiliza como un
del contador del
úcroprocesadores
llar a las direccio­
le datos, puntero,
!Utivas de memo­
memoria de este
I
.-,
..1
I
r""'"
.......
2100
OC
2101
OA
2102
07
.--- Suma
2103
2104
i
I
~j
2105
",....
Figura 5.10.
i
i
Contenidos e instrucciones de memoria para un problema ejemplo de suma.
','
I
"~
www.FreeLibros.me
1M
~
122
FUNDAMENTOS DE LOS MICROPROCESAOORES
problema se detallan en la Figura 5.10. El programa se carga en las posiciones de memoria 2000H
a 200AH, mientras que los tres números que se van a sumar (OCH + OAH + 07H) se cargan en las
posiciones de la memoria de datos 2100H a 2102H. El programa contiene siete instrucciones,
como se lista a la derecha de la Figura 5.10. Recordar que en este programa el contenido del
acumulador siempre será la suma actual y el del registro par HL una dirección.
La primera instrucción (código de op 3A) de la Figura 5.10 indica a la CPU que cargue el
acumulador el contenido de la posición de memoria 2100H. La ejecución de esta instrucción
de carga directa del acumulador se detalla en la Figura 5.11 a, donde el contenido de la posición
2100H de la memoria de datos se carga en el acumulador de la CPU. El acumulador contiene
ahora el primer número que se va a sumar.
La instrucción 2 de la Figura 5.10 indica a la CPU que cargue 210 1H en el registro par de
16 bits HL. Esta posición (210 1H) es una dirección en la memoria de datos. Esta es la instrucción
de «cargar inmediato el registro par HL». La acción de carga exacta realizada por la instrucción 2
se detalla en la Figura 5.11 b. Observar que el contenido de la primera posición de la memoria del
programa (2004H) es cargado en el byte de orden inferior (L) del registro HL. El contenido de la
siguiente posición de la memoria del programa es cargado en el byte de orden superior H del
registro par H L.
La instrucción 3 de la Figura 5.10 indica a la CPU que sume el contenido del acumulador con
el contenido de la posición de memoria señalada por el registro par H L. La Figura 5.11 e detalla el
procedimiento de suma. El registro HL apunta a la posición 2101H de la memoria de datos. y la
ALU suma su contenido (000010 102) al contenido del acumulador (00001100 2), dando una suma
de 00010110" que se vuelve a transferir al acumulador.
La instrucción 4 de la Figura 5.10 indica a la CPU que incremente (sume + 1 a) el contenido
del registro par HL. La acción de incrementar de la CPU se muestra gráficamente en la Figu­
ra 5.IId. Observar que solamente ha cambiado el byte de orden inferior en el registro par HL.
¡
(
Registro de datOS/dil
.
. i
l.
Acumulador
Acumulador
Antes de la operaciÓII
(a)
Después de la operación
Antes •
Instrucción 1-cargar acumulador
H
L
J.
Registro de datosl
direcciones
Antes de la operación
Después de la operación
Memoria de programa (2004)
(2005)
(b)
Instrucción 2-cargar registro par HL
Figura 5.11 .
www.FreeLibros.me
-~
Registro de datos/dín=
t
EL MICROPROCESADOR
lile memoria 2000H
7H) se cargan en las
siete instrucciones,
la el contenido del
123
"
¡
Acumulador
Antes de la operación
Después de la operación
r>n.
CPU que cargue el
de esta instrucción
nido de la posición
umulador contiene
1
Memoria de datos (2101)
Puntero de
dirección
L
el registro par de
(e)
sta es la instrucción
por la instrucción 2
la memoria del
El contenido de la
:len superior H del
1 de
Registro de datos/direcciones
Instrucción 3-sumar
L..;.;;...;..;;....;;.;;...;..;J...;..;.....;...;..;.;;.¡ Registro de datos/direcciones
L..-._ _---Í-_----.,,----l
Después de la operación
Antes de la operación
Incrementa
le. acumulador con
:ura 5. 11 e detalla el
noria de datos, y la
!). dando una suma
+ 1 a) el contenido
amente en la Figu­
I registro par HL.
(d) Instrucción 4-incrementar registro par HL
Acumulador
Después de la operación
Antes de la operación
Memoria de datos (2102)
0000 0111
'1
unterOde
~
dirección
H L
I
dor
2102H
operación
~
Instrucción S-sumar
L
H
Registro de datos/direcciones
(e)
H
L
@iO@IIO<2i' 00111 Registr~ de datos/direcciones
r-----.-OO-oo....:;;oo-I-'-,Ó ' .. ,
~
Antes de la operación
Después de la operación
Incrementa
(f) Instrucción 6-incrementar registro par HL
Registro de datos/
dí!'e\.'Ciones
~.
10001 11011
Acumulador
Acumulador
Después de la operación
Antes de la operación
la operación
Memoria de datos
(2103)
~
H
L
puntero de dirección
2103H
(g)
Instrucción 7-almacenar acumulador
Figura 5.11.
)
ai 2 ¡¡Sna: 2 •
!
¡
(continuación),
www.FreeLibros.me
I '11jI"
"III'i!l lml il liMi liIIIU:m¡¡¡¡bl,,",IiIII1iI¡11 IlIIilJliI 1 1 1 I l1li IIIII ¡I II
,.....'
j IlillIIIJI¡¡llli.,;;IIIIIII.IIII*II!mll~""I1lI",
I
124
FUNDAMENTOS DE LOS MICROPROCESADORES
La instrucción 5 de la Figura 5.10 indica a la CPU que sume, de nuevo, el contenido <1el
acumulador con el de la posición de memoria señalada por el registro par HL. La Figura 5.lle
muestra el registro H L señalando a la posición 21 02H de la memoria de datos. Los contenidos de
ambas posiciones de memoria 21 02H Ydel acumulador se suman, dando la suma de 000 lII 01"
que se coloca en el acumulador.
­
La instrucción 6 de la Figura 5.10 indica, de nuevo, a la CPU que incremente el registro par
HL. La Figura 5.11! detalla gráficamente esta acción.
La instrucción 7 de la Figura 5.10 indica a la CPU que almacene el contenido del acumulador
(la suma 0001110 1,) en la posición de memoria señalada por el registro par HL. La Figura 5.llg
muestra la suma dél acumulador almacenada en la posición 2103H de la memoria de datos.
Las instrucciones que usaron el registro par HL corno puntero (instrucciones 3, 5 Y 7) utilizan
un modo de direccionamiento llamado direccionamiento indirecto de registro. Los modos de
direccionamiento se tratarán con más detalle en el capítulo siguiente.
Memoria de
Dirección
(hex)
2010
2011
2012
PROBLEMAS RESUELTOS
2013
5.40. Otro nombre utilizado para el registro de direcciones es contador de _ _ (datos, progra­
2014
\.
\
,
(
ma).
Solución:
Otro nombre utilizado para el registro de direcciones es contador de datos.
5.41. Acudir a la Figurá. 5.10. ¿Qué suma hexadecimal se transferirá a la posición 2103H de la
memoria de datos una vez que se haya ejecutado el programa?
Memoria (
......
Solución:
Sumar OC + OA + 07 = ID I6 (12 + 10 + 7 = 29 10), La suma de ID I6 se transferirá a la posición
2103H de la memoria de datos despuéS de que se ejecute el programa de la Figura 5.10.
5.42. fc'udir a las Figuras 5.10 y 5:11. El acumulador siempre
~
2100
2101
co~tiene
la _ _ (instrucción,
suma), mientras que el registro par HL contiene una _ _ (dirección, cuenta del progra­
ma).
2102
2103
Solución:
El acumulador de la Figura 5.10 siempre contiene la suma actual, mientras que el registro par
HL contiene una dirección. La dirección del registro par HL se utiliza entonces para señalar a las
...
posiciones de memoria.
5.43. Acudir a la Figura 5.10. Cuando se utiliza el registro HL corno puntero de dirección igual
..
.......
2104
2105
.....
~
que en la Figura 5.1 lc, ¿qué modo de direccionamiento se está utilizando?
Solución:
En la instrucción 3 se está utilizando el modo de direccionamiento de registro indirecto (instruc­
ción de suma) de la Figura 5.10.
5.44. Acudir a la Figura 5.12. ¿Cuáles son los contenidos hexadecimales del acumulador y del
registro par HL al principio de este programa?
www.FreeLibros.me
Sol_
Se:
es 00
0010.
EL MICROPROCESAOOR
10000 I 1I 11 AcuiñUlador
Contenidos
principio del
H
L
programa { 1001 O 000 11 0000 00 \O 1 Par de registros H L
• el contenido del
[. La Figura 5JI e
Los contenidos de
125
Memoria de programa
ma de 00011101"
tte el registro
p~r
Dirección
(hex)
Contenidos
(hex)
2010
86
2011
23
2012
86
2013
23
2014
77
lo del acumulador
[. La Figura 5.11g
20ria de datos.
:s 3. 5 Y 7) utilizan
·0. Los modos de
}
}
}
}
Instrucción l-ADD (SUMAR) el contenido de la memoria
señalada por el registro HL al acumulador
Instrucción 2-INCREMENT (INCREMENTAR) el registro par HL
Instrucción 3-ADD (SUMAR) el contenido de la memoria
señalada por el registro HL al acumulador
Instrucción 4-INCREMENT (INCREMENTAR) el registro par HL
.,
(ALM).CENAR) el contenido del acumulador en
} Instrucción 5-STORE
la posición de memoria señalada por el registro HL
1.........
Memoria de datos
ción 2103H de la
lerirá a la posición
flra 5.10.
t__ ('instruccIón,
.
uenta del progra­
que el registro par
señalar a las
5 para
le dirección igual
.­
~
......
2100
OA
2101
08
2102
OC
2103
OD
2104
OE
2105
OF
",.­
lo?
Figura 5.12.
Contenidos de memoria e instrucciones para un problema de suma.
indirecto (instruc­
lmUlador y del
,
Solución:
Según la información de la Figura 5.12, el contenido del acumulador al comienzo del programa
es 00001111 2, Ó OF I6 • El contenido del registro par HL al comienzo del programa es 0010 00010000
00102 ó 2102 16,
www.FreeLibros.me
-
. . ------------------------=>=--126
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador
Acumulador
5.49. Acudil
acuml
Después de la operación
Solucicí
La
señala 1
5.6. UTILl
Figura 5.13.
5.45. ¿Cuál es el contenido del acumulador después de la ejecución de la instrucción 1 (instruc­
ción de suma) de la Figura 5.12?
Solución:
Ver Figura 5.13.
5.46. ¿Cuál es el contenido del registro par HL después de la ejecución de la instrucción :;
(instrucción de incrementar) de la Figura 5.12?
Solución:
El registro par HL contiene 2102 + 1 = 2103H. Después de la instrucción 2 de la Figura 5.12, el
registro par HL contendrá 2103H.
5.47. ¿Cuál es el contenido del acumulador después de la ejecución de la instrucción 3 (instruc­
ción de suma) de laf'igura 5.12.
/
Solución:
Ver Figura 5.14.
5.48. ¿Cuál es el contenido del registro par HL después de la ejecución de la instrucción.!
(instrucción de incrementar) en la Figura 5.12?
Solución:
El registro par HL contiene 2103 + 1 = 2104H. Después de la instrucción 4 de la Figura 5.12. e'
registro par HL contiene 2104H.
Acumulador
~
Antes de la operación
M<mon, '"
(2103)
~
da,,,, ~
Acumulador
Después de la operación
El microp~
registro canta,
puntero de pi]
datos conocid
miento locaJ.i.¡
rutina de senl
la CPU debíar
la pila. De igl
programa deb
memoria de p
que se utiliza
ejemplo, mult
La pila de
lectura/escritu
como pila. El
del tope de la
una dirección
:209H.
Los datosJ
de CALL (LL
SACAR) o R
mientras que 1
lcceso secuene
-:1emoria úlm
::'71mero en en
La instrue
:;Jntenido del
:ebe ser introc
':Jvés de los r
I.
El
pUIl
2. El PUJ
sistem
3. El pUl!
4. El pUl
Figura 5.14.
www.FreeLibros.me
sistem
cenade
~
'.' ÉL MICROPROCESADOR
127
5.49. Acudir a la instrucción 5 de la Figura 5..12. ¿Dónde estará almacenada la suma en el
acumulador después de ejecutar esta instrucción de almacenamiento?
Solución:
La suma (00101000 2) estará almacenada en la posición de memoria de datos 2104H, como
señala el registro par H L.
5.6. UTILIZACION DEL PUNTERO DE PILA
I
Il'Ucción 1 (instruc­
,
le la instrucción 2
~ .­
de la Figura 5.12, el
~
'. 3 ('mstruc­
rucclOn
1:
/
la instrucción 4
La ",ura
5.)2. ,)
El microprocesador genérico de la Figura 5.7 contiene 'un puntero de piJa. El puntero de pila es un
registro contador especializado, de 16 bits, que siempre contiene una dirección. La dirección del
puntero de pila es la posición de un grupo especial de posiciones de memoria de la memoria de
datos conocida como pila. En algunas MPU la pila puede ser un grupo de áreas de almacena­
miento localizadas en la pastílla micro procesadora. En la Sección 5.3 se vio que cuando una
rutina de servicio de interrupción era ejecutada por la CPU, los datos actuales de los registros de
la CPU debían ser almacenados temporalmente. El contenido de estos registros es almacenado en
la pila. De igual forma, cuando se utiliza una subrutina regular, el contenido del contador de
programa debe ser almacenado, para que la CPU pueda volver a la posición adecuada de la
memoria de programa una vez que secomplete la rutina. El área de almacenamiento temporal
que se utiliza es la pila. Una subrutina es un programa especializado, más corto (como, por
ejemplo, multiplicar), que se utiliza muchas veces en el programa principal.
La pila del microprocesador genérico estará localizada en una sección de la memoria de
lectura/escritura. El programador selecciona un grupo de posiciones de la RAM para que sirvan
como pila. El puntero de pila es cargado con una dirección una unidad mayor que la dirección
del tope de la pila, como se indica en la Figura 5.15. El puntero de pila se pone a 220AH, que es
una dirección una unidad mayor que la de la primera posición de memoria de la pila que es
2209H.
Los datos pueden escribirse en la pila utilizando una instrucción de PUSH (INTRODUCIR) o
de CALL (LLAMAR). Los datos pueden ser leídos de la pila utilizando una instrucción de POP
(SACAR) o RETURN (VOLVER). Escribir en la pila a veces se denomina introducir en la pila,
mientras que leer de la pila se denomina sacar de la pila. La pila funciona como una memoria de
acceso secuencial, ya que el último dato en entrar es el primer dato en salir. Esto se denomina una
memoria último en entrar primero en salir, o UFO. También puede denominarse memoria de
primero en entrar último en salir, O memoria FILO.
La instrucción PUSH puede producir resultados como muestra la Figura 5.16a, donde el
contenido del registro par HL se introduce en la pila. Observar que el registro par HL de 2 bytes
debe ser introducido en dos posiciones de memoria. La secuencia de acciones puede ser seguida a
través de los números inscritos en los círculos.
!
l. El puntero de pila de la CPU se decrementa de 220AH a 2209H.
2. El puntero de pila señala al área de memoria 2209H sobre el bus de direcciones del"
sistema y el byte de orden superior (00000000,) es introducido en la pila.
3. El puntero de pila es decrementado, de nuevo, de 2209H a 2208H.
4. El puntero de pila señala al área de memoria 2208H sobre el bus de direcciones del
sistema, yel byte de orden inferior (00001111 2) del registro de datos/direcciones es alma­
cenado en la pila.
www.FreeLibros.me
, 1
I
11
128
FUNDAMENTOS DE LOS MICROPROCESADORES
Memoria de datos'
Registro dr ...
Dirección
Contenido
'..,.....-
----
2200
Puntero '
I '::CIJ
t
I
I
2201
I
~;
I
I
I
2202
I
2203
ti
-
, lfl
-~
2204
-'---
Pullllell
---~--
@
2205
\
Pila
2206
r.----
..
-
2207
i
, ..11
2208
(
2209
,....
220A
Pun terode~
I 220AH
~
Figura 5.15.
Puntero."
I220<>H ~
----
Inicializaci6n de la pila de la RAM.
En la Figurn 5.16b se ilustra otra operación de INTRODUCIR (PUSH). Sin embargo, esta vez
los contenidos del acumulador y del registro de status se introducen en la pila. De nuevo, seguir la
acción con los números inscritos en los círculos de la Figura 5.16b.
5. Antes de esta operación, el puntero de pila está señalando a la última entrada de la pila. Es
decir, que está apuntando a la parte superior de la pila. El puntero de pila ahora se
decrementa a 2207H.
6. El puntero de pila direcciona la posición 2207H de la pila, y el contenido del acumulador
(O 10 10 10 12) es introducido en la pila.
www.FreeLibros.me
Registro de di
•
1
Punln1l
~
EL MICROPROCESAOOR
H
Oesp~ de la operación
Antes de la operación
Pila
Puntero de pila
~
2208
2209
220A
Puntero de pila
220AH
(a)
-.fi!- ,­
n08H
I
Introducción del contenido del registro de datos/direcciones en la pila
Acumulador
Después de la operación
(h)
Puntero de pila
Pila
Pila
1II1 1111
2206
2207
2208 0000 1111
2209 0000 0000
220A
2206
2207
0101 0101
0000 111 1 2208
0000 0000 2209
220A ;
Introducción del contenido del acumulador y del registro de status en la pila
Acumulador Registro de status
Acumulador Registro de status
IrIO~~:jJIIIIIIIII
Antes de la operación
CI
POP
Pila
2206 1 111 1111
2207 OIOIOlOl
2208 0000 I 11 1
2209 0000 0000
220A
(e)
Después de la operación
Pila
1111 1111
01010101
0000 1111
0000 0000
Q>
2206
2207
2208
.
Puntero de pila
~~V 2208H I
~
2209
Restauración del contenido del acumulador y del registro de status al sacarlos de la pila
H
Registro de datos/direcciones 1.._ _ _-'
L
Registro de datos/direcciones
Antes de la operación
lbargO, esta vez
Después de la operación
Pila
Pila
nuevo, seguir la
"" -J '''A''
Puntero de pila
t----1-2~2::::0::;7:-f ,'~ - '
t----t-::c22:-:0:-::8~
la de la pila. Es
~ pila ahora se
lel acumulador
129
- - --
I
J
~____-+~2~2~09~.t QD
220A ;,./
fd)
Restauración del contenido del registro de datos/direcciones al sacarlo de la pila
Figura 5.16.
www.FreeLibros.me
-
130
7.
8.
FUNDAMENTOS DE LOS MICROPROCESADORES
El puntero de pila es decrementado de 2207H a 2206H.
La posición de dirección del puntero de pila es 2206H. El contenido del registro de status
(l11111112) es introducido en la parte superior de la pila.
La pila puede continuar creciendo a medida que se introduzcan más datos en la pila, lo cual se
simboliza en la Figura 5.15 con la línea sombreada situada en la parte superior de la pila. La pila
no tiene límites definidos excepto los impuestos por la posición de otros programas y el tamaño
de la RAM.
Generalmente, por cada instrucción PUSH (INTRODUCCION) habrá más tarde una instruc­
ción POP (SACAR) para quitar el dato de la parte superior de la pila. Como la pila es una
memoria UFO (last-in-first-out [último en entrar primero en salir]), los datos deben llegar en
orden inverso. La descarga de la pila se detalla en las Figuras 5 .16c y d.
Considerar la instrucción POP (SACAR) de la Figura 5.16c. El registro de status y el acumula­
dor son recargados con los datos que almacenaban antes. La secuencia de acciones para sacar de
la pila puede ser seguida por los números inscritos en Círculos de la Figura 5.16c.
1.
2.
3.
4.
El puntero de pila direcciona la parte superior de la pila, o posición de memoria 2206H.
El contenido del registro de status ( 11111111 2) es sacado del tope de la pila y devuelto a la
ALU.
El puntero de pila es incrementado de 2206H a 2207H.
El puntero de pila direcciona la posición 2207H de la pila. Se saca el tope de la pila y el
contenido es devuelto al acumulador en la CPU.
El puntero de la pila es incrementado a 2208H y ahora apunta a la siguiente posición que
se va a sacar.
Los contenidos del registro de status y acumulador se han restaurado para que fuesen igual al que
tenían antes de la operación PUSH (INTRODUCIR) de la Figura S.16b.
A continuación se saca de la pila, de la Figura S.16d, el contenido del registro de datos/
direcciones. De nuevo, seguir la secuencia de acciones a través de los números inscritos en los
círculos de la Figura S.16d.
.
.
S.
6.
7.
8.
5.50. Elpw
siemp
SolueN
fJl
5.51.
La pi!.
namie
Soluck
La
miento
5.52.
En el
ción d
SoIIK'Ñí
El I
microp
5.53. AcudiJ
ción d
Solució
Lal
ra 5.15
5.54. «1ntm
UFO.
"­
El puntero de pila direcciona el tope de la pila (posición 2208H). Es sacado el contenido
Solució
de esta posición y devuelto al byte de orden inferior del registro par H L.
El puntero de la pila es incrementado a 2209H.
El puntero de la pila direcciona el tope de la pila, que ahora es la posición 2209H. El
contenido (00000000,) es devuelto al byte de orden superior del registro par HL.
Finalmente, el puntero de la pila es incrementado de 2209H a 220AH en preparación
para la siguiente operación de introducción o de llamada (PUSH o CALL).
5.55. AcudiJ
.
Sacar datos de la pila y restaurarlos en el registro de datos/direcciones invierte la acción de la
instrucción PUSH (INTRODUCIR) ejecutada en la Figura S.16a. Las instrucciones PUSH y
POP son utilizadas en parejas; sin embargo, habitualmente hay otras muchas instrucciones entre
estas dos que cambian los datos de los registros de la CPU.
El microprocesador genérico introducía y sacaba pares de registros. En algunas MPU, el
puntero de pila puede apuntar a la posición de memoria vacía, inmediatamente encima del tope
de la pila, en lugar de al tope de la pila como en el microprocesador genérico. Debe recordarse, en
este ejemplo, que el programador, originalmente, pone el puntero de pila en 220AH para definir
la posición de la pila de la RAM.
www.FreeLibros.me
.dnl
a 0008
SoImí
El,
5.56. Acudil
datos, l
SoiIdi
ElI
direccic
~.57.
Acudir
datos
I
SeIIdII
ElI
direccic:
~
EL MICROPROCESADOR
131
PROBLEMAS RESUELTOS
• registro de status
tia pila, lo cual se
, de la pila. La pila
amas y el tamaño
tarde una instruc­
no la pila es una
~ deben llegar en
~s y el acumula­
mes para sacar de
6c.
.hemoria 2206H.
ila y devuelto a la
t
)pe
de la pila y el
ente posición que
ben igual al que
egistro de datos/
inscritos ,en los
5
~o el con~enido
J
icíón 2209H. El
IparHL.
, en preparación
L).
~
la acción de la
riones PUSH y
ilrucciones entre
bnas
MPU, el
encima del tope
le recordarse, en
AH para definir
5.50. El puntero de pila de la Figura 5.7 es un registro contador especializado, de 16 bits, que
siempre contiene ___ (una dirección, un código de op de instrucción).
Solución:
El puntero de pila siempre contiene una dirección.
5.51.
La pila es una memoria especial de acceso secuencial organizada como un área de almace­
namiento tipo ___ (cuatro letras).
Solución:
La pila es una memoria de acceso secuencial especial organizada como un área de almacena­
miento tipo UFO.
5.52. En el microprocesador genérico, el ___ (diseñador, programador) determina la posi­
ción de la pila en la RAM .
Solución:
El programador de la MPU determina la posición de la pila en la RAM cuando utiliza el
microprocesador genérico.
5.53. Acudir a la Figura 5.15. La posición de memoria _ _ (número hex) es la primera posi­
ción de la pila que será utilizada durante una operación de llamada o de introducción.
Solución:
La posición de memoria 2209H es la primera posición de la pila que será utilizada en la Figu­
ra 5.15 durante una operación de llamada o de introducción.
5.54. «Introducir en la pila» se refiere a una operación de ___ (leer, escribir) en una memoria
UFO.
Solución:
«Introducir en la pila» se refiere a una operación de escribir en una memoria UFO.
5.55. Acudir a la Figura 5.17a. El paso 1 muestra que el _ _ _ _ se decrementa de 0009H
a 0008H.
Solución:
El paso l de la Figura 5.17a muestra que se decrementa el puntero de pila.
5.56. Acudir a la Figura 5.17a. El paso 2 muestra que el byte de orden superior del registro de
datos/direcciones se está ___ (sacando, introduciendo) en el ___ (registro L, pila).
Solución:
El paso 2 de la Figura 5.17a muestra que el byte de orden superior del registro de datosl
direcciones se está introduciendo en la pila.
5.S7. Acudir a la Figura 5.17a. El paso 4 muestra Que el byte de orden inferior del registro de
datos/direcciones se está introduciendo en la posición de la pila ___ (número hex).
Solución:
El paso 4 de la Figura 5.17 a muestra que el byte de orden inferior del registro de
direcciones se está introduciendo en la posición 0007H.
www.FreeLibros.me
datosl
~-,
.~
':L..~'.'
132
FUNDAMENTOS DE LOS MICROPROCESADORES
•..
'
H
Registro de datosl
direcciones
5.61. Acudí
L
r=~='='T'".~~--'
pila.
Soluó
La
pila.
Después de la operación
Pila
Punt~ro
de pila
1
:~I
IOOOO~9EH}I---....t; 0009
5.62. Acudí
do) al
despu
I
.Soluci
(a)
Regist~ de ~atos/l
direcciones
H
L
~
mient]
L
H
~~---~~----,
Registro de datosl
'-'!"--"""""'....--~ direcciones
1-._ _ _' - -_ _- '
Antes de la operación
Después de la operación
Pila
Puntero de pila
~--~~~--~~~
?
5.63. Un_
compul
Res, I
5.64.
(b)
Figura 5.17.
5.65. Las 16
directa I
Res. t:
5.58. Acudir a la Figura 5.17 b. Antes de la operación, el puntero de pila señala el _ _ (extre­
\
mo inferior, tope) de la pila que actualmente es 0OO7H.
Solución:
Antes de la operación de la Figura 5.17b, el puntero de pila apunta al tope de la pila, que
actualmente es 0007H.
5.59. Acudir a la Figura 5.17b. El paso 5 muestra que el byte de orden _ _ (superior, infe­
rior) del registro de datos/direcciones se está restaurando con el contenido del to­
pe _ _ (de la pila, del puntero de pila).
Solución:
El paso 5 de la Figura 5.17 b muestra el byte de orden inferior del registro de datos/direcciones
que se está restaurando con los contenidos del tope de la pila.
5.66.
I
5.67. Espoc
progra¡
Res,
5.68. AcudiJ
de __
Res,
5.69.
Acudí
inst1114
Res,
5.70.
AcudJ
MPl"
Res
o
mentando, incrementando) 0007H a _ _ (número hex).
Solución:
El paso 6 de la Figura 5.17h muestra que el puntero de la pila se está incrementando de 0007H a
0008H.
Elregis
Res.
5.60. Acudir a la Figura 5.17 b. El paso 6 muestra que el puntero de la pila se está _ _ (decre­
www.FreeLibros.me
E180~
Res,
I
.­
:~
J
EL MICROPROCESADOR
I
133
5.61. Acudir a la Figura S.17b. El paso 7 muestra que el dato sc _ _ (saca, introduce) en la
pila.
Solución:
La acción de lectura durante el paso 7 de la Figura 5.17 b muestra que el dato se saca de la
pila.
.. operación
5.62. Acudir a las Figuras 5.16 y 5.17. El puntero de pila es
(decrementado, incrementa­
do) antes de una operación PUSH, mientras que es ___ (decrementado, incrementado)
después de una instrucción POP.
.Solución:
Según las Figuras 5.16 y 5.17, el puntero de pila es decrementado antes de una operación PUSH,
mientras que es incrementado después de una operación POP.
1
Itegistro de datos/
lireccíones
lile la operación
~"
PROBLEMAS SUPLEMENTARIOS
~untero de pila
~?
5.63. Un _ _ puede ser definido como una pastilla VLSI que realiza las tareas de la CPU de una micro­
computadora.
Res. microprocesador.
5.64.
El 8086, 8088, 68000, 65816 Y Z8000 son todos ejemplos de microprocesadores de _ _ bits.
Res.
I
5.65.
. el ~ (extre­
\
re de la pila, que
_ (superior, infe­
IIltenido del to­
16.
Las 16 líneas de dirección de los microprocesadores 8080/8085, 6800 ó 6502 pueden direccionar
directamente _ _ K de memoria .
Res. 64.
S.66.
El registro _ _ _ _ sigue la pista del tope de la pila en la RAM.
Res. puntero de pila.
5.67.
Es poco probable que la hoja de datos del fabricante contenga una _ _ (lista de técnicas de
programación, un diagrama de patillas) para el microprocesador.
Res. una lista de técnicas de programación.
ltos/direcciones
5.68. Acudir a la Figura 5.2. La petición de interrupción en el microprocesador 8080 es un terminal
de _ _ (entrada, salida).
Res. entrada.
t_·
(decre:
5.69. Acudir a la Figura 5.4. La instrucción CALL del 8080 tiene el código de op _ _ (número hex), y la
instrucción requiere _ _ bytes de memoria de programa.
Res. CDH. 3.
tando de 0007H a
S.70. Acudir a la Figura 5.5. Cuando la patilla WR está en BAJA, está _ _ (habilitada, inhabilitada) y la
MPU está _ _ (leyendo de, escribiendo en) memoria o entrada/salida.
Res. habilitada, escribiendo en.
www.FreeLibros.me
'­
.....
.­
134
~.I· "V,. ..
..
"
..
¡,~
:
"
FUNDAMENTOS DE LOS MICROP,{OCESADORES
5.71. Acudir a la Figura 5.5. ¿Qué entrada a la unidad cambia el contador de programa a OOOOH y hace
que el microprocesador comience una rutina de inicialización?
Res. reinicialización.
5.83. Acudir,
cimal) a
Res. d
5.72. El microprocesador típico es más probable que contenti'á _~,,_ _ (una ALU, un área de memoria
5.84. Acudir
RAM).
registre
Res. d
Res. ALU.
5.73. Durante la primera lectura de memoria de programa de un ciclo de instrucción, el dato proveniente
del bus de datos es transferido al ___ (acumulador, registro de instrucción).
Res. registro de instrucción (es el ciclo de máquina de búsqueda de código de op).
5.74. El microprocesador genérico tiene cuatro tipos de ciclos máquina: la búsqueda del código de op o
ciclo de lectura, un ciclo de ___ de memoria, un ciclo de escritura en memoria y un ciclo de
ejecución de una operación interna.
Res. lectura.
5.75. Los ciclos máquina y de instrucción varían en duración. Sin embargo, los períodos de tiempo deno­
minados ______ son de una duración dada.
Res. estados T.
,, ...
.
¡
5.76. En el microprocesador genérico, ¿qué período de tiempo es más corto: un ciclo de instrucción o un
ciclo máquina?
Res. ciclo máquina.
:t
\
.'
5.77. EI----'o _
de la Figura 5.7 interpreta el contenido del registro de instrucción, decide qué mi·
croprograma interno seguir e indica a la unidad de control y temporización el procedimiento a
seguir.
Res. decodificador de instrucciones.
5.78. La ___ (tres letras) del microprocesador de la Figura 5.7 realiza las operaciones de suma, resta,
ANO, OR Y desplazamiento.
Res. ALU.
5.85. Acudir
recto.d
Res. d
5.86. Acudir
grama.
Res. i
5.87. El con'
decima
Res.
(
5.88• Lapilll
duranll
Res.
j
~
:;1
I
,:4
5.79. El microprocesador genérico contiene un seilalizador de cero y '\lno de arrastre, Que se encuentran en
el ___ (control de interrupción. registro de status).
Res. registro de status.
5.80. El contador de programa y el registro de datos/direcciones del microprocesador genérico pueden
- __ (apuntar a posiciones de memoria. almacenar instrucciones temporalmente).
Res. apuntar a posiciones de memoria.
5.81. ¿Qué tres unidades de la Figura 5.7 pueden apuntar a posiciones de memoria?
Res. contador de programa, puntero de pila y registro de datos/direcciones.
5.82. Acudir a la Figura 5.10, instrucción 2. El registro par HL es cargado con _ _ (una dirección, un
dato) en este programa.
Res. una dirección.
www.FreeLibros.me
,A.l
I
r
'EL MICROPROCESADOR
135
fa OOOOH y hace
5.83. Acudir a las Figuras 5.10 Y 5.lld. El registro _ _ es incrementado desde _ _ (número hexade­
cimal) a _ _ (número hexadecimal) después de la operación.
Res. datos/direcciones (o HL), 2101H, 2102H.
irea de memoria
5.84. Acudir a las Figuras 5.10 y 5.lle. La instrucción 5 es una instruéción de suma _ _ (inmediata,
registro indirecto).
Res. de registro indirecto.
lato proveniente
5.85. Acudir a las Figuras 5.10 Y 5.llg. La instrucción 1 es una instrucción de almacenamiento _ _ (di­
recto, de registro indirecto).
Res. de registro indirecto.
Lcódigo de op o
ia y un ciclo de
5.86. Acudir a la Figura 5.11a. El microprocesador está _ _ (sacando, introduciendo) la pila en este dia­
I/
t
le tiempo deno­
5.81. El contenido del puntero de pila de la Figura 5.110 después de la operación es _ _ (número hexa­
decimal).
Res. 0007H.
DStrucción o un
5.88. La pila es una memoria temporal especializada de acceso _ _ (aleatorio, secuencial) utilizada
durante las instrucciones de _ _ (introducir, almacenar) y _ _ (cargar, sacar).
Res. secuencial, introducir. sacar.
~ e~:
grama.
Res. introduciendo.
decide qué mi­
rocedimiento a
t : ,:r
l·le suma, resta.
encuentran en
llérico pueden
dirección,
UD
www.FreeLibros.me
Capítulo 6
Memoria de pro
Dirección
Co
(hex)
(b
2000
00
2001
10
6.1. LENGUAJES MAQUINA Y ENSAMBLADOR
2002
00
En el nivel más básico, el microprocesador responde a un listado de operaciones que se denomina
2003
00
2004
OCI
2005
OCI
2006
01
PROGRAMACION
DEL MICROPROCESADOR
programa máquina. El contenido de la memoria de programa de la Figura 6.1 a representa un
programa en código máquina, que comienza en la dirección 2000H con el código de operación
00 1111102 Yfinaliza en la dirección 2006H con 01110 1102, Los programas en esta forma son casi
imposibles de comprender para los seres humanos.
El programa máquina de la Figura 6.1 a puede hacerse algo más fácil de manejar si los núme­
ros binarios se representan en notación hexadecimal. En la Figura 6.1 b se repite el mismo progra­
ma en hexadecimal. El segmento del programa de la Figura 6.lb se considera todavía en código
máquina, aún cuando el binario esté representado en notación hexadecimal. Los programas de
esta forma también son muy dificiles de comprender.
En un nivel más humano, el programa anteriormente descrito en código máquina puede
describirse como sigue:
2007
l. Cargar el número binario (lOt 10100) en el acumulador del microprocesador.
2. Complementar cada bit del número binario del acumulador para formar el complemento
a l.
3. Almacenar el resultado, del complemento a 1, en la posición 2100 16 de la memoria de
datos.
El segmento de programa descrito cambia un número binario de 8 bits a su forma equivalente de
complemento a l.
Surge la siguiente pregunta: ¿Cómo transformar la descripción del lenguaje humano del pro­
grama al código máquina? La respuesta se encuentra en un sencillo lenguaje de programación
próximo al programa máquina observado en la Figura 6.1. Un lenguaje ensamblador utiliza
palabras y frases para representar los códigos máquina del microprocesador. Generalmente, una
frase o sentencia en lenguaje ensamblador constará de la 3 bytes de código máquina. La idea
fundamental de este proceso de ensamblamiento se muestra en la Figura 6.2a. Aquí, a título de
ejemplo, la segunda instrucción del programa es representada por un único nemotécnico de tres
letras CMA (complementar el acumulador). Las letras del nemotécnico son traducidas primero a
su representación ASCII equivalente (American Standard Code for Information Interchange).
Los tres códigos ASCII son evaluados entonces, en orden, por un programa ensamblador especial,
y el código máquina para «complementar al acumulador» resulta ser 00101111 2, ó 2FH. El
nemotécnico ha generado un simple byte de código de lenguaje máquina.
136
www.FreeLibros.me
la) Programa e
'~
unsegmj
Figura 6.2a. Se
¡
(l) etiqueta, (2) :
siempre y apam
ne el nemotécni
blador esencialr
ción sobre regís.
los campos de :
rrecto en lengu.
memoria de pn
programa enSéll
para comprend
t
PROGRAMACION DEL MICROPROCESADOR
íturo 6
¡-',
Memoria de programa
Dirección
(hex)
Contenido
(binario)
2000
00111110
2001
t se denomina
representa un
de operación
orma son casi
r si los núme­
!1ismo progra­
~ia en código
programas de
Contenido
(hex)
2000
3E
10110100
2001
84
2002
OOlOllll
2002
2F
2003
00110010
2003
2004
00000000
2004
00
2005
00100001
2005
21
2006
76
2007
íquína puede
Memoria de programa
Dirección
(hex)
2006
O
137
_Comienzo del
programa
~
Fin del programa
I
-
Comienzo del
programa
32
2007
~
Fin del programa
:omplemento
,
l...emoria de
~
la) Programa en código máquina binario
(b)
Programa en código máquina hexadecimal
luivalente de
del pro­
rogramación
lador utiliza
Ilmente, una
ina. La idea
L a título de
Figura 6.1.
WlO
mIco de tres
as primero a
nterchange).
rior especial,
. ó 2FH. El
Un segmento de programa en lenguaje ensamblador escrito a mano, puede parecerse al de la
Figura 6.2a. Se acostumt.ra a dividir las sentencias del lenguaje ensamblador en cuatro campos:
(1) etiqueta, (2) nemotécnico, (3) operando y (4) comentarios. El campo de etiqueta no se utiliza
siempre y aparece vacío en este sencillo segmento de programa. El campo de nemotécnico contie­
ne el nemotécnico exacto que proporciona el fabricante. Este campo indica al programa ensam­
blador esencialmente la operación que se va a realizar. El campo de operando contiene informa­
ción sobre registros. datos o direcciones asociados con la operación. Utilizando la información de
los campos de nemotécnico y operando, el programa ensamblador puede generar el código co­
rrecto en lenguaje máquina. El programa ensamblador puede también asignar posiciones de la
memoria de programa a los listados en código máquina. El campo de comentario no lo evalúa el
programa ensamblador, solamente lo imprime. El campo de comentario es una ayuda valiosa
para comprender qué ocurre en el programa.
I
www.FreeLibros.me
f*
•
..
138
FUNDAMENTOS DE LOS MICROPROCESADORES
Código nemotécnico de
Representación
complementar el acumulador
ASCII
C
• 01000011 - - - _
• 01001101---__
• 01000001 - - -__
M
A
(a)
Traducción del lenguaje
Código máquina de
ensamblador al lenguaje de máquina complementar el acumulador
Programa
ensamblador
- _ _...._ 001011110 2FH
Traducción del nemotécnico del lenguaje ensamblador al código máquina por un programa ensamblador
Etiqueta
Nemotécnico
MVI
Operando
Comentarios
A. B4H
; Carga el acumulador con el dato que sigue inmediatamente,
que es B4H
CMA
; Complementa el contenido del acumulador
STA
2100H
HLT
; Almacena el contenido del acumulador en la posición de
memoria 21 OOH
Una vez qi
listado análog,
máquina (lista
ser la de (1 ) t~
posiciones con
versión del len
hacerse manw
Un progral
lenguaje ensar
programa fuel
máquina, a és1
método de «h
(BASIC, FOR
una sentencia
máquina. El tí
to a microcorr
instrucciones (
ayuda a comp
; Se detiene la MPU
6.1.
(b)
Dirección
(hex)
Programa en lenguaje ensamblador
Comentarios
6.2.
MVI
3E
2001
2002
B4
2F
CMA
2003
32
STA
2004
2005
2006
00
21
76
A.B4H
2100H
HLT
(e)
-
50
Sohri
U.
máqui
Contenido
(hex)
Etiqueta Nemotécnico Operando
2000
Los
; Carga acumulador con el dato que
sigue inmediatamente, que es B4H
; Complementa el contenido del
acumulador
; Almacena el contenido del
acumulador en la posición de
memoria 21 OOH
Soluó
ces!!
6.3.
Uu_
cir el
Soluci
\JI
dor al
; Se detiene la MPU
Programa en lenguaje ensamblador y máquina combinados
Un le
instro
6.4.
ListaJ
Soluci
Figura 6.2.
www.FreeLibros.me
Ve
lengw
f
PROGRAMACION DEL MICROPROCESADOR
Í@o máquina de
enlar el acumulador
11 o 2FH
~
l
ensamblador
nmediatamente,
1 posición
de
139
Una vez que el programa ensamblador de la Figura 6.2 ha sido ensamblado, se obtiene un
listado análogo al programa de la Figura 6.2c. Aquí se han añadido las direcciones y códigos
máquina (listados bajo la columna «contenido»). En resumen, la tarea del ensamblador parece
ser la de (1) traducir los nemotécnicos y operandos al código máquina equivalente y (2) asignar
posiciones consecutivas de memoria a cada código de op y operando. La tarea de conseguir de la
versión del lenguaje ensamblador de la Figura 6.2b la versión ensamblada de la Figura 6.2c puede
hacerse manualmente o con un programa ensamblador especial.
Un programa compuesto por sentencias simbólicas, tal como el segmento de programa en
lenguaje ensamblador de la Figura 6.2b, a veces se denomina programa fuente. Una vez que el
programa fuente ha sido traducido (por el ensamblador o compilador) a su forma en código
máquina, a ésta se denomina programa objeto. La programación en lenguaje ensamblador es un
método de «hllmanizar» las operaciones de un microprocesador. Los lenguajes de alto nivel
(BASIC, FORTRAN, Pascal, etc.) hacen la tarea de programar aún más sencilla. Por ejemplo,
una sentencia en BASIC, FORTRAN o Pascal puede ser equivalente a unos 20 a 30 códigos
máquina. El título del capítulo hace referencia a la programación de un microprocesador (opues­
to a microcomputadora) puesto que el capítulo tratará de utilizar directamente el repertorio de
instrucciones del microprocesador. Se utilizará la programación en lenguaje ensamblador porque
ayuda a comprender las operaciones y el repertorio de instrucciones del microprocesador.
lo 1/ OJO(J
O I O ~ I O I :roo O I } () O
PROBLEMAS RESUELTOS
--------------~--~~~~~=======---q
6.1.
Los segmentos de programación mostrados en la Figura 6.1 se consideran programas C.
___ (ensambladores, máquina).
Solución:
Los segmentos de los programas mostrados en la Figura 6.1 se consideran programas
máquina.
ios
6.2.
• el dato que
,que es B4H
Solución:
Un lenguaje ensamblador utiliza palabras y frases para representar instrucciones del micropro­
cesador.
:llIdo del
• del
oonde
Un lenguaje ___ (ensamblador, máquina) utiliza palabras y frases para representar
instrucciones de microprocesador.
6.3.
Un ___ (ensamblador, monitor) es un programa especial de computadora para tradu­
cir el lenguaje ensamblador al lenguaje máquina.
Solución:
Un ensamblador es un programa especial de computadora para traducir el lenguaje ensambla­
dor al lenguaje máquina.
6.4.
Listar los cuatro campos típicos de una sentencia de lenguaje ensamblador.
Solución:
Ver las etiquetas en la parte superior de la Figura 6.2b. Los cuatro campos de una sentencia en
lenguaje ensamblador son etiqueta, nemotécnico, operando y comentarios.
/
www.FreeLibros.me
.'
~
r
"
,
,
1
"
\
"
~
¡
140
FUNDAMENTOS DE LOS MICROPROCESADORES
6.5.
Una vez que se ha ensamblado el programa ensamblador, éste contendrá las direcciones
de memoria y el código _ _ (BASIC, máquina) de cada sentencia del lenguaje ensam­
blador.
,
Solución:
Observar un segmento de programa ensamblado en la Figura 6.2c. Una vez que el programa
ensamblador se ensambla, contendrá las direcciones de memoria y el código máquina de cada
instrucción del lenguaje ensamblador.
6.2. REPERTORIO SIMPLIFICADO DE INSTRUCaONES
Se presentará un repertorio de instrucciones para el microprocesador genérico ilustrado en la
Figura 5.7. Los nemotécnicos y códigos de operación utilizados son un subconjunto del reperto­
rio de instrucciones del microprocesador 8080/8085. Los derechos de copia de los nemotécnicos
y de los códigos de op se utilizan con el permiso de lntel Corporation. Se pensó en utilizar
nemotécnicos arbitrarios para el microprocesador genérico. Sin embargo~ se decidió que utilizar
un subconjunto del repertorio de instrucciones del 8080/8085 dará al estudiante un punto de
partida sobre la MPU cuando se estudien los Capítulos 8 y 9. Debe mencionarse que los progra­
mas del 8080/8085 son compatibles con los sistemas 8086 y 8088.
Un resumen de los registros disponibles al programador, en el microprocesador genérico, se
ilustra en la Figura 6.3. En la parte superior derecha está el acumulador (A) de propósito general
de 8 bits. En la parte superior izquierda está el registro de status de 8 bits que contiene los
señalizadores. En la visión expandida del registro de status, el señalizador de arrastre (eY) se
muestra en la posición B7 , mientras que el señalizador de cero (2) se localiza en la posición Bo'
Las posiciones 1 a 6 no se utilizan en el registro de status del microprocesador genérico simplifica­
do. Es costumbre que los microprocesadores reales tengan algunos señalizadores más.
En la segun
datos/direccion
propósito genel
utilizados para
En la parte.
de programa (}
pila (SP) conti,
RAM.
El repertori.
categorías espeí
1. Instrucc
2. lnstrucc
3. Instrucc
4. lnstrucc
5. Instrucc
6. lnstrucc
7. Instruc,
La MPU genér
del repertorio e
considerará ca<!
'.
6.6.
Las 6"
qué re¡
So__
Las
de inSU'
bies COI
6.7.
Señalizadores
(8)
A
(8)
H
(8)
L
(8)
pe
(16)
SP
(16)
,
,~
Solucici
El ..
geDel1lll
6.8.
Acudil
proces
Soluc:WI
De
señaliz:
Figura 8.3. Modelo de programación para el microprocesador genérico.
www.FreeLibros.me
AcudiJ
sador I
•
.~
.
PROGRAMACION DEL MICROPROCESADOR
lrá
las direcciones
del lenguaje ensam-
vez que el programa
igo máquina de cada
I
rico ilustrado en la
anjunto del reperto­
le los nemotécnicos
~ pensó en utilizar
lecidió que utilizar
liante un punto de
lI'Se que los progra­
esador genérico, se
e propósito general
s que contiene los
le arrastre (eY) se
, en la posición Bo'
DeDérico simplifica­
res más.
141
En la segunda línea de la Figura 6.3 se encuentran los registros H y L. Estos son registros de
datos/direcciones multipropósito. Pueden ser usados separadamente como registros de datos de
propósito general o como un registro par (llamado el registro par HL). Como registro par son
utilizados para apuntar o señalar direcciones.
En la parte inferior de la Figura 6.3 se localizan dos registros dedicados de 16 bits. El contador
de programa (PC) señala la siguiente instrucción que se va a ejecutar en la CPU. El puntero de
pila (SP) contiene la dirección del tope de la pila. En este sistema la pila está localizada en la
RAM.
El repertorio de instrucciones del microprocesador genérico está dividido en las mismas siete
categorías especificadas en el Capítulo 4. Estas categorías son:
l.
2.
3.
4.
5.
6.
7.
Instrucciones aritméticas.
Instrucciones lógicas.
Instrucciones de transferencia de datos.
Instrucciones de bifurcación.
Instrucciones de llamada a subrutina.
Instrucciones de vuelta o de retorno.
Instrucciones misceláneas.
La MPU genérica puede ejecutar solamente 67 instrucciones diferentes comparadas con las 239
del repertorio completo de instrucciones del Intel 8085. Para ayudar a su estudio, solamente se
considerará cada vez una categoría de instrucciones.
PROBLEMAS RESUELTOS
6.6.
Las 67 operaciones ejecutadas por el microprocesador genérico son un subconjunto ¿de
qué repertorio de instrucciones de una MPU real?
Solución:
Las operaciones ejecutadas por el microprocesador genérico son un subconjunto del repertorio
de instrucciones de la MPU del Intel 8080/8085. Además, los programas 8080/8085 son compati­
bles con los sistemas de 16 bits 8086/8088.
6.7.
Acudir a la Figura 6.3. Listar tres registros de 8 bits de propósito general del microproce­
sador genérico.
Solución:
El acumulador (A) y los registros de direcciones y datos H y L de la Figura 6.3 son considerados
generalmente dispositivos de almacenamiento en el microprocesador genérico.
6.8.
rico.
t
:.1
, !
Acudir a la Figura 6.3. ¿Qué dos seftalizadores contiene el registro de status en el micro­
procesador genérico?
Solución:
De acuerdo con la Figura 6.3, el registro de status del microprocesador genérico contiene los
señalizadores de arrastre y cero.
www.FreeLibros.me
1I
142
FUNDAMENTOS DE LOS MICROPROCESADORES
6.9.
Acudir a la Figura 6.3. Citar dos registros de 16 bits dedicados utilizados indirectamente
por el programador en el microprocesador genérico.
Instrucciones arfI
Descripción d
la operación
Solución:
De acuerdo con la Figura 6.3, el microprocesador genérico contiene un contador de programa
de 16 bits (PC) y un puntero de pila de 16 bits (SP).
Suma A al dato
Suma L aA
Suma HaA
6.3. REPERTORIO DE INSTRUCCIONES:
OPERACIONES ARITMETICAS
Las instrucciones aritméticas son las primeras operaciones del microprocesador genérico que se
van a considerar. Estas se resumen en la Figura 6.4. Incluyen las operaciones de sumar, restar,
incrementar, decrementar y comparar. Observar en la Figura 6.4 que hay cuatro instrucciones de
sumar. El acumulador, identificado como el registro A en la Figura 6.4, contiene uno de los
números que se va a sumar. Cada instrucción de suma especifica una fuente diferente para el otro
número que va a ser sumado.
Considerar la primera instrucción listada en la tabla de la Figura 6.4. La instrucción «sumar A
inmediato» es una instrucción de 2 bytes cuyo formato se muestra cerca de la parte derecha de la
tabla. Como siempre, el código de op (C6H en este caso) aparece en el primer byte de la memoria
de programa, y el dato a ser sumado al acumulador en el segundo byte. La instrucción ADI se
muestra en forma de diagrama en la Figura 6.5a. El dato inmediato de la memoria de programa
toQOlOoo0 2) se suma al contenido del acumulador (00001111 2), La suma (00011111 2) es devuelta
al acumulador después de la operación.
La segunda instrucción de la Figura 6.4 es «sumar el registro L a An (nemotécnico ADD L).
En la Figura 6.5b se muestra un problema ejemplo utilizando esta instrucción registro a registro.
El contenido del acumulador (0000 10002) se suma al contenido del registro L (00000001 2),
La suma (00001001 2 ) de la instrucción ADD L es devuelta al acumulador después de la
operación.
La tercera línea de la Figura 6.4 muestra la instrucción de un solo byte «sumar H a A»
(nemotécnico ADD H). Esta es otra instrucción de suma registro a registro. Un problema ejemplo
que utiliza la instrucción ADD H se detalla en la Figura 6.5c. El contenido del registro A
(00 10 11 002) se suma al contenido del registro H (00010011 2 ), dando una suma de 00111111 2 , La
suma se deposita en el acumulador una vez que se completa la operación.
La cuarta línea de la Figura 6.4 muestra la instrucción de un solo byte «sumar registro indirec­
to» (nemotécnico ADD M). La posición del dato que se va a sumar es algo más complicada
utilizando este modo de direccionamiento indirecto de registro. Un problema ejemplo que utiliza
la instrucción ADD M se muestra en la Figura 6.5d. El registro par HL contiene una dirección de
16 bits, que señala a la posición adecuada de la memoria de datos (LOC). El contenido de esta
posición (000000 11) se suma al contenido del acumulador (O 11000001), La suma (O 11000 11 2 ) es
devuelta al acumulador después de la operación de suma. Las instrucciones de registro indirecto
utilizan un registro de 16 bits (habitualmente el registro par HL) como puntero de dirección.
Observar de nuevo la instrucción «sumar registro indirecto» (ADD M) de la Figura 6.4. La
descripción dice «Sumar LOC (H&L) a A» que se leerá como «sumar el contenido de la posición
de memoria apuntada por el registro par HL al contenido del registro A». Al leer esta instrucción
a través de la Figura 6.4, se ve que el modo de direccionamiento es indirecto de registro. El único
Suma LOC(H
aA
Resta el dato di
Resta L de A
Resta H de A
Resta LOC (H
de A
Incrementa A
Incrementa H L
Decrementa A
Decrementa H,
Compara A
001
el dato
•
Compara A COI
A
Compara .4 ro
Compara :4
LOC(H
t
C'O
~
l
( ) contenido ~
(( » = direcCIonan
www.FreeLibros.me
~
.
1,:
..
11
. .·
. · . ···'
r
l indirectamente
~
ador de programa
t
I.
genenco que se
e sumar, restar,
instrucciones de
ene uno de los
mte para el otro
trión «sumar A
te derecha de la
~ de la memoria
rucción ADI se
'Ía de programa
11:) es devuelta
!coico ADD L).
pstro a registro.
L (00000001 2),
después de la
Lmar H a A»
'¡'lema ejemplo
, del registro A
0011 I1ll r La
"e'gistro indirec­
.. ' complicada
lplo que utiliza
la dirección de
":,nido de esta
: 1000110) es
~stro indirecto
le dirección.
Figura 6.4. La
, de la posición
:sta instrucción
Psiro. El único
143
PROGRAMACION DEL MICROPROCESADOR
Instrucciones aritméticas
Descripción de
la operación
Suma A al dato
Cód.
Modo de
Bytes
direcciona- Nemotécnico de
opero
miento
Inmediato
ADI
C6
2
Formato de la
instrucción
Simbólico
11
Código de op.
1
11
datos
I
(A) +- (A) + (byte 2)
Suma L aA
Registro
AOOL
85
I
Suma HaA
Registro
AODH
84
I
ICódigo de op. I (A) +- (A) + (L)
ICódigo de op. I (A) +- (A) + (H)
ADDM
86
1
I Código de op. I (A) +- (A) + «H)(L»
SUI
D6
2
Suma LOC (H y L) Indirecto
de registro
aA
Resta el dato de A
Inmediato
11
Código de op.
1
11
datos
1
(A) +- (A) ­ (byte 2)
Incrementa A
Re
INCA
3C
I
I Código de op. (A) +- (A) ­ (L)
I Código de op. (A) +-(A) ­ (H)
ICódigo de op. (A) +- (A) ­ «H)(L»
I Código de op. I (A)+-(A) + 1
Incrementa HL
Registro
INXH
23
I
ICódigo de op. I (HL) +- (HL) + I
Decrementa A
Registro
OCRA
3D
I
I Código de op.•
(A)+-(A)-I
Decrementa HL
Registro
OCXH
2B
I
ICódigo de op.
(HL)+-(HL)- I
Resta L de A
Registro
SUBL
95
I
Resta H deA
Registro
SUBH
94
I
SUB M
96
1
Resta LOC (H y L) Indirecto
deA
de registro
Señalizadores
afectados
Z. cy
Z.CY
Z. Cy
Z. CY
Z. Cy
Z. CY
Z.CY
Z. CY
Z
Z
Z-I sí
Compara A con
el dato
CPI
Inmediato
FE
2
.1
Código de op. •
1
datos
(A)
(A) ­ (byte 2)
1
=
(byte 2)
Cy= I sí
(A) < (byte 2)
Z= I sí
Compara A con L
Registro
CMPL
BO
1
ICódigo de op.
(A) = (L)
(A)
(L)
CY= I sí
(A) < (L)
Z- I si
Compara A con H
Registro
CMPH
BC
1
I Código de op. I (A) -(H)
(A)
=
(H)
CY= I si
(A) < (H)
Z= I sí
Compara A con
Indirecto
LOC (Hy L)
de registro
CMPM
( ) contenido de
« )) = direccionamiento indirecto de registro
Figura 6.4.
BE
1
I Código de op. • (A) ­
(A) = «H)(L»
«H)(L»
CY= I sí
(A) < «H)(L»
+ - suma
- - resta
Instrucciones aritméticas para el microprocesador genérico
(subconjunto de instruccíones Intel 8080;8085).
www.FreeLibros.me
\
144
RJNDAMENTOS DE LOS MICROPROCESADORES
Acumulador
Acumulador
Resultad
(A)
Después de la operaciÓD
Contenido
registro
Memoria de programa
Figura 6
Dato
(a)
La instrucción de suma A inmediata
Acumulador
Acumulador
Después de la operación
Antes de la operaciÓD
ADDL
Registro L
10000 0001 I
(b) La instrucción de suma L y A
Acumulador
Acumulador
Antes de la operación
Registro H
Después de la operación
I000 1 00 11 I
(e)
La instrucción de suma H y A
Acumulador
nemotécnicc
86 16 , De acu
to» es una ir
código de 01
forma simbé
ción ADD.\
cambiando ¡
parte derech
Los paréntes
se va a reafu
de registro i
memoria de
de memoria
resultado es
La colur
durante la e
afectados pi
muestra la 1
Acumulador
Antes de la operaciÓll
Después de la operación
ADDM
Memoria de datos
(LOC)
100000011
I
I
'-t--'
Arrastre
Puntero de
dirección
L
Registro par HL
(a)
(d)
La instrucción de suma registro indirecto
Figura 6.5.
www.FreeLibros.me
Suma.
con
PROORAMACION DEL MICROPROCESADOR
Primer
Resultado
(A)
If
Transferido a
Contenido del
registro A
Figura 6.6.
operando
Operación
Segundo
operando
(A)
+
«H)(L)
Contenido del
registro A
Suma
Contenido del registro HL
que apunta a la posición
del operando de memoria
145
Interpretaciones de ADD; las operaciones utilizan el código simbólico de la tabla
del repertorio de instrucciones.
nemotécnico del lenguaje ensamblador para esta instrucción es ADD M, cuyo código de op es
86 16 , De acuerdo con la columna «Bytes» de la Figura 6.4, la instrucción «sumar registro indirec­
to» es una instrucción de 1 byte. El formato de instrucción muestra un solo byte que contiene el
código de op de la instrucción. La segunda columna de la derecha en la Figura 6.4, detalla, en
forma simbólica, la operación que está realizando la CPU. La sentencia simbólica para la instruc­
ción ADD M se reescribe en la Figura 6.6. Siguiendo el patrón utilizado por lntel Corporation y
cambiando algo la notación habitual, la sentencia simbólica se lee de derecha a izquierda. En la
parte derecha de la flecha, el primer operando se identifica como el contenido de A (acumulador).
Los paréntesis Osignifican «contenidos de» en esta notación. El signo + significa la operación que
se va a realizar, que es una suma en este caso. Los dobles paréntesis «()) denotan una instrucción
de registro indirecto. «H)(L» significa «el contenido del registro HL señala a la posición de
memoria del segundo operando». En otras palabras, el segundo operando reside en una posición
de ,memoria a la que apunta el contenido del registro par HL. Después de la operación, el
resultado es transferido al registro A, o acumulador.
La columna de más a la derecha de la Figura 6.4 lista los señalizadores que son afectados
durante la ejecución de una instrucción. Para dar un ejemplo de cómo los señalizadores son
afectados por una operación, considerar la suma binaria de 11111111 con 0000000 1, como
muestra la Figura 6.7. El método de lápiz y papel para sumar estos dos números de 8 bits se
Acumulador
'1111 l 111
1111111
11111111
+ 0000000 I
1
"--y--J
Arrastre
Antes de la operación
00000000
'---v-"
Contenido
del acumulador
de 8 bits
I
I
0000 0000
~
~~
I
t--
, 0000 000 1
'1
Cy
-11
I
Acumulador
Después de la operación
I
Registro de status
Z
L
fa)
Suma de números binarios
con arrastre
(bJ El efecto de la instrucción ADD M sobre los señalizadores yel acumulador
Figura 6.7.
www.FreeLibros.me
4!W
146
1
,...
1.:
,!
FUNDAMENTOS DE LOS MICROPROCESADORES
muestra en la Figura 6.7a. El mismo problema se muestra como es resuelto por el microprocesa­
dor genérico utilizando la instrucción ADD M en la Figura 6.7b. El acumulador contiene
11111111 2 , mientras que la posición en la memoria de datos señalada por el registro par HL
~on\\~n~ ~\ OlIO n\\mtIO \.l\1t ~t 'tí.\. í\ ~\1ma\ (QQQOOQ l}), Después de que se completa la suma, el
acumulador contiene los 8 bits menos significativos de la suma, que son 000000001' El señaliza­
dor de arrastre del registro de status se pone a 1, indicando que hubo un arrastre del bit más
significativo del acumulador. El señalizador de cero examina el contenido del acumulador des­
puéS de la operación y encuentra 00000000 2 , Al encontrar cero, el señalizador cero se pone a 1,
indicando que el acumulador es 00000000 después de la operación de suma.
A continuación, considerar las cuatro operaciones de resta del repertorio de instrucciones del
microprocesador genérico de la Figura 6.4. Cada instrucción resta el contenido de algunos regis­
tros o posiciones de memoria del contenido del acumulador. Internamente la ALU del micropro­
cesador no tiene hardware para restar, por tanto realiza la sustracción convirtiendo el sustraendo
a su forma de complemento a 2 y sumando.
Como ejemplo, considerar el problema de resta detallado en la Figura 6.8. El binario
0000000 l se resta de 0000100 l (09H - 01 H = 08H). El procedimiento de papel y lápiz se mues­
tra en la Figura 6.8a. Para revisar, la resta binaria puede realizarse sumando el minuendo binario
a la forma en complemento a 2 del sustraendo despreciando el «overflow». El sustraendo en este
problema es 0000000 12, que se convierte a su forma en complemento a 2:
,
complementa
JI I J 1 I !
00001001
+ 1 I I 1 11 I 1
IIIYÍetIe
CY
«No préstamo»
(a)
Forma de complemento a 2 00000oo I
,,_.
, 1~
'_J
00001000
Over­
Ilow
Contenido
del
acumulador
de 8 bits
Resta binaria convirtiendo el sustraendo a su forma de complemento a 2 y sumando
Acumulador
10000 1001 I
Acumulador
Antes de la operaclOO
Registro de status
Memoria de programa
(b)
,.,'
11111110 complemento a I
11111111 complemento a 2
00000001
11111110 +1
..
«1'0
Instrucción de resta inmediata
Figura 6.8.
www.FreeLibros.me
La forma en e
una suma de I
suma es un ~
el overflow pe
vierte el oven
gura 6.8a, el (
no se ha pfeSl
La instruc
Figura 6.8b. I
restado del c(
acumulador (
que no ha oc
mayor que el
despuéS de la
tanto el señal
Considm
ma es restar €
El método df
se convierte ~
PROGRAMACION DEL MICROPROCESADOR
~I
microprocesa­
,Jor contiene
registro par HL
pleta la suma, el
00,. El señaliza­
~ del bit más
!Cumulador des­
ero se pone a 1,
DStrucciones del
le algunos regis­
U del micropro­
do el sustraendo
6.8. El binario
)' lápiz se m ues­
¡ouendo binario
straendo en este
r
l
Il001
L
[D
1
Invien.
00000101
+ 11111010
". '.
o\
\ .... ,.,,1
11111111
Overflow
Contenido
del acumulador
de 8 bits
.....------t'
Cy
«No préstamo»
(a)
147
Forma en complemento a 2 00000110
Resta binaria mostrando el efecto del overflow sobre el señalizador de arrastre
Acumulador
~
Antes de la operación
Acumulador
~
_
Después de la operación
/SUBL
Registro L
OOOO--OL.
I 1-0""1
Registro de status
'1
Cy
(b)
z
La instrucción de restar L de A
Figura 6.9.
La forma en complemento a 2 (11111111) del sustraendo se suma entonces al minuendo, dando
una suma de I 0000 1000, como se ve en la Figura 6.8a. El I de la posición más significativa de la
suma es un «overflow» y no es parte de la diferencia ()()()() 1OOOr El microprocesador utiliza
el overflow para afectar el señalizador de arrastre (o «préstamo» (borrow)). Al restar, la CPU in­
vierte el overflow, y éste se convierte en el contenido del señalizador de arrastre (eY). En la Fi­
gura 6.8a, el overflow de I se invierte y pone a cero el señalizador de arrastre, lo cual significa que
no se ha presentado ningún préstamo o que el minuendo es mayor que el sustraendo.
La instrucción de «resta inmediata» (nemotécnico SUI) se utiliza en el ejemplo de resta de la
Figura 6.8b. El dato inmediato del segundo byte de la memoria del programa (00000001 2 ) es
restado del contenido del acumulador (00001001 2 ), La diferencia de 00001000 2 es transferida al
acum ulador después de la resta. El señalizador de arrastre (<<préstamo») se pone a O, indicando
que no ha ocurrido ningún préstamo o que el número del acumulador antes de la operación era
mayor que el número de memoria. El señalizador de cero examina el contenido del acumulador
después de la operación de resta. El acumulador contiene 0000 1000, que es distinto de cero, por
tanto el señalizador de cero se pone a O.
Considerar otro problema de resta donde el minuendo es menor que el sustraendo. El proble­
ma es restar el binario 00000 110 del número más pequeño 00000 101 (05H - 06H = FFH o -1 10 ),
El método de lápiz y papel para calcular este problema se ilustra en la Figura 6.9a. El sustraendo
se convierte a complemento a 2 de una forma parecida a ésta:
00000110 _c_o_m_p_le_m_e_nt_a... 11111001 complemento a 1
111110 10 complemento a 2
11111001 + l
www.FreeLibros.me
•
148
FUNDAMENTOS DE LOS MICROPROCESADORES
100010000
Acumulador
Antes de la
I
100010000
opersció-;--....€~y--.........
Registro L
~
CMP L
IO
I
Después de la operación
f.. -11 1
Registro de status
Z
Cy
I000 10000 I
000 1 0000
Acumulador
Registro L
La instrucción compara A con L
(a)
11'
O
Cy
(n viene
,-',
O .....- - - - 1, I
(b)
I
_ ... I
Overflow
00010000
+ 1 1110000
00000000
Forma en complemento a 2 de 00010000
Contenido
temporal
de un registro
de la CPU
El minuendo
dando lOOOC
Son igual a ~
ALU,yelse
reinicializacié
contenido de
En resum.
típicas de lo 4
procesadores
sefializadores
de salto inCOI
6.10.
Efecto sobre el señalizador de arrastre cuando se realiza la resta binaria durante la operación de comparación
Sohx
Se
SUIl
Figura 6.10.
El minuendo (00000101 2) se suma entonces a la forma en complemento a 2 del sustraendo
6.11.
(I 1111010), dando una diferencia de 111111 l I. La diferencia 11111111 es la representación en
complemento a 2 de -1 10 como muestra la Figura 2.12. La Figura 6.9a también muestra que la
suma no provoca overflow, o un O en el registro de overflow. Este se invierte (debido a la
operación de resta), dando un 1 en la posición de sefializador CYo «arrastre». Cuando el señali­
zador CY se pone a 1 después de una operación de resta, significa que el número del acumulador
es menor que el número del registro o posición de memoria. El sefializador de arrastre a I implica
que el número del acumulador después de la sustracción es una representación en complemento
a 2 de un número negativo. El III1IlI1 del acumulador de la Figura 6.9 representa -1'0'
El repertorio de instrucciones del microprocesador genérico tiene cuatro instrucciones de
comparación que se muestran en las cuatro últimas líneas de la Figura 6.4. Las instrucciones de
comparación restan el contenido del registro o memoria del contenido del acumulador pero no
cambian sus contenidos. Los señalizadores son afectados por las instrucciones de comparación.
La instrucción «comparar el registro ü> se utiliza como ejemplo en la Figura 6.10. Números
iguales (000100002) en el acumulador y registro L son comparados por el microprocesador. Ob­
servar en la Figura 6. lOa que ni el acumulador ni el registro L cambian los contenidos después de
la operación de comparación. Sin embargo, son afectados los sefializadores del registro de
status.
De acuerdo con la información de la columna simbólica 'de la Figura 6.4, el contenido del
registro L es restado del contenido del registro A cuando se utiliza la instrucción «CMP L». La
Figura 6.lOb muestra este proceso utilizando el método de lápiz y papel. El sustraendo (contenido
del registro L) es cambiado a su forma de complemento a 2 por el procedimiento:
000 10000
complementa ..
1110111 l + 1
1110 1 l 11
Acucl
códi¡
complemento a 1
11110000 complemento a 2
www.FreeLibros.me
Acu<i
de
UI
.
Sol.
6.12.
AcuC
SoIw:
Se
afectl
.~
6.13.
El ce
es_
SoN!
L
0000
oper.
6.14.
AaI
SoII
I
eua
poli
PROORAMACION DEL MICROPROCESADOR
u0000
~
149
El minuendo (00010000 2) y sustraendo en complemento a 2 (11110000) se suman entonces,
dando l 0000 0000. Las ocho posiciones menos significativas son evaluadas para ver si son cero.
Son igual a cero, por tanto el sefializador de cero se pone a l. El overflow de 1 es invertido por la
ALU, y el sefializador de arrastre es igual a O en este ejemplo. Un señalizador de arrastre en
reinicialización (CY = O) significa que el contenido del acumulador es mayor o igual que el
contenido del registro L.
En resumen, las operaciones aritméticas que pueden ser realizadas por la MPU genérica son
típicas de lo que la mayoría de los repertorios de instrucciones pueden realizar. Muchos micro­
procesadores tienen más instrucciones aritméticas y sefializadores en sus registros de status. Los
sefializadores se utilizarán más tarde para afectar el resultado de las instrucciones de bifurcación o
de salto incondicional.
PROBLEMAS RESUELTOS
6.10.
comparación
l
lel sustraendo
esentación en
iluestra que la
(debido a la
mdo el sefiali­
~l acumulador
tre a l implica
complemento
na -1 10•
Solución:
Según la quinta línea de la Figura 6.4, la instrucción de «resta inmediata» tiene el nemotécnico
SUI y el código de op de D6H y es una instrucción de 2 bytes.
6.11.
contenido del
IIC\1P L». La
do (contenido
Acudir a la Figura 6.4. Incrementar significa _
de un registro del microprocesador.
Incrementar significa sumar l al contenido de un registro del microprocesador.
6.12.
Acudir a la Figura 6.4. ¿Qué instrucción de incrementar no afecta al sefializador cero?
Solución:
Según la información de la Figura 6.4, la instrucción ~ H (incrementar registro par HL) no
.
afecta al sei\alizador cero.
6.13.
El contenido del acumulador de la Figura 6.11 después de la operación de decrementar
es _ _ (8 bits).
Solución:
La instrucción DCR A significa restar uno del valor del acum~lador, y por tanto
()()()()()()() l - 1 = ()()()()()()oo. El acumulador de la Figura 6.11 contendrá 00000000 después de la
operación de decrementar.
6.14.
Acudir a la Figura 6.4. El sefializador de cero de la Figura 6.11 está a _ _ (O, l) des­
pués de la operación de decrementar.
Solución:
El contenido del acumulador eS comprobado después de la operación de decrementar y se
encuentra que vale cero; por tanto el sei\alizador de cero del registro de status de la Figura 6.11 se
pone a 1.
www.FreeLibros.me
I
~
(sumar 1 al, restar 1 del) contenido
Solución:
rtrucciones de
Rrucciones de
tlador pero no
:'C'mparación.
" Números
ocesador. Ob­
los después de
el registro de
Acudir a la Figura 6.4. La instrucción «resta inmediata» tiene el nemotécnico ___ y el
código de op D6H y es una instrucción de ___ bytes.
:11&
150
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador
?
Acumulador
Antes de la operación
6.18.
Acudí
despw
SolacM
Después de la operación
Eh
inmedi
dor es:
seña/iz.¡
Registro de status
z
Cy
.
6.] 9.
Figura 6.11.
6.15.
'"""
Acudir a la Figura 6.4. ¿Cuál es la condición del señalizador de arrastre de la Figura 6.11
después de la operación de decrementar?
Solocié
loa
= 1000
Solución:
registro
0000 OC
De acuerdo con la Figura 6.4, el señalizador de arrastre (en no es afectado por la operación de
decrementar A, y por tanto la condición del señalizador de arrastre del registro de status es impre­
decible.
6.16.
AcudiJ
operne
Acudir a la Figura 6.4. Listar el contenido del acumulador y de dos posiciones de la
memoria de programa después de la operación de «comparar inmediato» de la Figu­
ra 6.12.
Registro par ,
Solución:
Las instrucciones de comparación no cambian el contenido de los registros o posiciones de
memoria que se compara. Por tanto. el acumulador contendrá todavía 000011 II después de la
operación de comparación en la Figura 6.12. El código de op para la instrucción ePI es FE 16 (ver la
Figura 6.4), mientras que el dato inmediato de la memoria de programa es todavía 00010000.
6.17.
Acudir a la Figura 6.4. El señalizador de cero de la Figura 6.12 estará a _ _ (O, 1)
después de la operación de «comparación inmediata».
Solución:
El señalizador cero de la Figura 6.12 estará en reinicialización después de la operación de
comparación inmediata. La columna simbólica de"'la Figura 6.4 muestra que la instrucción de
comparación es básicamente una operación de resta donde se evalúa la diferencia. En este caso la
diferencia no es cero, por tanto el señalizador de cero no alcanzará la reinicialización.
Acumulador
,
6.20.
Soluciál
De.
Acumulador
?
ción de i
cible. O
señaliza
Después de la operación
6.21.
Código de
..
'
d?
Dato
Dato
Figura 6.12.
www.FreeLibros.me
Los señ
utilizad
cación.
Código de
operación
Memoria de programa
A~
pués de
Memoria de programa
SoJuciáI
Los!
micropn
PROORAMACJON DEL MICROPROCESADOR
6.18.
~
Acudir a la Figura 6.4. El señalizador de arrastre de la Figura 6.12 estará a _ _ (0, 1)
después de la operación de comparación inmediata.
Solución:
El señalizador de arrastre de la Figura 6.12 estará a l después de la operación de comparación
inmediata porque el resultado de la resta interna de la CPU detecta que el contenido del acumula­
dor es menor que el contenido de la sección del dato de la memoria del programa. Recordar que el
señalizador de arrastre cuando se resta es realmente un señalizador de «préstamo».
~,
~
151
6.19.
• Figura 6.11
Acudir a la Figura 6.4. El contenido del registro par HL de la Figura 6.13 despuéS de la
operación de incrementar es _'_ _ (hex) .
Solución:
Incrementar el contenido del registro par HL significa llll 1111 llll 1111 + l ..
.. l 0000 0000 0000 0000. El bit más significativo de la suma es llevado al extremo izquierdo del
registro H. Por tanto. el contenido en el registro par HL despuéS de la operación será
0000 0000 0000 0000, ó 0000 16 ,
toperación de
I
tatus es impre­
bones de la
• de la Figu­
Registro par HL
1"11 1111 1"11 1111 !
. Registro par RL
Antes de la operaciÓD
Después de la operación
•posiciones de
después de la
es FEI6 (ver la
00010000.
Registro de status
Cy
t
z
_ _ (0,1)
Figura 6.13.
t
\:,oeración de
<rucción de
tu este caso la
6.20.
Do.
•
Acudir a la Figura 6.4. ¿Cuál es la condición de los señalizadores de la Figura 6.13 des­
pués de la instrucción de incrementar el registro par HL?
Solución:
De acuerdo con la Figura 6.4, los señalizadores no son afectados por los resultados de la instruc­
ción de incrementar el registro par HL. y por tanto el contenido del registro de status será imprede­
cible. Observar que las operaciones aritméticas sobre el contenido del acumulador afectan a los
señalizadores, mientras que esta operación se realizaba sobre el contenido del registro par HL.
6.21.
Los sefialízadores son afectados por la mayoría de las operaciones aritméticas pero son
utilizados por el microprocesador durante la ejecución de instrucciones ___ (de bifur­
cación, lógicas).
Solución:
Los señalizadores son afectados por la mayoría de las operaciones aritméticas, pero lo utiliza el
microprocesador durante las instrucciones de bifurcación (condicional).
www.FreeLibros.me
!
,1
152
FUNDAMENTOS DE LOS MICROPROCESADORES
v
6.4. REPERTORIO DE INSTRUCaONES:
OPERAaONES LOGICAS
Las instrucciones lógicas son las segundas operaciones del microprocesador genérico que se van a
considerar. Estas están resumidas en la Figura 6.14. Incluyen las instrucciones ANO, OR, OR
exclusiva, complementacÍón (NOT) e instrucciones de desplazamiento circular. La organización
de la tabla de la Figura 6.14 es la misma que la utilizada para las operaciones aritméticas anterio­
res. Oe nuevo, el foco de la mayor parte de las operaciones está en el contenido del acumulador.
Como con las instrucciones aritméticas, el modo de direccionamiento indica cómo y dónde se
encuentra el otro dato en el sistema basado en microprocesador.
Considerar. el uso de la instrucción «ANO inmediato» del microprocesador genérico, como
muestra la Figura 6.15a. El contenido del acumulador (000 l 00 11) realiza la operación ANO con
el segundo byte de datos de la memoria del programa (0000000 1). La operación ANO se realiza
bit a bit. Según la tabla de verdad de la Figura 3.1, sólo el bit menos significativo de cada número
es un 1; por tanto la salida será 0000000 l. El resultado de la operación ANO se coloca en el
acumulador. Oe acuerdo con la última columna de la Figura 6.14, todas las operaciones ANO
hacen que el señalizador de arrastre se ponga a cero, lo cual también se pone de manifiesto en la
Figura 6.15a. Se comprueba si es cero el resultado de la operación ANO y como no lo es, el
señalizador de cero está a O. Observar que el punto ( . ) de la Figura 6.14 debajo de la columna
«Simbólico» denota la operación ANO.
En la Figura 6.15b se ilustra un segundo ejemplo que utiliza una instrucción ANO. Aquí se
usa la instrucción «ANO registro indirecto» (nemotécnico ANA M). El contenido del acumula­
dor realiza la operación ANO (bit a bit) con el contenido de la posición de la memoria de datos
señalada por el registro par HL. Al realizar la operación ANO entre 00111100 y 00000001, se
encuentra que el resultado de salida es 00000000, que se almacena en el acumulador. El señaliza­
dor de arrastre se pone a cero según la información de la Figura 6.14. Se comprueba el contenido
del acumulador (00000000) y al ser cero se pone a l el señalizador de cero.
Observar cuidadosamente las Figuras 6.15a y b. En ambos ejemplos el segundo operando es
0000000 l. Este operando se utiliza como una máscara. En las Figuras 6.15a y b la máscara
00000001 puede utilizarse para poner a cero los siete bits más significativos. O posiblemente, se
utilice el único l de la máscara 00000oo 1 junto con el señalizador de cero, para comprobar la
presencia de un O ó un l en la posición LSB del contenido del acumulador. Cuidado: Observar
que el contenido del acumulador cambia cuando se utilizan instrucciones ANO. Algunos micro­
procesadores tienen «instrucciones especiales de 'test' de bits», que realizan la operación ANO del
acumulador con un byte de máscara sin cambiar el contenido del acumulador mientras cambian
los señalizadores.
Las cuatro instrucciones OR listadas en la Figura 6.14 realizan la operación OR del contenido
del acumulador con el de otros registros o posiciones de memoria. Un ejemplo de una operación
OR se muestra en la Figura 6.16. Aquí el contenido del acumulador es 1100 1100, mientras que el
registro L contiene 0000 1111; el resultado de la operación OR es I 1001111. La operación OR se
realiza bit a bit según la tabla de verdad de la Figura 3.1. El 00001111 del registro L puede
considerarse una máscara que siempre pone a 1 los 4 bits menos significativos. Observar el uso
del símbolo lógico OR (+) en la columna simbólica de la Figura 6.14.
Las dos últimas operaciones lógicas listadas en la tabla de la Figura 6.14 son las de desplaza­
miento circular a través del arrastre. Los diagramas de la columna simbólica de la tabla muestran
la acción de desplazamiento provocada por estas instrucciones.
Considerar el ejemplo de la Figura 6.17 donde se utiliza la instrucción de desplazamiento
www.FreeLibros.me
Instrucciones
~
Descripción
la operacK
ANO de A ro
ANO de A
al
ANO deA
al
ANO de A co
LQC(H el
OR deA con
OR de A con
OR de A con
OR de A con.
(H & L)
OR exclusivo,
con dato
OR exclusivo 4
conA
OR exclusi\o
con L
í
OR e1!c1usi\o
con H
4
OR exclusívo 4
con LOC(H
Complemen'­
(complemem
Desplazamienl
circular a La
derecha a U"l
delarrastn:
Desplazamimll
circular a La
izquierda a 1
del arrastre
( ) contenido
« }) - direccionam
FigUl
153
PROGRAMACION DEL MICROPROCESADOR
Instrucciones lógicas
ico que se van a
ANO,OR,OR
La organización
méticas anterio­
tlel acumulador.
~mo y dónde se
genérico, como
ación ANO con
ANO se realiza
:le cada número
se coloca en el
etaciones ANO
nanifiesto en la
!IlO no lo es, el
, de la columna
ANO. Aquí se
o del acumula­
maria de datos
Descripción de
la operación
ANO de A con dato Inmediato
I
r
dato
1
(A) +- (A) • (byte 2)
Z
1
CYse borra
Z
A5
l
I Código de op. I (A)+-(A)· (L)
CYse borra
ANO deA con H
Registro
ANAH
A4
I
I Código de op. I (A) ..... (A) . (H)
Z
CYse borra
ANO deA con
LOC (H&L)
Indirecto
de registro
ANAM
A6
1
I Código de op. I (A) ..... (A) . «H)(L»
CY se borra
OR de A con dato
Inmediato
ORI
F6
2
rCódigo de op.
1
11
dato
1
(A) ..... (A) + (byte 2)
Z
Z
1
CYse borra
OR deA con L
Registro
ORAL
B5
1
I Código de op. I (A) ..... (A) + (L)
Z
CY se borra
ORdeA con H
Registro
ORAH
B4
I
I Código de op. I (A) ..... (A) + (H)
CYse borra
Indirecto
de registro
ORA M
B6
1
I Código de op. I (A) ..... (A) + «H)(L»
CYse borra
Inmediato
XRI
EE
2
OR de A con LOC
(H &L)
ICódig~~
I1
dato
(A) ..... (A)
(f)
(byte 2)
Z
Z
Z
CYse borra
Z-I
Registro
XRAA
AF
l
el acumulador
I Código de op, I (A)Bom!
+- (A) (f) (A)
CY se borra
OR exclusivo de A
con L
Registro
XRAL
AO
l
I Código de op. I
(A) ..... (A)
(f)
(L)
CY se borra
OR exclusivo de A
con H
Registro
XRAH
AC
l
I Código de op·1
(A) ..... (A)
(f)
(H)
CYse borra
OR exclusivo de A Indirecto
con LOC(H&L de registro
XRAM
AE
I
I Código de op. I (A) ..... (A) (f¡ «H)(L»
Complementar A
(complemento a I Inherente
CMA
2F
l
Desplazamiento
circular a la
derecha a través
del arrastre
RAR
IF
I
conA
Inherente
Desplazamiento
circular a la vés
izquierda a trav Inherente
del arrastre
11
Código de op.
1
Z
Z
Z
CYse borra
(A) ..... (A)
I Código de op, I ~[i]J
CY
A
RAL
1
17
I Código de op, I ~a
A
. -AND
+-OR
$-XOR
( ) contenido
« )) - direccionamiento indirecto de registro
abla muestran
:splazamiento
rCódigo de op,
ANAL
OR exclusivo de A
l de, desplaza­
I
Registro
Ior. El señaliza­
ba el contenido
ldel contenido
una operación
aientras que el
("--ación OR se
, :ro L puede
:' rvar el uso
2
E6
Señalizadores
afectados
Simbólico
ANOdeA con L
OR exclusivo de A
con dato
)Siblemente, se
l comprobar la
lado: Observar
Ugunos micro­
lC'ión ANO del
mtras cambian
ANI
Formato de la
instrucción
1
y 00000001, se
lo operando es
, b la máscara
Modo de
Cód.
direcciona- Nemotécnico de Bytes
opero
miento
.
Figura 6.14. Instrucciones lógicas para el microprocesador genérico (Stlbconjunto
de las instrucciones del Intel 8080/8085) .
www.FreeLibros.me
CY
154
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador
Acumulador
Después de
la operación
Registro de status .
Memoria de programa
Datos
(a)
La instrucción AND inmediato
Figura 8.1
Acumulador
Acumulador
Después de la operación
Registro de status
Z
CY
Registro par H L
.,1
,
(b)
La instrucción ANA M
i
I
Figura 6.15.
.. ¡t¡
Con una o
cualquier bit y
do por una in
miento circula
número par de
Observar q\
y no necesitan
modo de direo
namiento para
instrucciones el
genérica.
En resUJDel
booleana en la:!
para comprob<
tan obvias COII
Acumulador
Acumulador
Después de la operación
J,
6.22.
AcudÍ!
operac
Registro L
SoIUCKl
La
Figura 6.16.
f,
La instrucción DR de A con L.
circular a la derecha del acumulador a través del arrastre. El contenido del acumulador
(00 11000 1) se desplaza una posición a la derecha transfiriéndose el bit menos significativo (un I
en este ejemplo) a la posición del bit del señalizador de arrastre. El arrastre actual entrará en la
posición del bit MSB del acumulador. El acumulador contiene 00011000 después de la opera­
ción, mientras que el señalizador de arrastre se pone a 1 como muestra la Figura 6.17. El señaliza­
dor de cero no es afectado.
www.FreeLibros.me
.¡;
acumu!
6.23.
1
AcudÍI
de la e
Soló
Sq
Despu
cero S(
'1
del acumulador
. ' lficativo (un l
entrará en la
l)Ués de la opera­
6.17. El señaliza-
tua.
PROGRAMACION DEL MICROPROCESADOR
Acumulador
Acumulador
Registro de status
Registro de status
Cy
Figura 6.17.
155
z
z
La instrucción desplazamiento circular a la derecha de A a través del arrastre.
Con una o más instrucciones de desplazamiento circular, puede comprobarse la posición de
cualquier bit y el señalízador de arrastre puede ponerse a l ó a O, pudiendo entonces ser examina­
do por una instrucción de bifurcación condicional. Otro uso de las instrucciones de desplaza­
miento circular es para comprobar la paridad. La paridad par seria un número binario con un
número par de unos en la palabra.
Observar que las instrucciones de desplazamiento circular operan solamente en el acumulador
y no necesitan ningún operando de ningún registro o posición de memoria. Por esta razón, el
modo de direccionamiento se denomina inherente, o a veces no se cita ningún modo de direccio­
namiento para estas instrucciones. La mayoria de los microprocesadores tienen varios tipos de
instrucciones de desplazamiento y desplazamiento circular además de las utilizadas por la MPU
genérica.
En resumen, las instrucciones lógicas se utilizan para realizar manipulaciones del álgebra
booleana en las variables. También se utilizan para poner a l ó O bits específicos de una palabra y
para comprobar y comparar bits. Las aplicaciones de estas instrucciones habitualmente no son
tan obvias corno las aplicaciones de las instrucciones de suma y de resta.
PROBLEMAS RESUELTOS
6.22.
J.
Acudir a la Figura 6.14. El contenido del acumulador en la Figura 6.18 después de la
operación ANO es _ _ (8 bits).
Solución:
La operación AND de 111 10011 con 10000000, bit a bit, da 10000000. El contenido del
acumulador en la Figura 6.18 después de la operación AND es 10000000.
6.23.
Acudir a la Figura 6.14. Listar la condición de los señalizadores de la Figura 6.18 después
de la operación ANO .
Solución:
Según la información de la línea 3 de la Figura 6.14, el señalizador de arrastre se pondrá a O.
Después de la operación AND el contenido del acumulador no es cero; por tanto el señalizador de
cero se pone en reinicialización (a O).
IMIII!I"'I.;¡¡¡;¡iliIIlttJI¡¡¡,,,4IiMIUliJl:U;G¡;;;;II'U¡¡¡¡;
ai
..............
www.FreeLibros.me
i Ld 2! 12 las .
-"
..
~
156
FUNDAMENTOS DE LOS MICROPROCESADORES
6.24.
Si el propósito del byte del registro H de la Figura 6.18 es comprobar si el MSB del
acumulador es O ó 1, la palabra 10000000 en el registro H se denomina _ _ (máscara,
palabra de test).
Solución:
La palabra 10000000 en el registro H de la Figura 6.18 se denomina máscara si su propósito es
comprobar el MSB del acumulador para determinar si es O ó l. Al utilizar esta máscara en la
instrucción ANA H. si el señalizador de cero es 1, entonces el MSB del byte del acumulador es O; si
el señalizador de cero es O, entonces el MSB es l.
Acumulador
Acumulador
Registro H
Registro de status
Cy
z
SoIá1
Figura 6.18.
6.2~.
Acudir a la Figura 6.14. Cuando se utiliza la instrucción «üR A inmediato» (nemotécni­
co de ORI), el operando que realizará la operación OR con el contenido del acumulador
proviene de la memoria de _ _ (datos, programa).
;
,
\ --j
5eg1
conteru
6.30.
AcudiJ
operac
Solución:
La instrucción «OR A inmediato» busca su operando a partir del segundo byte de la memoria
del programa.
6.26.
I
',.
J,
"
-1
Acudir a la Figura 6.14. La fuente de la dirección (LOC) del operando en la memoria de
datos de la Figura 6.19 es el _ _ (registro par HL, puntero de pila).
s....J
Solución:
Según la información sobre la instrucción ORA M de la Figura 6.14, la fuente de la dirección
(LOC) del operando en la memoria de datos de la Figura 6.19 es el registro par HL.
;
-1
í
•..
.,
ORo
6.27.
~
-
Solución:
El símbolo + utilizado en la tabla de instrucciones lógicas de la Figura 6: 14 denota la operación
tJ
...J
..~
El símbolo + utilizado en la tabla de instrucciones lógicas de la Figura 6.14 denota la
operación _ _ (suma, OR).
La
colUDlJ
operac
,
¡j
6.28.
• Ji,
f: :i¡
;I 11
Acudir a la Figura 6.14. El contenido del acumulador después de la operación OR en la
Figura 6.19 es _ _ (8 bits).
l .•
Acudi
la Fig
Solución:
El contenido del acumulador después de la operación OR, bit a bit, en la Figura 6.19 es
10000111.
SoW
Acudir a la Figura 6.14. Listar la condición de los señalizadores del registro de status de
la Figura 6.19 después de la operación ORo
¡:l()SÍCÍj
i
6.29.
6.31.
'fl! .
'¡
www.FreeLibros.me
De
ción d
señafu
r
PROGRAMACION DEL MICROPROCESADOR
si el MSB del
_ _ (máscara,
Ir
157
Acumulador
Acumulador
,
~
I
~'
Antes de la opel'Bclón
si su propósito es
Memoria de datos
máscara en la
ICUmulador es O; si
tsta
Registro de status
(LOC)
Cy
z
?
Figura 6.19.
t
Solución:
Según la información de la tabla de la Figura 6.14, el seí\alizador de arrastre se pone a O. El
contenido del acumulador no es cero; por tanto el seí\alizador de cero está a O.
'
Ito» (nemotécni­
del acumulador
6.30.
l
Acudir a la Figura 6.14. El contenido del acumulador de la Figura 6.20 después de la
operación de desplazar circularmente a la izquierda es ___ (8 bits).
.. Acumulador
yte de la memoria
t
Antesdela~
16.14 denota la
L
Registro de status
la
mc~moria de
Después de la opemcl6n
lit --j O I
Cy
la Ope!lICión
t
Acumulador
Registro de status
z
Cy
Z
Figura 6.20.
Solución:
La acción de la instrucción de desplazamiento circular a la izquierda está contemplada en la
~
columna simbólica de la Figura 6.14. El contenido del acumulador, en la Figura 6.20, después de la
operación de desplazamiento circular a la izquierda es JIl 00 111.
de la dirección
L.ción OR en la
~
Acudir a la Figura 6.14. Listar la condición de los señalizadores del registro de status de
la Figura 6.20 después de la operación de desplazamiento circular a la izquierda.
Solución:
la Figura 6.19 es
IIO
6.31.
de status de
De acuerdo con la Figura 6.14, solamente es afectado el seftalizador de arrastre por la instruc­
ción de desplazamiento circular a la izquierda; por tanto, el señalizador de cero permanece a O. El
seftalizador de arrastre se pone a O porque el MSB del acumulador es desplazado a la izquierda a la
posición del arrastre.
www.FreeLibros.me
158
FUNDAMENTOS DE LOS MICROPROCESADORES
6.5. REPERTORIO DE INSTRUCCIONES:
OPERACIONES DE TRANSFERENCIA DE DATOS
Instrucciones de l!1II
Las instrucciones de transferencia de datos son la tercera categoría de operaciones, del micropro~
cesador genérico, que se van a considerar. Estas están resumidas en la Figura 6.21. Entre ellas se
incluyen las instrucciones de transferencia de registro a registro, de carga de memoria, de almace­
namiento en memoria, de entrada y salida y de poner a 1 el señalizador de arrastre. La mayoría
de los programas contienen más instrucciones de transferencia de datos que otros tipos de opera~
ciones. Casi ninguna instrucción de transferencia de datos afecta a los señalizadores de la MPU.
En este grupo hay muchas instrucciones, ya que los datos pueden Ser transferidos de cualquier
posición de memoria a cualquier registro o desde cualquier registro a cualquier posición de
memoria u otro registro. Los microprocesadores con más registros de CPU tienen más instruccio­
nes de transferencia de datos. Tener en cuenta que cada instrucción de transferencia tendrá una
fuente y un destino para el dato. El modo de direccionamiento determina cómo y dónde se
encuentra el dato fuente.
Considerar la primera operación de transferencia listada en la tabla de la Figura 6.21. El dato
se va a transferir del registro L registro A, o acumulador. El nemotécnico del lenguaje ensambla-
Descripclon .)
la operacl,'~
Carga SP con d.;;,
Carga JlL de lO("
Carga A de LOC ...
Almacena.i en LO
Instrucciones de transferencia de datos
Modo de
diretciona·
miento
Nemotécnico
Transfiere L a A
Registro
MOVA.L
7D
1
Transfiere H a A
Registro
MOVA.H
1C
I
Transliere A a L
Registro
MOVLA
6F
1
Transfiere A a H
Registro
MOVHA
61
l
Transfiere HL a Pe
Registro
PCHL
E9
1
Código de op.
1
Registro
SPHL
F9
1
I
Carga A con dato
Inmediato
MVIA
3E
2
Código de op.
datos
(A).- (byte 2)
Carga L COI! dato
Inmediato
MVIL
2E
2
Código de op.
datos
(L).- (b}te 2)
Carga H con dato
Inmediato
MVIH
26
2
Código de op.
datos
(H) .- (byte 2)
Carga LOC (H y L)
aA
Indirecto
de registro
MOVA.M
7E
I
I
Código de op.
I (A).- ((HXL))
Carga JIL con dato
Inmediato
LXIH
21
3
¡wo ~ orden inhioI
Descripción de
la operación
.
:, I
I~
Transfiere HL a SP
Cód.
de
Fonnato de la
instrucción
Bytes
opero
I
I
I
I
Simbólico
Señalízadores
aFectados
Almacena /lL en li
Código de op.
I (A).-(L)
Almacena A en LOI
Código de op.
(A).-(H)
Almacena H en LQ
Código de op.
I (L).-(A)
Almacena JI en U:'
~
Código de op.
dato ~ orden
~
(/1 YL)
(Hy L)
(H).-(A)
I
I (SP).-(JlL)
Código de op.
(Hy L)
[PC).-(HL)
(L).-(byte 2)
(H) .- (byte 3)
Entrada de A del J."­
en LOC a
Salida de A al
en LOC a
~
Coloca selÍahzadc'­
de arrastre
( ) - contenido ~
dor(MOVA.
técnico (A en I
es la fuente del
tion con las J
destino de Cor
ConsideraJ
registro A (ac,
Figura 6.21. Instrucciones de transferencia de datos para el microprocesador genérico
(lll 10(00) es
(subconjunto de instrucciones dellntel 8080/8085).
ne este dato d
www.FreeLibros.me
PROGRAMACION DEL MICROPROCESADOR
159
Instrucciones de transferencia de datos
de) micropro­
1. Entre ellas se
)lía. de almace­
treo La mayoría
tipos de opera­
!reS de la MPU.
os de cualquier
ier posición de
más instruccio­
tcia tendrá una
no y dónde se
,
ra 6.21. El dato
uaje ensambla-
Oíd.
Descripcion de
la operación
Modo de
direcciona·
miento
Nemotécnico
(arga SP con dato
Inmediato
LXISP
31
3
~to de orden inkrioI (SP) i- (byte 2 + 3)
flato de orden superioI
Directo
LHlO
2A
3
~. de orden inkrioi
de
Formato de la
instrucción
Bytes
opero
Simbólico
Señalizadores
afectados
(ódigo de op.
Código de op.
(arga HL de Loe 00
ifuoc. de onlen superiot
(L) i- ((byte 2 +3))
,
(11) i- ((byte 2 +3)+ 1)
(ódigo de op.
(arga A de Loe 00
Directo
lOA
3A
3
~. de onlen inferioI' (A) i- ((byte 2 +3))
~deonlen~
Almacena A en LOC aa
Directo
STA
32
3
(ódigo de op.
R. de onlen inferia
(Dirección) i- (A)
~ de onlen superiOl
Señalizadores
afectados
l
l
l
i
~
~érico
Directo
SHlO
22
3
Código de op.
(Dirección) i- (L)
R. de onlen inkrioi
(Dirección + 1) i- (11)
R. de onlen ~
Indirecto
de registro
Indirecto
de registro
Indirecto
de registro
MOV M.A
77
I
I
Código de op.
MOV M.L
75
I
I
Código de op.
MOVM.H
74
I
I
(ódigo de op.
Entrada de A del puerto
en LOC a
Directo
IN
DS
2
. deop
dírec. del puerto
Salida de A al puerto
en LOC a
Directo
OUT
D3
2
Código de op.
direc. del puerto
Coloca senalizador
de arrastre
Inherente
STC
37
I
Almacena HL en LOC aa
Almacena A en Loe
(Hv
Li
Almacena H en Loe
(Hy L)
Almacena H en LOC
(Hy L)
( ) - contenido de
I
« )) - direccionamiento indirecto de registro
Figura 6.21.
I ((HXL»i-(A)
I ((HXL)) +-(L)
I ((HXL)) i- (11)
I
DirecciÓn)
puerto
I (A) +- ( del
I ( Dirección Ji- (A)
I
Código de op.
del puerto
(C}')i-I
pe - contador de programa
CY se pone a I
SP - puntero de pila
(continuación).
dor (MOV A, L) sugiere primero la acción, que es transferir (MOV); la siguiente letra del nemo­
técnico (A en este ejemplo) es el destino del dato, mientras que la última letra (L en este ejemplo)
es la fuente del dato. Esto parece un poco al revés, pero es el convenio utilizado por Intel Corpora­
tion con las instrucciones del 8080/8085. Algunos microprocesadores identifican la fuente y
destino de forma diferente y en el orden opuesto.
Considerar la operación de transferencia esbozada en la Figura 6.22. La fuente del dato es el
registro A (acumulador), mientras que el destino es el registro L. El contenido del acumulador
(11110000) es transferido al registro L sin ninguna modificación. El acumulador también contie­
ne este dato después de que se completa la operación de transferencia.
www.FreeLibros.me
-~-~---
160
""'"""'. . . .0..--" ~'
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador
/1111 0000 /
Acumulador
Después de la operación
Antes de la operación
Memoria de Il
Registro L
Figura 6.22.
I
La instrucción de transferir A a L.
Una segunda operación de transferencia está en la Figura 6.23. Aquí la fuente del dato es el
registro par HL de 16 bits, mientras que el destino es el puntero de pila de 16 bits. Si se observa
cuidadosamente el nemotécnico de la instrucción <<transferir HL a SP», tiene sentido cuando se
recuerda que se cita primero el registro destino (SP en este ejemplo) y después el registro fuente
(HL en este ejemplo). El nemotécnico para la instrucción «transferir HL a SP» es entonces
SPHL.
!
,1
1111 0000 0000 0000 ' Puntero de pila
Después de la operación
Antes de la opendón
Memoria de cilla
/1111 0000 / 0000 0000
Registro par HL
Figura 6.23.
J
¡
A
¡
I
Registro Par HL
\
Instrucción de transferir HL a SP.
Hay cinco instrucciones de «carga inmediata» en la categoría de carga. Las instrucciones de
«carga inmediata» son utilizadas muchas veces para colocar un valor inicial al registro micropro­
cesador antes que el programa. Un ejemplo de instrucción de carga se detalla en la Figura 6.24. El
registro par de 16 bits HL se va a cargar con un dato inmediato de la memoria del programa.
Observar en la Figura 6.21 que la instrucción «carga HL con datos» requiere una instrucción de
3 bytes. El primer byte es el código de op (21H en este ejemplo), mientras que los 2 siguientes
bytes de la memoria de programa son bytes de datos. El segundo byte contiene el dato de orden
inferior (00000011 en este ejemplo) que se carga en el registro L, según se muestra en la Figu­
ra 6.24; el tercer byte contiene el dato de orden superior (00111100 en este ejemplo) que se carga
en el registro H del registro para HL.
El siguiente ejemplo ilustra el uso de la instrucción (<Carga directa de HL» (nemotécnico
LHLD). El problema ejemplo está esbozado en la Figura 6.25. La instrucción LHLD utiliza el
modo de direccionamiento directo. de acuerdo con la tabla de la Figura 6.21. El segundo y tercer
bytes de la memoria del programa son la dirección de 16 bits de la posición de la memoria de
datos donde se encuentra el dato que se va a cargar. Seguir en la Figura 6.25 y comenzar con la
instrucción de 3 bytes de la parte inferior izquierda de la memoria de programa. El código de op
de la instrucción LHLD es 2AH. La CPU entonces ensambla los 2 bytes siguientes del programa
www.FreeLibros.me
en una direcci
para encontnu
entonces en el
do LOC + 1 el
El micropl'l
la Figura 6.21.
y otros datos ,
trucción «alm
PROGRAMACION DEL MICROPROCESADOR
161
Código de
operación
21H
Memoria de programa
DatoL
00000011
DatoH
0011 1100
Después de la operaci6n
Antes de la operaciÓD
~
del dato es el
s.. Si se observa
Registro par HL
ltido cuando se
registro fuente
p,. es entonces
H
L
La instrucción de carga inmediata HL.
Figura 6.24.
r
au de pila
Antes de la operaci6n
Después de la operaci6n
Registro HL
l
Ilro Par
HL
Lroo~~
SIro micro pro­
F"JgUra 6.24. El
del programa.
instrucción de
)S :; siguientes
dato de orden
tra en la Figu­
t) que se carga
I nemotécnico
D utiliza el
PlDdo y tercer
I memoria de
Illenzar con la
I código de op
del programa
I
Byte de orden
inferior de
la dirección
Memoria de programa
Byte de orden
superior de
la dirección
Figura 6.25.
La instrucción de carga directa HL.
en una dirección de 16 bits (lo indica el recuadro a trazos), que sirve como puntero de dirección
para encontrar la posición (LOC) en la memoria de datos. Este byte de memoria de datos se carga
entonces en el registro L. El contenido de la siguiente posición de la memoria de datos (etiqueta­
do LOC + 1 en este ejemplo) se carga entonces en el registro H.
El microprocesador genérico tiene cinco instrucciones de almacenamiento, que se resumen en
la Figura 6.21. Las operaciones de almacenamiento son muy utilizadas para depositar resultados
y otros datos en memoria. Considerar el problema ejemplo de la Figura 6.26 que utiliza la ins­
trucción «almacena A directo». El contenido del acumulador (registro A) se almacena en la posi­
www.FreeLibros.me
I
--,..
162
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador
111000000 1
111000000 1
Acumulador
6.32.
Después de la operad6a
Antes de la operación
r---&--...,
Solucio
Se¡
Memoria de datos
(LOC)
.~"""' d, ru=;6n
Código de operación
32H
i
Memoria de programa
Byte de orden
inferior de
la dirección
..... -
--
6.33.
I
Acudí
del da
SolDÓ
-----~
Se!
progr-a;
Byte de orden
superior de
la dirección
Figura 6.26.
destin4
r------·-----,
Dirección de 16 bits
I
Acud
6.34.
Acudí
mayO!
la mie
Solurié
La instrucción de almacenar A directo.
Seg
'1
¡,
,
l
I
dos poi
ción de memoria de datos (LOC), señalada por una dirección de 16 bits, y formada por el segun­
do y tercer bytes de la instrucción. Después de la operación, la posición de memoria de datos
(LOC) y el acumulador contienen el mismo dato (11000000 en este ejemplo).
La instrucción de entrada (input) listada en la tercera línea del extremo inferior de la Figu­
ra 6.21 es similar a la instrucción de cargar. La fuente de la transferencia de datos es un puerto de
entrada identificado por un número binario de 8 bits (0-255 10), el destino es el acumulador de la
CPU. Un ejemplo se muestra en la Figura 6.27 donde se utiliza la instrucción de entrada. El dato
del puerto de entrada señalado por el segundo byte de la instrucción es transferido al acumulador
del microprocesador. En este ejemplo, 00001111 es introducido y transferido al acumulador
desde un puerto identificado por LOC.
6.35.
AeudiJ
carga I
So. .
Scat
para"
']
Acumulador
1­Ji
·1
Des,... de la operaclOO
Antes de la operación
:i
IN
i
j­
I
!
"
i¡
JI
Código de operación
DBH
Una dirección
de 8 bits
6.36.
Memoria de programa
El
COI
es_
Sol~
El
Figura 6.27.
"
La instrucción de entrada directa.
llHx)(]
1
www.FreeLibros.me
/
1
.]
/
(
PROORAMACION DEL MICROPROCESADOR
163
PROBLEMAS RESUELTOS
6.32.
Acudir a la Figura 6.21. Durante el uso de la instrucción MOV H"A, el registro
_ _ (A, H) es la fuente del dato mientras que el registro _ _ (A, H) es el destino.
Solución:
Según la información de la Figura 6.21, el registro A es la fuente mientras que el registro H es el
destino del dato durante la ejecución de la instrucción MQV H,A.
633.
Acudir a la Figura 6.21. En la instrucción PCHL, el registro _ _ (HL, Pe) es la fuente
del dato mientras que el ______ de 16 bits es el destino.
~-,
~~~..:
Solución:
Según la información de la Figura 6.21, el registro HL es la fuente mientras que el contador de
programa de 16 bits es el destino del dato durante la ejecución de la instrucción PCHL.
6.34.
Acudir a la Figura 6.2 t. Los señalizadores _ _ (son afectados, no son afectados) por la
mayoría de las operaciones de transferencia de datos en el repertorio de instrucciones de
la microcomputadora genérica.
Solución:
Según la información de la columna derecha de la Figura 6.21, los señalizadores no son afecta­
dos por la mayoría de las operaciones de transferencia de datos.
a por el segun­
¡emoria de datos
6.35.
Acudir a la Figura 6.21. El nemotécnico del lenguaje ensamblador para la instrucción de
carga utilizada en la Figura 6.28 es ___ .
Solución:
Según la información de la tabla de la Figura 6.21, el nemotécnico del lenguaje ensamblador
para la instrucción de carga utilizada en la Figura 6.28 es MVI A.
erior de la Figu­
I es un puerto de
!Cumulador de la
, entrada. El dato
lo al acumulador
i) al acumulador
Acumulador
Después de l. operación
Antes de la operación
Memoria de programa
ación
Dato
Figura 6.28.
6.36.
,
El contenido del acumulador de la Figura 6.28 después de la operación de carga
es _ _ (8 bits).
Solución:
El contenido del acumulador de la Figura 6.28 despuéS de la operación de carga es
II 10001 1.
www.FreeLibros.me
,
164
FUNDAMENTOS DE LOS MICROPROCESADORES
6.37.
Acudir a la Figura 6.21. La operación de carga mostrada en la Figura 6.28 utiliza direc­
cionamiento _ _ (directo, inmediato).
6.42.
Des
con
Solución:
Según la información de la tabla de la Figura 6.21, la operación de carga mostrada en la
Figura 6.28 utiliza direccionamiento inmediato.
6.38.
6.39.
I
l.
r
j:, ,,
j
6.40.
¡
¡
gran
Solución:
Según la información de la Figura 6.21, la instrucción MOV A,M tiene el código de op 7EH,
utiliza direccionamiento indirecto de registro y la fuente de datos es una posición de memoria
señalada por el registro par HL.
6.6. REPI
Acudir a la Figura 6.21. La instrucción SHLD tiene el código de op 22H y utiliza direccionamiento ___ (directo, inmediato).
Acudir a la Figura 6.21. La instrucción «almacena directo HL» (código de op == 22H) es
una instrucción de _ _ (número) bytes. Los 2 últimos bytes de la instrucción del
programa contienen información sobre ___ (datos, direcciones).
Solución:
Según la información de la Figura 6.21, la instrucción «(l!lmacena directo Hv> (código de
op == 22H) es una instrucción de 3 bytes. Los 2 últimos bytes de la instrucción del programa
contienen información sobre direcciones.
t
6.41.
OPEI
Las instrucci
genérico que
nes se referer
rarán sinónir
bifurcación \
nes de transj;
Instrucciones de bifur.
Descripc:idll
*
la ope¡aciOO
Salta a LOC Gil
Acudir a la Figura 6.21. La fuente del dato cuando se utiliza la instrucción SACAR
(OUT) en la Figura 6.29 es el registro _ _ (A, H, L).
Solución:
De acuerdo con la Figura 6.21, la fuente del dato cuando se utiliza la instrucción OUT en la
Figura 6.29 es el registro A, que también se denomina acumulador.
~
OOT
1; ,
1
dato
Acudir a la Figura 6.21. La instrucción MOV A,M tiene el código de op 7EH, utiliza
direccionamiento ___ (directo, indirecto de registro) y la fuente de datos es una posi­
ción de la memoria de _ _ (datos, programa) señalada por el registro par HL.
SoluciÓD:
Según la información de la Figura 6.21, la instrucción SHLD tiene el código de op 22H Yutiliza
direccionamiento directo.
i
rl' \
Solll
Salta a toe l1li si tr4
el señalilador de I
Después de la operación
Ir--"--?--'
""
Salta a LOC Gil 51 •
coloca e111i1f11i111
Puerto de salida
(1)
de aJTlIStre
Código de operación
Memoria de
1
programa 0000 000 1
( )=
contenido di:
pe - contador de
Figura 6.29.
www.FreeLibros.me
Salta a LOC tllui •
.'
~
I
$-.
8 utiliza direc­
~
mostrada en la
•
p 7EH, utiliza
es una posi­
;mHL.
PROGRAMAOON DEL MICROPROCESADOR
6.42.
165
Después de la operación sacar en la Figura 6.29, el puerto de salida número _ _ (hex)
contendrá el dato _ _ (8 bits).
Solución:
Después de la operación sacar de la Figura 6.29, el puerto de salida número OlH contendrá el
dato 11110011. La dirección del puerto de salida proviene del segundo byte de la memoria del pro­
grama.
I)S
Iiao de op 7EH,
6.6. REPERTORIO DE INSTRUCCIONES:
OPERACIONES DE BIFURCACION
ión de memoria
J,
r utiliza direc­
~
DI> 22H y utiliza
Las instrucciones de bifurcación son la cuarta categona de las operaciones del microprocesador
genérico que se van a considerar y están resumidas en la Figura 6.30. Observar que las operacio­
nes se referencian como instrucciones de salto, aunque los términos salto y bifurcación se conside­
rarán sinónimos en este capítulo. Algunos fabricantes hacen distinciones entre instrucciones de
bifurcación y de salto. Las operaciones de bifurcación o de salto a veces se denominan instruccio­
nes de transferencia de control. Como las operaciones de la Figura 6.30 son un subconjunto del
~
op = 22H) es
!lStrucción del
~
~.
rl» (código de
11
del programa
Instrucciones de bifun:ación
Modo de
direcciona·
miento
Nemotécnico
Cód.
de
opero
Bytes
Salta a Loe aa
Inmediato
JMP
C3
3
~ Ol rotoiD&:ria (I'C) .... (Dirección)
~Olll'den~
SaIIlI a Loe aa si es O
Inmediato
lZ
CA
3
p¡m:. de roto inICrioi
Descripción de
la operación
Fonnato de la
instrucción
Código de op.
t
Código de op.
::ción SACAR
~. de roto superio¡
tión OUT en la
Código de op.
SaIIlI a Loe aa si no es O Inmediato
lNZ
C2
3
p¡rec. de Il'den inICrioi
~OlrotoSU¡tOO
Código de op.
Salta a LOC da si se coloca
el señalizador de arrastr
,.
L
,
Simbólico
Salta a LOC aa si no se
coloca el señalizador
de arrastre
JC
Imnediato
DA
3
Prec. de Il'den infeOO
~ Ol roto superio¡
Código de op.
Inmediato
lNC
D2
3
Prec. de roto inferio
~. de onlen su¡x:rio
Si el seilalizador
de O- 1. entonces
(I'C) .... (dirección)
Si el seIlalizador
de O• O, entonces
(I'C) .... (dirección)
Si el seilalizador de
arrastre ­ 1, entonces
(I'C) <- (dirección)
Si el señalizador de
amstre = O. entonces
(I'C) .... (dirección)
( ) - contenido de
pe - contador de programa
Figura 6.30.
..
Instrucciones de bifurcación para el microprocesador genérico
(subconjunto de instrucciones del Intel 8080;8085).
www.FreeLibros.me
Senalizadon:s
afectados
e
166
RJNDAMENTOS DE LOS MICROPROCESADORES
repertorio de instrucciones del 8080/8085, el convenio de Intel de llamar a estas instrucciones de
salto se utilizará más tarde en este capítulo.
La microcomputadora normalmente ejecuta instrucciones en orden secuencial. El contador
de programa de 16 bits del microprocesador genérico siempre sigue la pista de la dirección de la
siguiente instrucción que se va a buscar en memoria y ejecutar. El contador de programa normal­
mente sigue una secuencia ascendente aumentando de uno en uno. Las instrucciones de salto o
bifurcación proporcionan un método para cambiar el valor del contador de programa, alterando
así la secuencia normal de ejecución del programa.
U.s instrucciones de salto o bifurcación se subdividen normalmente en operaciones de salto
incondicional y de salto condicional. La primera instrucción listada en la Figura 6.30 es una
instrucción de salto incondicional. La instrucción «saltar inmediato» es una instrucción de
3 bytes, utilizada para cargar una dirección específica en el contador del programa de la CPU. Un
problema ejemplo que utiliza esta instrucción, de salto incondicional, se muestra en la Figu­
ra 6.31 donde la dirección 2000H se está cargando en el contador del programa. La información
de la dirección sigue inmediatamente al código de op, y por tanto, se denomina direccionamiento
inmediato. Observar en la Figura 6.31 que la parte de orden inferior de la dirección de 16 bits se
localiza en el segundo byte de la memoria de programa, mientras que el tercer byte contiene la
parte de orden superior de la dirección. Una instrucción de este tipo se utiliza en un principio
para inicializar el contador de programa cuando empiece la ejecución de un nuevo programa. La
instrucción de salto o bifurcación incondicional puede considerarse como un método de cargar
una nueva dirección en el contador de programa.
Código de
operación
Memoria de programa
Antes de la operaciÓD
Después de la operación
Memoria de
Anf~
Contador de Jl
Registro
programa con l.
ma, por lo que
instrucción que
2013H como PI
memoria del po
la memoria del l
mente sea el má
Las instrucci
procesadores. Se
salto o bifurcací
dos técnicas de I
Contador de programa
Figura 6.31. Instrucción de bifurcación incondicional.
Las ¡DI
6.43.
0_
Sol~
Las cuatro últimas operaciones de bifurcación, detalladas en la Figura 6.30, son instrucciones
de salto condicional. Estas instrucciones harán que la dirección inmediata se coloque en el conta­
dor de programa sólo si se satisface la condición especificada. En cualquier otro caso el contador
de programa, simplemente, contará en secuencia ascendente. Un problema ejemplo que utiliza la
instrucción «salta si cero» aparece en la Figura 6.32. En este ejemplo, el contador de programa
contiene 20 13H antes de la operación y continuará en secuencia ascendente hasta que el señaliza­
dar de cero se ponga a L La CPU evalúa la condición del señalizador de cero en el registro de
status y encuentra que está a l. Esto significa que el resultado de la última operación lógica o
aritmética fue cero; las condiciones son correctas para un salto, y la MPU carga el contador de
Las ¡.
da de C(J
6.44.
Se dice
toma de
Soluciólr
Las
6.45.
(1
Acudir 1
salto.
~
~i
www.FreeLibros.me
~;]
II'~
J
I
..... .
PROGRAMACION DEL MICROPROCESADOR
Ilrucciones de
167
Código de
operación
1. El contador
Iirección de la
;rama normal­
Ines de salto o
ma. alterando
Después de la opeftclón
~nes de salto
a 6.30 es una
nstrucción de
le la CPU. Un
:a en la Figu­
il información
ccionamiento
[l de 16 bits se
te contiene la
I un principio
programa. La
odo de cargar
Contador de programa
Registro de status'
Cy
­
Contador de programa
1
z
La Instrucción de salta si cero.
programa con la nueva dirección 2008H. La nueva dirección proviene de la memoria de progra­
ma, por lo que se dice que esta instrucción utiliza direccionamiento inmediato. La siguiente
instrucción que se va a ejecutar será la instrucción de la posición de memoria 2008H y no la de la
2013H como podria esperarse. El microprocesador genérico salta a una nueva posición de la
memoria del programa. Los saltos o bifurcaciones pueden hacerse hacia atrás o hacia adelante en
la memoria del programa. El ejemplo de la Figura 6.32 ilustra un salto hacia atrás, que probable­
mente sea el más común.
Las instrucciones de salto o bifurcación se encuentran en casi todos los programas de micro­
procesadores. Son valiosas debido a su caracteristica de toma de decisiones. Las instrucciones de
salto o bifurcación se utilizan para formar ciclos y saltos en el programa. Los ciclos y saltos son
dos técnicas de programación que se estudiarán más tarde en este capítulo.
PROBLEMAS RESUELTOS
6.43.
J
L..­_ _--I-_ _ _.....
t--1 I
Figura 6.32.
de programa
rucciones
r en el conta­
D el contador
que utiliza la
de programa
le el sefUtliza­
el registro de
ción lógica o
,contador de
I 00 1O0000 I 000 100 11 I
Las instrucciones de bifurcación también se denominan de ___ (brinco, salto)
o ___ de control.
Solución:
Las instrucciones de bifurcación también se denominan instrucciones de salto o de transferen­
cia de control,
6.44.
Se dice que las operaciones _ _ (lógicas, de salto condicional) son instrucciones de
toma de decisión.
Solución:
Las operaciones de salto condicional son instrucciones de toma de decisión.
6.45.
Acudir a la Figura 6.30. El nemotécnico del lenguaje ensamblador para la operación de
salto, esbozada en la Figura 6.33, es ___ .
www.FreeLibros.me
}
-
'j5*':>
168
•
fUNDAMENTOS DE LOS MICROPROCESADORES
Código de
Dirección operación
¡
Memoria de programa
20lOH
cm
201m
00000000
2012H
00100000
Solud
El
tabla (
6.48.
I
{ ¡_~~~ ___
Antes de la operación
(
I 00 1O0000 000 I 00 11 I
Registro de status 1 O t --j 1 I
Contador de programa
Cy
El COII
es_
r---J-_ _ _
Des_'_U_éS_d..,e
?
Nemotecnico
la operación
Soludt
E/s
Contador de programa
salto. 1.
ción qu
z
6.7.
Figura 6.33.
REPER
OPERA,
Solución:
El código de operación para la operación «Salta si no cero» de la Figura 6.33 es C2H. A partir
de la tabla de la Figura 6.30 se detennina que el nemotécnico del lenguaje ensamblador para esta
operación de salto es JNZ.
6.46.
Acudir a la Figura 6.30. El contenido del contador de programa de la Figura 6.33 después
de la operación «salta si no cero» es ___ (hex).
Solución:
j ¡
El señalizador de cero del registro de status de la Figura 6.33 se pone al, lo cual significa que el
resultado de la última operación aritmética o lógica fue cero. La condición para el salto no se
satisface. La dirección del segundo y tercer bytes de la memoria de programa no son cargadas en el
contador de programa, por lo que su contenido permanece a 20l3H, como estaba antes de la
instrucción de salto condicional. La siguiente instrucción que se va a ejecutar se localiza en
2013H.
6.47.
Acudir a la Figura 6.30. El nemotécnico de la instrucción «salta si arrastre» de la Figu­
ra 6.34 es Je, mientras que el código de operación es _ _ (hex).
2000H
Instrucciones de lIamdt .. '1
Descripción de
la operación
Código de
Dirección operación
Memoria de programa
Las instruccionl'
microprocesadol
servar que el m
instrucciones de
La instrucció
microprocesador
un pequeño grol
encuentra la prir
salto en los siguie
se guarda en la pi
subrutina en la p
segundo se ejecul
?
Llama ala subrutita
0000 0000
en lOC aa
2002H 00100001
Antes de la operación
Contador de programa
Registro de status
Des,u& de la operación
lii~ 0000 00 11
1-------_.....1
?
I 1 f-- j O I
Cy
Contador de programa
Vuelta de subrutina
( ) - contenido de
«
» - direccionamiento
Pe - contador de prognu
I
SP - puntero de pila
z
Figura 6.34.
www.FreeLibros.me
Figura 6.35.
(
PROGRAMACION DEL MICROPROCESAOOR
169
Solución:
El nemotécnico de la instrucción de <<Salta si arrastre» de la Figura 6.34 es JC, mientras que la
tabla de la Figura 6.30 indica que el código de op de esta instrucción es DAH.
6.48.
El contenido del contador de programa después de la operación de salto de la Figura 6.30
es
(hex).
Solución:
El señalizador de arrastre se pone al, Ypor tanto se satisface la condición para la operación de
salto. La MPU carga la nueva dirección 2100H en el contador de programa. La siguiente instruc­
ción que se va a ejecutar se carga en 2100H en la memoria del programa.
• operación
:::Ontador de programa
6.7. REPERTORIO DE INSTRUCCIONES:
OPERAOONES DE LLAMADA Y VUELTA DE SUBRUTINA
para el salto no se
no son cargadas en el
10 estaba antes de la
a:cutar se localiza en
Las instrucciones de llamada y vuelta de subrutina son la quinta categona de operaciones del
microprocesador genérico que se van a considerar. Estas están resumidas en la Figura 6.35. Ob­
servar que el microprocesador genérico tiene solamente dos instrucciones en este grupo. Las
instrucciones de llamada y vuelta son utilizadas siempre en parejas.
La instrucción de llamada de 3 bytes se utiliza en el programa principal para hacer que el
microprocesador salte a una subrutina. En el ejemplo mostrado en la Figura 6.36, la subrutina es
un pequeño grupo de instrucciones que consiguen un retardo de 1 segundo. Cuando la MPU
encuentra la primera instrucción de llamada en la posición 200DH, encuentra la dirección de
salto en los siguientes bytes de programa. La dirección de la instrucción que sigue a la de llamada
se guarda en la pila (no mostrada en la Figura 6.36). La MPU entonces bifurca al comienzo de la
subrutina en la posición 1000H. Las instrucciones de la subrutina que consigue un retardo de 1
segundo se ejecutan hasta que la CPU encuentra la instrucción de vuelta. La dirección guardada
lnstre» de la Figu­
Instrucciones de llamada y vuelta de subrutina
.,33 es C2H. A partir
I1Samblador para esta
~.
=ígura 6.33 después
t
cuo! signifi"" que el
D
Modo de
direcciona­
miento
Nemotécnico
Coo.
de
oper.
Bytes
Formato de la
instrucción
Uama a la subrutina
en LOC aa
Inmediatol
indirecto
de registro
CALL
CO
3
~I~~
((SP) - 2) ~ (PCL)
(SP) ~ (SP) - 2
(Pe) ~ (dirección)
Vuelta de subrutina
Indirecto
de
registro
RE!
C9
1
I
(PCL)~((SP))
(PClf)~((SP)+
(SP)~(SP)+2
Descripción de
la operación
Contador de programa
( )=
Código de op.
Simbólico
Señalízadores
afectados
((SP)-I)~(PClf)
1)
'1
contenido de
« »- direccionamiento indirecto de registro
,
pe - contador de programa
SP - puntero de pila
Figura 6.35.
-
Instrucciones de llamada y vuelta de subrutina para el microprocesador genérico
(subconjunto de instrucciones del Intel 8080/8085).
www.FreeLibros.me
-I~
170
FUNDAMENTOS DE LOS MICROPROCESADORES
Programa principal
i
Dirección
Contenido
200DH
CALL
200EH
OOH
200FH
IOH
La instrucci
Figura 6.37 det
contador de pr
nueva direcciól
seguida a trav~
Puntero
de pila
Salta
1
210AH
IOOOH
Subrutina
que produce
un retardo
de I seg
2010H
~
~
Contador de progr.u
Antes.
Memoria de J)I'O@:l'
1. El pum
El b~1e
posición
3. El punte
4. El byted
2108H.
S. La direc
program
6. La dim::
program
2.
Figura 6.36.
Flujo de programa del programa principal a la subrutina y vuelta utilizando
las instrucciones de retorno y llamada.
\
en la pila (201 OH) es devuelta al contador de programa, y la MPU continúa el programa principal
donde lo dejó cuando se llamó por primera vez a la subrutina. La MPU ejecuta las instrucciones
en secuencia hasta que encuentra la segunda instrucción de llamada en la dirección 2020H. La
MPU guarda en la pila la dirección de la siguiente instrucción (2023H) y salta a la subrutina en la
dirección loooH. Hasta que se completa de nuevo la subrutina de retardo de tiempo, la instruc­
ción de vuelta saca de la pila la dirección de la siguiente instrucción del programa principal
(2023H) y la transfiere al contador de programa. Se puede utilizar muchas veces una subrutina en
la ejecución de un programa principal. La subrutina puede almacenarse en una RAM o ROM.
www.FreeLibros.me
La MPU irá ah<
ejemplo). Esta e'!
Considerar el
tina. La instrucc
programa. La SI
círculos de la F~
171
PROGRAMACION OEL MICROPROCESADOR
La instrucción de llamada combina las funciones de las operaciones de introducir y saltar. La
Figura 6.37 detalla el uso de la instrucción de llamada. Primero introduce el contenido actual del
contador de programa en la pila. A continuación, el contador de programa se carga con una
nueva dirección, para realizar el salto a la de la subrutina. La secuencia de acciones puede ser
seguida a través de los números inscritos en círculos en la Figura 6.37.
Pila
Puntero
de pila
Pila
2107
2108
2108
3, - - - :12108H I
1
, ,
,
2109 , (!J
n----+--{
,210A .... ___ ~"
,
,
2109
~
210AH
' - -_
_......JI - - . . j....., 2 lOA ,
~
uce
Contador de programa
do
I
Puntero
de pila
2107
,
L -_ _ _~--~~~
Después de la operación
Antes de la operación
2000H
COH
Memoria de programa 200EH
f----f----j
200FH 00010000
Figura 6.37.
La instrucción de llamada a subrutina.
1. El puntero de pila se decrementa de 210AH a 2109H.
2. El byte de orden superior del contador de programa es introducido en la pila, en la
posición 21 09H.
3. El puntero de pila se decrementa de 2109H a 2108H.
4.
zando
El byte de orden inferior del contador de programa es introducido en la pila en la posición
2108H.
LprinciDID
5. La dirección de orden inferior es transferida desde el segundo byte de la memoria de
programa al byte inferior del contador de programa.
6. La dirección de orden superior es transferida desde el tercer byte de la memoria de
programa al byte superior del contador de programa.
, instrucciones
ión 2020H. La
subrutina en la
lpo. la instruc­
rama principal
13 subrutina en
l-\M o ROM.
La MPU irá ahora a la nueva dirección sefialada por el contador de programa (1 OOOH en este
ejemplo). Esta es la dirección de la primera instrucción de la subrutina.
Considerar el ejemplo mostrado en la Figura 6.38 utilizando la instrucción de vuelta de subru­
tina. La instrucción de retomo (o de vuelta) debe transferir el contenido de la pila al contador de
programa. La secuencia de acciones puede ser seguida a través de los números inscritos en
círculos de la Figura 6.38.
www.FreeLibros.me
"
172
RJNDAMENTOS DE LOS MICROPROCESADORES
Puntero
Pila
Pila
de pila
2107
2108H
2108 00010000
Puntero
de pila
2109 00100000
210AH
.
~
,'21OA '
.,/
Después de la operación
Antes de la operación
---_
Contador de progran
......- - - ' Contador de programa
Figura 6.38.
Antes •
la instrucción de vuelta de subrutina.
Memoria de programo
1.
2.
3.
4.
.'1
El tope de la pila (posición 2108H) es sacado, y su contenido transferido al byte inferior
del contador de programa.
El puntero de pila es incrementado de 2108H a 2109.
La parte superior de la pila (ahora posición 2109H) es sacada, y su contenido transferido
al byte superior del contador de programa.
El puntero de pila es incrementado de 2109H a 2IOAH.
El contador de programa ahora contiene la dirección de 16 bits (20 l OH) de la siguiente instruc­
ción que se va a buscar en la memoria del programa.
Solucidll.:
El con te
será 00 I()()(
pila, de ac-u
6.53.
Solucidll.:
PROBLEMAS RESUELTOS
6.49.
La instrucción de ___ (llamada, vuelta) es parte del programa principal, mientras que
la instrucción de _ _ (llamada, vuelta) es el fin de una subrutina.
El COntI:
I1amada ser
6.54.
Solución:
Ver la Figura 6.36. la instrucción de llamada es parte del programa principal, mientras que la
instrucción de vuelta está al final de una subrutina.
6.50.
La llamada es una instrucción de _ _ (número) bytes. Los 2 últimos bytes contienen
la dirección de la primera instrucción de _ _ (memoria principal, una subrutina).
655.
Solución:
La operación de llamada realiza las funciones de las instrucciones de introducir y saltar.
6.52.
Acudir a la Figura 6.39. El contenido de la posición de la pila 2109H después de la
operación de llamada será de _ _ (8 bits).
www.FreeLibros.me
Acudir a •
de llamad,¡
Soludc'lc
contienen la dirección de la primera instrucción de la subrutina.
La operación de llamada realiza las funciones de _ _ (sacar, introducir) y de _ _
(sumar, saltar).
Acudir a t
ción de lIa
Solucióa:
Desp.á
superior de
Solución:
La llamada es una instrucción de 3 bytes, según la tabla de la Figura 6.35. Los 2 últimos bytes
6.51.
Acudir a •
operación
El conte
será OOIOH
6.56.
Las illStrul
parejas. iD
SolucWc
Las instl
173
PROGRAMAClON DEL MICROPROCESADOR
Pila
Pila
2107
Puntero
de pila
2107
210
Puntero
de pila
2109
210AH ~L...:2-¡-OA-L.:_ _ _..J
~>----=-;12IOAH I
g-­
'?
2108
'?
2109
: 2 lOA :
Puntero
de pila
I
'?
I
• operación
dor de programa
tI
2000H
Contador de programa
'--------'------'
byte inferior
Figura 6.39.
nido transferido
Solución:
El contenido de la posición de pila 2109H de la Figura 6.39 después de la operación de llamada
será 00 100000. El byte de orden superior del contador de programa será almacenado primero en la
pila, de acuerdo con la tabla de la Figura 6.35 y el diagrama de la Figura 6.37.
t
iguiente instruc­
6.53.
6.54.
l mientras que la
b~1es
6.55.
¡¡ 2 últimos bytes
~
r después de la
Acudir a la Figura 6.39. El contenido del contador óe programa después de la operación
de llamada será _ _ (bex).
Solución:
El contenido del contador de programa después de la operación de llamada de la Figura 6.39
será 00 1OH. Esta es la dirección de la primera instrucción de la subrutina.
!:ir) y de _ _
cir y saltar.
Acudir a la Figura 6.39. El puntero de pila contendrá _ _ (bex) después de la opera­
ción de llamada.
Solución:
Después de la operación de llamada en la Figura 6.39, el puntero de pila señalará a la parte
superior de la pila, que estará en la posición 2108H.
contienen
a subrutina).
Acudir a la Figura 6.39. El contenido de la posición de la pila 2108H después de la
operación de llamada será _ _ (8 bits).
Solución:
El contenido de la posición de la pila 2108H en la Figura 6.39 después de la operación de
llamada será 00000o 11. El byte de orden inferior del PC será almacenado en la segunda pila.
al. mientras que
t
CDH
Memoria de programa 200 1H
1----+----1./
2oo2H 0000 0000
~
I
Después de la operación
Antes de la operación
Código de operación
6.56.
Las instrucciones de llamada y vuelta de la subrutina se utilizan casi siempre ___ (en
parejas, individualmente).
Solución:
Las instrucciones de llamada y vuelta de subrutina casi siempre se utilizan en parejas.
www.FreeLibros.me
•
174
FUNDAMENTOS DE LOS MICROPROCESADORES
6.8. REPERTORIO DE INSTRUCCIONES:
OPERACIONES MISCELANEAS
Las instrucciones misceláneas son la última categoría de las operaciones genéricas del micropro­
cesador que se van a considerar. Estas están resumidas en la Figura 6.40. Incluyen las instruccio­
nes de introducir, sacar, no operación y alto.
Las instrucciones de introducir y sacar (push, pop) se utilizaron en la Sección 5.6 cuando se
explicaron el puntero de pila y la pila; estas instrucciones colocan y toman datos de la pila de la
microcomputadora y se utilizan por parejas porque lo que se hace en la pila con una instrucción
de introducir tiene que deshacerse con una instrucción de sacar. Las instrucciones de introducir y
sacar son muy utilizadas en las subrutinas. Una instrucción de «introducir A y sefíalizadores en
pila» puede utilizarse como la primera instrucción de una subrutina como, por ejemplo, la
esbozada en la Figura 6.36. De esta forma se guarda el contenido del acumulador y de los sefíali­
zadores para que no puedan ser alterados por la subrutina; justo antes de la operación de vuelta
en la Figura 6.36, una instrucción de «sacar A y los sefíalizadores de la pila» deberá restaurar el
contenido original del acumulador y los sefíalizadores.
Considerar la primera instrucción listada en la tabla de la Figura 6.40. Es la instrucción de
«introducir A y sefíalizadores en la pila» y tiene el nemotécnico PUSH PSU: La parte PSW del
nemotécnico significa palabra de status del programa, que en este caso es el contenido del acumu-
lador 'Y del regi!
1 byte, que prirr
ción más detallil
La instrucci(
de 1 byte que so
registros. Esta in
o dos sentencia.!
secciones del prc:
u tilizarse para ce:
La instrucció
procesar más «ln
entrada de petici
do esté en el mOl
.
.,¡
1
6.57.
Acudir a
un códigl
SoJ~
Deaca
Instrucciones misceláneas
ción F5H
Modo de I
Cód.
direcciona- ¡Nemotécnico de
mi ento
opero
Descripción de
la operación
Bytes
Formato de la
instrucción
Simbólico
PUSHPSW
FS
I
ICódigo de op.1
«SP) ­ 1) ...... (A)
«SP) ­ 2) ...... (señali.
(SP) ...... (SP) - 2
Indirecto
de registro
PUSHH
ES
I
ICódigo de op.1
«SP) 1) ...... (H)
«SP) 2) ...... (L)
(SP) ...... (SP) ­ 2
Indirecto
Saca A y señalizado
de registro
res de la pila
POPPSW
Indirecto
Introduce A y seña­
de registro
lizadores a la pila
Introduce HL a la
pila
FI
1
ICódigO de op.1
I
i Indi recto ,
Saca H L de la pila • de registro ;
(señali.) ...... «SP»
(A) ...... «SP) + 1)
(SP) ...... (SP) + 2
POPH
El
I
ICódigo de oP.¡
(L) ...... «SP»
(H) ...... «SP) +-1)
(SP) ...... (SP) + 2
(PC) ...... (PC) + I
No operación
Inherente
NOP
00
I
ICódigo de op.1
Alto
Inherente
HLT
76
I
ICódigo de op.1
Señalizadores
afectados
( ) - contenido de
« )) - direccionamiento indirecto de registro
A acumulador
SP - puntero de pila
6.58.
Acudir. 1
la Figura
contenido
la _ _ 1
SoJuci611:
Usar la
instrucción
el conteflld·
6.59.
Acudir a 1
pila 220H
Puntero de pila
[ 220AH
Figura 6.40.
~
Instrucciones misceláneas para el microprocesador genérico (subconjunto
de las instrucciones Intel 8080/8085).
www.FreeLibros.me
,1
J
PROORAMACION DEL MICROPROCESAOOR
l:Iel micropro­
las instruccio­
5.6 cuando se
le la pila de la
Da instrucción
le introducir y
~alizadores en
lIIf ejemplo, la
r de los señali.
ción de vuelta
rá restaurar el
175
lador y del registro de status (señalizadores). La instrucción PUSH PSWes una instrucción de
l byte, que primero coloca el acumulador en la pila y despuéS los senalizadores. Para una explica­
ción más detallada de las instrucciones de introducir y sacar revisar la Sección 5.6.
La instrucción «no operación» no hace nada, excepto consumir l ó 2 ).lS. Es una instrucción
de l byte que so' mente hace que se incremente el contador de programa. No afecta a los demás
registros. Esta instrucción se utiliza como relleno cuando durante la depuración se eliminan una
o dos sentencias del programa. Las instrucciones de no operación sirven de puente entre dos
secciones del programa para que la MPU pueda avanzar de un segmento a otro; también puede
utilizarse para consumir tiempo en un ciclo.
La instrucción de alto se utiliza al final del programa para que el microprocesador deje de
procesar más «instrucciones» en la memoria de programa. Solamente una reinicialización o una
entrada de petic;ión de interrupción a la MPU puede arrancar al microprocesador genérico cuan­
do esté en el modo de alto.
PROBLEMAS RESUELTOS
lnstrucción de
Klrte PSW del
~o del acumu-
6.57.
Acudir a la Figura 6.40. La operación PUSH PSW que se utiliza en la Figura 6.41 tiene
un código de op de _ _ (hex).
Solución:
De acuerdo con la tabla de la Figura 6.40, la operación PUSH PSW tiene el código de opera­
ción F5H.
Señalizadores
afectados
:onjunto
-
6.58.
Acudir a la Figura 6.40. Durante la ejecución de la instrucción PUSH PSW utilizada en
la Figura 6.41, el puntero de pila es _ _ (decrementado, incrementado) primero y el
contenido del ___ (acumulador, registro de status) es transferido a la posición de la pi·
la _ _ (hex).
Solución:
Usar la tabla de la Figura 6.40 y el procedimiento de la Figura 5.16b. Durante la ejecución de la
instrucción PUSH PSW utilizada en la Figura 6.41, el puntero de pila es decrementado primero y
el contenido del acumulador es transferido a la posición de la pila 2209H.
6.59.
Acudir a la Figura 6.40. Citar el contenido del puntero de pila y de las posiciones de la
pila 2208H y 2209H después de la operación de introducir (push) de la Figura 6.41.
Acumulador
Antes de la operación
Pila
Pila
Puntero de pila
I 220AH I
Puntero de pila
~ ,'220A',
,'220A'
Figura 6.41.
www.FreeLibros.me
I
?
--------_...,,­
176
FUNDAMENTOS DE LOS MICROPROCEsADORES
.:
"
Solución:
Usar como referencia la tabla de la Figura 6.40 yel procedimiento de la Figura 5.l6b. Después
de la operación de introducir (push), mostrada en la Figura 6.41, el puntero de pila señalará a la
posición 2208H y su contenido será el del registro de status que es 10000000. El contenido de la
posición de la pila 2209H será el del acumulador que es 11111111.
,1
6.60.
carta o diagram
se muestra en 1
consecutivos y ;
adecuados para
lenguaje máquir
Acudir a la Figura 6.40. Si la instrucción PUSH PSW se utiliza para colocar el contenido
de los registros de la CPU en la pila, entonces la instrucción _ _ (nemotécnico) se
utilizará para restaurar el contenido de estos registros.
Solución:
Si la instrucción PUSH PSW se utiliza para colocar el contenido de los registros de la CPU en la
pila, entonces la instrucción POP PSW se utilizará para restaurar el contenido de estos registros.
6.61.
Las instrucciones de introducir y sacar (push y pop) son utilizadas frecuentemente, a
pares, en ___ (las reinicializaciones, las subrutinas).
Solución:
Estas instrucciones son utilizadas frecuentemente, a pares, en las subrutinas.
6.62.
La instrucción _ _ (alto, no operación) evitará que el microprocesador prosiga la bús­
queda y ejecución de otra instrucción hasta que reciba una señal de reinicialización o de
petición de interrupción.
Solución:
La instrucción de alto evitará que el microprocesador prosiga la búsqueda y ejecución de otra
instrucción hasta que reciba una señal externa de reinicialización o de petición de interrupción. La
instrucción de alto se coloca normalmente al final de un programa.
I
I
:¡
1
"
'j
i
6.9. ESCRITURA DE UN PROGRAMA
El programador de un sistema basado en microprocesador debe estar muy familiarizado con el
repertorio de instrucciones. Las tablas de las Figuras 6.4, 6.14, 6.21, 6.30, 6.35 Y6.40 detallan las
operaciones que pueden ser realizadas por el microprocesador genérico. El programador también
debe estar familiarizado con los registros disponibles cuando escribe un programa. Un modelo de
programación del microprocesador genérico se muestra en la Figura 6.3. Resume los registros que
utiliza el programador, el cual también debe conocer la arquitectura general de la microcomputa­
dora y comprender el mapa de memoria de la unidad.
Los puntos para desarrollar un programa pueden resumirse como sigue:
1.
2.
3.
4.
5.
6.
Definir y analizar el problema.
Dibujar un diagrama de flujo de la solución del problema.
Escribir el programa en lenguaje ensamblador.
Escribir o generar la versión en lenguaje máquina del programa.
Depurar el programa.
Documentar el programa.
;
Considerar la sencilla tarea de escribir un programa que sume el contenido de tres posiciones
consecutivas de memoria y almacene la suma. Es común para los programadores construir una
www.FreeLibros.me
,11
(a)
DiagraIN
PROGRAMACION DEL MICROPROCESAOOR
wa 5.l6b. Después
~ pila señalará a la
El contenido de la
carta o diagrama deflujo del problema. Un diagrama de flujo funcional para el problema ejemplo
se muestra en la Figura 6.42, donde se ve el procedimiento general para sumar tres números
consecutivos y almacenar la suma en memoria. Este diagrama de flujo carece de los detalles
adecuados para traducirlo directamente en un segmento de programa en lenguaje ensamblador o
lenguaje máquina.
br el contenido
:nemotécnico) se
(
)
Inicio
t
~
Carga el
registro HL
con 20lOH
ros de la CPU en la
de estos registros.
t
"eCuentemente, a
Carga A con
el primer
número de M
(
oc prosiga la bús­
licialización o de
Inicio
•
t
)
Incrementa HL
a 201 IH
Suma el
primer número
t
t
+
ejecución de otra
le interrupción. La
Suma el
segundo número
deMaA
Suma el
segundo número
•
t
Suma el
tercer número
Incrementa
HLa 2012H
t
liliarizado con el
6.40 detallan las
amador también
a. Un modelo de
·105 registros que
I microcomputa­
le tres posiciones
es construir una
177
+
Almacena
la suma
t
<-
Alto
Suma el
tercer número
deMaA
t
)
Incrementa
HL a 2013H
t
Almacena la
suma de M
(
(a)
Diagrama de flujo funcional para sumar tres números
(b)
Figura 6.42.
www.FreeLibros.me
t
Alto
J
Diagrama de flujo detallado
178
FUNDAMENTOS DE LOS MICROPROCESADORES
En la Figura 6.42b se ha desarrollado un diagrama de flujo detallado. En este diagrama cada
bloque rectangular corresponde a una orden u operación del microprocesador. El diagrama deta­
llado es, por tanto, dependiente del sistema microprocesador específico que se está programando,
mientras que el diagrama funcional puede utilizarse con cualquier MPU.
A continuación, se desarrolla una versión, en lenguaje ensamblador, del diagrama de flujo
detallado; el segmento de programa se muestra en la Figura 6.43a. Los cuatro campos típicos
-etiqueta, nemotécnico, operando y comentario- se listan en la parte superior. Cuidadosamen­
te copiados debajo están los nemotécnicos exactos y los operandos del microprocesador. Recor­
dar que el campo de etiqueta no necesita entradas; los comentarios son una gran ayuda para
comprender la función de cada instrucción del segmento de programa. Al comparar el diagrama
de flujos detallado, de la Figura 6.42b. con el listado del programa en lenguaje ensamblador, de la
Figura 6.43a, se observa que cada bloque del diagrama de flujo tiene una sentencia del lenguaje
Dirección
(hex)
Con'
(11
2020
2021
2022
2023
2024
Etiqueta
Nemotécnico
LXI
Operando
Comentarios
2025
H.201OH
; Carga el registro par HL con la dirección 20lOH (se utilizará
como puntero de dirección)
2026
2027
MOV
A.M
; Carga el acumulador con el primer número de la posición
de memoria 20lOH
INX
H
; Incrementa el registro par HL a 2011H
2029
ADD
M
; Suma el segundo número de la posición de memoria 2011 H
al acumulador
202A
INX
H
; Incrementa el registro par HL a 2012H
ADD
M
; Suma el tercer número de la posición de memoria 2012H al
acumulador
INX
H
; Incrementa el registro par HL a 2013H
MOV
M,A
~
1:1
2028
HLT
(a)
; Almacena la suma del acumulador en la posición de
memoria 20I3H
; Detiene la MPU
Programa en lenguaje ensamblador para sumar tres números y almacenar la suma
Figura 6.43.
eq,J
ensamblador
«Cargar el regism
ensamblador «LX
ra 6.43a._
U na vez escriti
de bits comprensi
hacerse a mano o
codificación manl!
I. Utilizando
6.40 para J
2. Determina
trucción rr
3. Asignando
randa.
~
.¡
1
www.FreeLibros.me
I
•1
:~
t
pama cada
;rama deta­
¡gramando,
de flujo
pos típicos
adosamen­
Ior. Recor­
1~'Uda para
1 diagrama
ador, de la
el lenguaje
113
~
'. 'PROGRAMACJON DEL MICROPROCESADOR
Dirección
(hex)
Contenido
(hex)
Etiqueta Nemotécnico Operando
; Carga el registro par HL con la
dirección 20!OH (se utilizará como
puntero de dirección)
MOV
A,M
; Carga el acumulador con el primer
número de la posición de memoria
20lOH
23
INX
H
; Incrementa el registro par HL a 2011 H
86
ADD
M
; Suma el segundo número de la
posición de memoria 2011 H al
acumulador
21
2021
10
2022
20
2023
7E
2024
2025
LXI
utilizará
t
2026
23
INX
H
; Incrementa el registro par H L a 2012H
2027
86
ADD
M
; Suma el tercer número de la posición
de memoria 2012H al acumulador
2028
23
INX
H
; Incrementa el registro par HL a 2013H
2029
77
MOV
M,A
; Almacena la suma del acumulador en
la posición de memoria 2013H
202A
76
HLT
llición
,
1201lH
)12H al
~
1
~
J
Comentarios
H,201OH
2020
é
t
179
(b)
; Detiene la MPl
Programas combinados en lenguaje ensamblador y máquina
Figura 6.43.
(continuación).
ensamblador equivalente. Tomar como ejemplo la primera caja rectangular de la Figura 6.42b.
«Cargar el registro HL con 201OH» en este bloque es equivalente a la sentencia en lenguaje
ensamblador «LXI H,20 10H; Cargar el registro par HL con la dirección 20 10H» de la Figu­
ra 6.43a.
Una vez escrita la versión en lenguaje ensamblador, el programa debe ser traducido a patrones
de bits comprensibles por el microprocesador, es decir, a código máquina. Este proceso puede
hacerse a mano o por programas de computadora especiales denominados ensambladores. La
codificación manual se hace:
t
2.
3.
";.
Utilizando las tablas del repertorio de instrucciones (Figuras 6.4, 6.14, 6.21, 6.30, 6.35 Y
6.40 para la MPU genérica) para buscar los códigos de op de cada nemotécnico.
Determinando los oper-c"ldos (datos o direcciones) cuando sean requeridos por una ins­
trucción multibyte.
Asignando direcciones secuenciales de la memoria de programa a cada instrucción y ope­
rando.
www.FreeLibros.me
1
'1
"1
,
]
¡r!tlt'
.
)
"111
1,,:
ii
i¡¡:
li
:1
1I
I
180
FUNDAMENTOS DE LOS MICROPROCESADORES
Considerar nuestro problema ejemplo que "sumaba los contenidos de tres posiciones consecu­
tivas de memoria y almacenaba la suma en la cuarta posición. La versión en lenguaje ensambla­
dor está reproducida a la derecha en la Figura 6.43b. Las dos columnas de la izquierda muestran
las direcciones de memoria de programa asignadas y el código de op u operando hexadecimal.
Los contenidos representan las palabras de 8 bits que deben ser almacenadas en la memoria del
programa.
Considerar la primera sentencia del lenguaje ensamblador en la Figura 6.43b. El nemotécnico
y operando se leen «LXI H,20 IOH», que deben ser asignados a un código de op y, en este caso, a
dos operandos. La tabla de la Figura 6.21 contiene la información necesaria sobre este tipo de
operación (instrucción de transferencia de datos); el nemotécnico «LXI H» se encuentra hacia la
mitad de la tabla de la Figura 6.21, Y su código de op, que es 21 H, está escrito en la columna
«Contenidos» de la Figura 6.43b. En la tabla de la Figura 6.21 se observa que esta instrucción
requiere 2 bytes de datos extra; el byte del dato de orden inferior (1 OH en este ejemplo) se coloca,
primero, en la dirección 2021 H Yel del dato de orden superior (20H en este ejemplo) se coloca, a
continuación, en la dirección 2022H. El resto de los nemotécnicos del lenguaje ensamblador de la
Figura 6.43b representan instrucciones de un solo byte, cuyos códigos de op hexadecimales son
buscados en las tablas adecuadas del repertorio de instrucciones y registrados en la columna de
«Contenidos», como muestra la Figura 6.43b. El programa de las columnas izquierdas está en
código máquina y puede ser introducido en el sistema microprocesador.
El programa se examina a continuación para ver si funciona adecuadamente, a este proceso se
le denomina depuración (sacar los errores o «chinches»). El procedimiento, de sentido común,
utilizado incluye la comparación del diagrama de flujo con el programa, doble comprobación de
los códigos de op e ir paso a paso a través del programa revisándolo con un problema simulado.
A continuación, es común introducir el programa y datos conocidos en un sistema microprocesa­
dor y comprobar las respuestas. Habitualmente se realizan varias pruebas de los problemas.
El último paso en la programación es la documentación. La documentación es una descrip­
ción del programa diciendo lo que debe realizar y cómo utilizarlo, incluyendo detalles como
diagramas de flujo, listados del programa, direcciones de datos y programas utilizados y comenta­
rios. La documentación se complica mucho en los grandes programas, los cuales necesitan niveles
de documentación tales como documentos de diseño, manuales de operador y documentos des­
criptivos.
Considerar el problema ejemplo del segmento de programa de la Figura 6.44. Aquí se ha
introducido el código máquina en la memoria del programa (direcciones 2020-202AH). Los
números que se van a sumar (OF, 09, 06H) en el problema ejemplo se han introducido en las
posiciones 2010 a 2012H de la memoria de datos. Observar si se puede seguir paso a paso la
operación de este programa para sumar OF + 09 + 06, y obtener una suma de 1EH. Este progra­
ma puede ejecutarse realmente en la mayoría de los microprocesadores de entrenamiento basados
en el 8080;8085.
Aunque los programas reales de microcomputadora son bastante largos, están formados por
un grupo de segmentos de programa similares al del ejemplo. Normalmente, cada segmento se
escribe y comprueba antes de que el programa total se unifique para la prueba final (test). El
segmento del programa ejemplo desarrollado es sólo una forma posible de resolver el problema
propuesto. El programa desarrollado se denomina programa lineal ya que no tiene saltos o bifur­
caciones.
1
Di
i.
l.
!
\.
www.FreeLibros.me
'I·~
;.:..
',1
I
PROGRAMAClON DEL MICROPROCESAOOR
:iones consecu­
. c: ensambla­
tenia muestran
o hexadecimal.
la memoria del
Memoria de datos
:J nemotécnico
, en este caso, a
!re este tipo de
uentra hacia la
en la columna
sta instrucción
lplo) se coloca.
.0) se coloca, a
IDlblador de la
ldecimales son
la columna de
llierdas está en
este proceso se
entido común,
IIlprobación de
rma simulado.
mícroprocesa­
W"oblemas.
~ una descrip.
detalles como
los y comenta­
:cesitan niveles
cumentos des­
lit. Aquí se ha
181
Dirección
Contenido
(hex)
(hex)
20\0
OF
2011
09
_Suma
Memoria de programa
----..­
I
2020
21
2021
\O
2
20
2023
7E
Instrucción 2; carga A con el primer número
2024
23
Instrucción 3; incrementa HL
2025
86
Instrucción 4; suma el segundo número
2026
23
Instrucción 5; incrementa HL
2027
86
Instrucción 6; suma el tercer número
2028
23
Instrucci6n 7; incrementa" HL
2029
77
Instrucción 8; almacena la suma
202A
76
Instrucción 9; alto
Instrucción 1; carga HL
~202AH).
Los
Jducido en las
paso a paso la
l. Este progra­
!liento basados
. i)'
formados pOi
:3 c;egmento se
.JI (test). El
:r- el problema
saltos o bifur-
-
Figura 6.44. Contenidos de memoria e instrucciones para sumar tres números
y almacenar la suma.
www.FreeLibros.me
fa
ab a:dlllllLllSt!
MI"
I
!". "."
182
FUNDAMENTOS DE LOS MICROPROCESADORES
SolucÍÓII:
PROBLEMAS RESUELTOS
6.63.
l·.
..
6.70.
Sumar
de la Figu
Un resumen de los registros de la MPU disponibles al programador se da en un diagrama
denominado modelo de programación.
6.64.
6.71.
Citar seis pasossecuenciales en el desarrollo de un programa de un sistema basado en
microprocesador, como se ha sugerido en esta sección.
Sumar
ción6 de I
Los seis pasos secuenciales en el desarrollo de un programa citados en esta sección son: definir y
analizar el problema, dibujar el diagrama de flujo de la solución del problema, escribir la versión
del programa en lenguaje ensamblador, escribir o generar la versión del programa en lenguaje
máquina, depurar el programa y documentarlo.
6.72.
¡
La representación gráfica de una solución de problema se denomina ___ .
La representación gráfica de una solución del prOblema se denomina diagrama o carta de flujo.
Dos ejemplos se muestran en la Figura 6.42.
6.73.
SUD
La SUIl
después do(
6.74.
direcciones secuenciales de la memoria del programa.
Al escribir la versión en lenguaje máquina de un programa, los _ _ (ASCn, códigos
de op) y operandos son listados en _ _ (decimal, hexadecimal) para cada posición del
programa.
EncontraJ
te _ _
Soluc:WII:
Encont
ración.
Al escribir la versión en lenguaje máquina de un programa, las instrucciones son asigna­
das en ___ (direcciones, interrupciones) secuenciales de la memoria de programa.
Solución:
.
Al escribir la versión en lenguaje máquina de un programa, las instrucciones son asignadas en
¿Cuál es t
ción de b
SoluciÓD:
El programa en lenguaje ensamblador, normalmente se escribe después de dibujar un diagrama
de flujo detallado.
6.68.
Solucióll:
La
Después de dibujar un diagrama de flujo detallado (como, por ejemplo, el de la Figu­
ra 6.42b), el siguiente paso de programación es escribir el programa en lengua­
je _ _ (ensamblador, máquina).
Solución:
6.67.
¿Cuál es I
ción de II
tanto su ,:,
Solución:
6.66.
¿Cuál es <
gura6A4
Soluciéll:
Solución:
6.65.
¿Cuál es I
gura 6.44
Solucióll:
Solución:
rt
...
El programador de un sistema microprocesador debe estar familiarizado con la arquitec­
tura del sistema, el repertorio de instrucciones de la MPU, el mapa de memoria del
sistema y los registros de la CPU. Un resumen de los registros de la MPU disponibles al
programador se da en un diagrama denominado ___ (modelo, conjunto) de progra­
mación.
Acud:¡
la instruC(
6.75.
El paso 6.
Soluc:WII:
El pase
varios ni\e
ción descn
Solución:
Al escribir una versión de un programa en lenguaje máquina, los códigos de op y operandos son
listados en forma hexadecimal para cada posición del programa.
6.69.
'¿Cuál es el contenido del registro par HL después de la ejecución de la instrucción 1 de la
Figura 6.44?
www.FreeLibros.me
6.10. MODOS
Considerar la ÍIII
suponía que uno
¿dónde estaba el ~
J.•.
1
\
PROORAMAClON DEL MICROPROCESADOR
1
!quitec­
.: del
llbles al
progra­
183
Solución:
Acudir a la Figura 6.43. El contenido del registro par HL es 2010H despuéS de la ejecución de
la instrucción 1 de la Figura 6.44.
6.70.
¿Cuál es el contenido del acumulador después de la ejecución de la instrucción 4 de la Fi­
gura 6.44?
Solución:
Sumar OF + 09 = 18H. El contenido del acumulador despuéS de la ejecución de la instrucción 4
de la Figura 6.44 es 18H.
6.71.
arlo en
¿Cuál es el contenido del acumulador después de la ejecución de la instrucción 6 de la Fí­
gura6A4?
Solución:
Sumar OF + 09 + 06 = 1EH. El contenido del acumulador después de la ejecución de la instruc­
ción 6 de la Figura 6.44 es 1EH.
l
Irfiniry
~ÓD
rnguaje
le flUJO.
I
6.72.
¿Cuál es el contenido de la posición 20t3H de la memoria de datos después de la ejecu­
ción de la instrucción 7 en la Figura 6.44?
V
Solución:
La suma no se ha almacenado todavía en la posición 2013H de la memoria de datos, y por
tanto su contenido es, de alguna forma, un patrón aleatorios de bits.
6.73.
¿Cuál es el contenido de la posición 20t 3H de la memoria de datos después de la ejecu­
ción de la instrucción 8 de la Figura 6.44?
Solución:
La suma de OF + 09 + 06 - lEH es almacenada en la posición 20l3H de la memoria de datos
después de la ejecución de la instrucción 8 de la Figura 6.44.
Figu­
engua-
IIgrama
6.74.
Encontrar y corregir los errores en un programa es un proceso denominado comúnmen­
te _ _ (depuración, detección de fallos).
Solución:
Encontrar y corregir errores en un programa es un proceso denominado, comúnmente, depu­
ración.
6.75.
..
~.
~~
;¡¡.
jel
.I
El paso final en la escritura de un programa se denomina _--"-_
Solución:
El paso final en la escritura de un programa se denomina documentación. Esta debe incluir
varios niveles como, por ejemplo, documentación de diseño. un manual de operador y documenta­
ción descriptiva.
6.10. MODOS DE DIRECCIONAMIENTO
de la
Considerar la instrucción de sumar del microprocesador. En el microprocesador genérico se
suponía que uno de los números que se iban a sumar estaba en el acumulador. Sin embargo,
¿dónde estaba el segundo número y cómo se recuperaba? Los distintos métodos de recuperación
www.FreeLibros.me
41112211&:'4, ¿¡ ¡ ¡ ;¡¡U¡JlliSi!S:;::¡
:::
"
1
Il
184
FUNDAMENTOS DE LOS MICROPROCESADORES
se denominan modos de direccionamiento del microprocesador. Cada microprocesador tiene sus
propios métodos de recuperación, o modos de direccionamiento. Estos deben ser bien compren­
didos por el programador. Los modos de direccionamiento se han mencionado muchas veces en
las secciones anteriores, pero debido a que muchos estudiantes tienen dificultad con los modos de
direccionamiento, en esta sección se revisarán los utilizados por el microprocesador genérico.
Los modos de direccionamiento listados en el repertorio de instrucciones del microprocesador
genérico son:
1.
2.
3.
4.
5.
Inherente.
De registro.
Inmediato.
Directo.
Indirecto de registro.
Los dos primeros modos de direccionamiento de la lista (inherente y de registro) se refieren a
operandos que están localizados en la misma CPU. Los últimos tres modos de direccionamiento
(inmediato, directo e indirecto de registro) se refieren a operandos que están localizados fuera de
la CPU, en posiciones de memoria o puertos de E/S. Estos son los mismos modos de direcciona­
miento utilizados por el microprocesador Intel 8080/8085.
Considerar un ejemplo de la instrucción inherente: «poner a 1 el señalizador de arrastre» del
grupo de transferencia de datos de la Figura 6.21. Las instrucciones inherentes son siempre de 1
byte porque no se requiere ningún dato para completar la operación y todas las acciones ocurren
en la CPU. La acción de la instrucción «poner a 1 el señalizador de arrastre» del microprocesador
genérico está esbozada en la Figura 6.45a. No es necesario recuperar ningún dato ni dirección de
otros registros de la CPU, posiciones de memoria o puertos de E/S. La instrucción STC pone a 1
el señalizador de arrastre (eY) sin afectar a los demás registros o señalizadores.
En las instrucciones de registro. el operando es recuperado de un registro interno de la CPU.
Considerar el ejemplo de la instrucción de registro, «restar L de A» del grupo aritmético de la
Registro de status
1O
I
11
I
I 1I
Cy ~
Antes de la operación
o~/
~® ~
I
z
11
Después de la operación
Acumulador
Después de la operación
Antes de la operación
SUBL
Registro L
(b)
La instrucción restar L de A (direccionamiento de registro)
Figura 6.45.
J
Registro de status
La instrucción de poner a I el señalizador de registro (direccionamiento inherente)
Acumulador
Memoriade~
Figura 8.*
STC
(a)
Figura 6.4. Las I
dones de 1 byte,
ocurren en la c:
minuendo (000
(00000011 en e
interna, la difen
En las instru.
tes) de la memO#'
instrucción. COI]
de transferencia
es una instrucci
instrucciones de
ran de la memor
(O 1110000 en es
este ejemplo). La
de la CPU o el Il
En las instrut:l
directamente a la
memoria del PI"Ot
en el caso del din
trar a A desde el ~
la tabla de la FÍgl.
las operaciones d
ra 6.47 muestra €
acumulador del 1
del segundo byte
ejemplo.
En las instrua.
operando en la 11
«cargar LOC (H ~
la Figura 6.21. A I
www.FreeLibros.me
i ",lli
lu
",
1
'!IIi
i!
1:
,1
,¡Ji
!
l8dor tiene sus
::1 compren­
LtChas veces en
1 los modos de
l>r genérico.
croprocesador
) se refieren a
:ccionamiento
mdos fuera de
de direcciona­
PROGRAMACION DEL MICROPROCESADOR
Figura 6.4. Las operaciones de registro (como las instrucciones inherentes) son siempre instruc­
ciones de 1 byte, ya que no se necesitan datos ni direcciones fuera de la CPU y todas las acciones
ocurren en la CPU. La acción de la instrucción ccrestar L de A» se detalla en la Figura 6.45b. El
minuendo (00001111 en este ejemplo) está en el acumulador, mientras que el sustraendo
(00000011 en este ejemplo) está contenido en el registro L; después de la operación de resta
interna, la diferencia (00001100 en este ejemplo) es transferida al acumulador.
En las instrucciones inmediatas. el operando viene del siguiente byte (o a veces los 2 siguien­
tes) de la memoria del programa. El operando está inmediatamente después del código de op de la
instrucción. Considerar el ejemplo de la instrucción inmediata, «cargar SP con datos» del grupo
de transferencia de datos de la Figura 6.21. A partir de la tabla de la Figura 6.21 se determina que
es una instrucción de 3 bytes. Generalmente, las operaciones inmediatas se especifican como
instrucciones de 2 ó 3 bytes. El ejemplo de la Figura 6.46 muestra 2 bytes de datos que se recupe­
ran de la memoria del programa y se cargan en el puntero de pila (SP). El byte de orden inferior
(01110000 en este ejemplo) se carga primero, y después el byte de orden superior (00000010 en
este ejemplo). Las instrucciones de modo inmediato son convenientes para inicializar los registros
de la CPU o el puntero de pila.
Direc- Código de
ción
operación
~
arrastre» del
I siempre de l
lones ocurren
croprocesador
ti dirección de
STC pone al
185
2000
31H
Memoria de programa
Antes de la operación
DespUés de la operacÍÓD
Il1o de la CPU.
Puntero de pila
itmético de la
I
Figura 6.46.
La instrucción de cargar el puntero de pila (direccionamiento inmediato).
En las instrucciones directas. el segundo y tercer bytes de la memoria del programa apuntan
directamente a la dirección del operando en la memoria de datos. El segundo y tercer bytes de la
memoria del programa son direcciones en una instrucción directa, mientras que eran operandos
en el caso del direccionamiento inmediato. Considerar el ejemplo de la instrucción directa, c<en­
trar a A desde el puerto LOC a» del grupo de transferencia de datos de la Figura 6.21. A partir de
la tabla de la Figura 6.21 se determina que se trata de una instrucción de 2 bytes. Generalmente,
las operaciones directas se especifican como instrucciones de 2 ó 3 bytes. El ejemplo de la Figu­
ra 6.47 muestra el contenido del puerto de entrada (11000011 en este ejemplo) transferido al
acumulador del microprocesador. El puerto exacto de entrada está señalado por la dirección
del segundo byte de la instrucción del programa (esta dirección es 00001010, Ó 10 10 en este
ejemplo.
En las instrucciones indirectas de registro, el registro par especial HL apunta a la dirección del
operando en la memoria de datos. Considerar el ejemplo de la instrucción indirecta de registro
c<cargar LOC (H & L) en A» (nemotécnico de MOV A,M) del grupo de transferencia de datos de
la Figura 6.21. A partir de la tabla de la Figura 6.21 se determina que es una instrucción de 1 byte.
www.FreeLibros.me
¡ti .II~
f-----18-6--FU-N-DA-:M-E-NT~ D~l~~'CRO-P-ROC-~Aoom
I
Acumulador
Antes de la~peración Entrada
6.77.
Después de la operación
SoIIlCl
CI
IN
Puerto de entrada
(LOC)
1100 00 11
Clla!
ningl
6.78.
Cuan
ción~
medí;
Memoria de programa
Solud
Cu
operar
Figura 6.47.
La instrucción de entrar (direccionamiento directo).
Las operaciones indirectas de registro se especifican siempre por instrucciones de ] byte. El ejem­
plo de la Figura 6.48 muestra el contenido de la posición 2080H (11110000 en este ejemplo) de
memoria cargándose en el acumulador. La dirección (2080H en este ejemplo) de la posición
correcta de la memoria de datos está señalada por el contenido del registro par HL. Este registro
se denomina registro de datos/direcciones del microprocesador genérico. En este caso el registro
HL se está utilizando como un registro de direcciones.
6.79.
Cuan<
ria de
SoIuci4í
CWI
depl"Of!
6.80.
Cuand
HLde
Soluciól
Acumulador
Cual
Antes de la operación
Memoria de datos
(2080)
R,,;"., p'"
direcció
Después de la operación
1111 0000
6.81.
H~~ I
SoludÓ!!
Cuaa
de regiSII
Una dirección
Figura 6.48.
La instrucción cargar A desde memoria (direccionamiento indirecto de registro).
Otros microprocesadores tienen variaciones en el modo de direccionamiento directo, denomi­
nándose por nombres tales como página cero o direccionamiento de página base, direcciona­
miento absoluto, direccionamiento de página actual y direccionamiento extendido. Otros modos
no utilizados por nuestro microprocesador genérico incluyen el muy popular direccionamiento
indexado y también el direccionamiento relativo.
Cuandc
de rest;;
de dira
6.82.
Las
01)
de __
SolucÍÓlt
Las .::
6.83.
Las opc
por inst
Solución
Las o
PROBLEMAS RESUELTOS
6.76.
Citar los cinco modos de direccionamiento utilizados por el microprocesador genérico.
Solución:
Los cinco modos de direccionamiento utilizados por el microprocesador genérico son inheren­
te, de registro. inmediato. directo e indirecto de registro. Estos modos de direccionamiento tam­
bién se utilizan en el microprocesador 8080/8085.
truccion~
6.84.
Las ope
especifi(
Solución
Lasü
das por
1
www.FreeLibros.me
,:ll'll
"11
,¡r
Ili
/il
¡.
'1/1
di
1i'
1
1"
l'
' /1
:!,
PROORAMACION DEL MICROPROCESADOR
6.77.
187
Cuando se utiliza una instrucción ___ (directa, inherente), no es necesario recuperar
ningún operando.
Solución:
Cuando se utiliza una instrucción inherente, no se necesita recuperar ningún operando.
6.78.
Cuando se utilizan el segundo y tercer bytes de la instrucción para apuntar a la direc­
ción del operando, se está utilizando el modo de direccionamiento ___ (directo, in­
mediato).
Solución:
Cuando se utilizan el segundo y tercer bytes de la instrucción para apuntar a la dirección del
operando, se está utilizando el modo de direccionamiento directo.
6.79.
rte. El ejem­
ejemplo) de
la posición
Este registro
íO el registro
l
Cuando se usa una instrucción «suma inmediato», el operando se recupera de la memo­
ria de _ _ (datos, programa).
Solución:
Cuando se utiliza una instrucción «suma inmediato», el operando se recupera de la memoria
de programa.
6.80.
Cuando se utiliza una instrucción de _ _ (registro, registro indirecto), el registro par
HL de la CPU apunta a la dirección del operando.
Solución:
Cuando se utiliza una instrucción de registro indirecto, el registro par HL de la CPU apunta a la
dirección del operando.
6.81.
Cuando ambos operandos (como, por ejemplo, minuendo y sustraendo en un problema .
de resta) están localizados en los registros internos de la CPU, puede utilizarse el modo
de direccionamiento ___ (inmediato, registro) para recuperar los operandos.
Solución:
Cuando ambos operandos están localizados en registros internos, el modo de direccionamiento
de registro puede ser utilizado para recuperar los operandos.
registro).
6.82.
tw. denomi­
, direcciona­
)tros modos
-:amiento
Solución:
Las operaciones de registro e inherentes están especificadas por instrucciones de 1 byte.
6.83.
r
genérico.
,son ¡nheren­
lOlíento tam­
t
Las operaciones que utilizan el modo de direccionamiento directo están especificadas
por instrucciones de _ _ (número) bytes.
Solución:
Las operaciones que utilizan el modo de direccionamiento directo están especificadas por ins­
trucciones de 2 Ó 3 bytes.
6.84.
:JI'
Las operaciones de registro e inherentes están especificadas por una instrucción
de _ _ (número) bytes.
Las operaciones que utilizan el modo de direccionamiento indirecto de registro están
especificadas por instrucciones de ___ (númer0) bytes.
Solución:
Las operaciones que utilizan el modo de direccionamiento de registro indirecto están especifica­
das por instrucciones de 1 byte.
www.FreeLibros.me
I
I
~!
188
FUNDAMENTOS DE LOS MICROPROCESADORES
6.11. BIFURCAOON EN PROGRAMAS
Etiqueta
Sen
Considerar la sencilla tarea de decidir cuál es el mayor de dos números y almacenar el mayor en
una posición específica de memoria. Un diagrama de flujo para resolver este problema se muestra
en la Figura 6.49a. Comenzando por la parte superior del diagrama de flujo, los dos primeros
rectángulos representan la operación de cargar los dos números en los registros A (acumulador) y
L (datos). El siguiente rectángulo representa la operación de comparación, donde el contenido del
registro L se resta del contenido del registro A. Las operaciones de comparación no afectan el
contenido de los registros pero sí a los señalizadores. La siguiente caja, en forma de diamante, del
diagrama de flujo se llama símbolo de decisión, que representa un punto de decisión en el
programa. Siempre se realiza una pregunta en este símbolo de decisión. En este ejemplo, el
símbolo presenta la pregunta: ¿Es (A) ~ (L)? Si la respuesta es afirmativa, el programa continúa y
el contenido del registro A es almacenado en la memoria y después el procesador se detiene por el
símbolo de «stop». Sin embargo, si la respuesta a la pregunta del símbolo de decisión, es negativa,
1
~
e
J
~
I
STOREL
I
5
primer número
en el registro A
(acumulador)
I
Carga el
segundo número
en el registro L
Etiqueta
SeTI'
Ji
Compara
AyL
~
(A) - (L)
(
J
No
S
(L) > (A)
1­
Almacena (A)
en memoria
Almacena (L)
en memoria
STOREL!
11
S
I
(a)
Diagrama de flujo detallado para comparar y almacenar el número mayor
,
Figura 6.49.
1
www.FreeLibros.me
:1[:
"1
'·,
11:1
,1;
:11
"l·'
1./:1
:,1l'
'[!I
,Ii
.
"
PROGRAMACION DEL MICROPROCESAOOR
Etiqueta
:enar el mayor en
blema se muestra
los dos primeros
.4 (acumulador) y
e el contenido del
ión no afectan el
de diamante, del
le decisión en el
este ejemplo, el
pma continúa y
r se detiene por el
lSión. es negativa.
Nemotécnico
MVl
A,OFH
; Carga acuml'lador con el primer número (15 10)
MVI
L,06H
; Carga el registro L con el segundo número (6 10 )
CMP
L
JC
; Compara (A) y (L)
Señalizador CY = 1 si A < L
STORE L
2040H
STA
; Salta a la posición de STORE L si CY = 1 (si A < L);
de otra forma continúa con la siguiente instrucción
; Almacena (A) en la posición de memoria 2040H
HLT
STOREL
; Detiene la MPU después de almacenar (A)
MOV
A,L
",••,"~",
STA
2040H
~"¡;,"
; Transfiere el contenido del registro L al acumulador
,i
r
HLT
~
(b)
l
Comentarios
"­
,
~
Operando
".~
.
Etiqueta
; Almacena (A) en la posición de memoria 2040H
; Detiene la MPU después de almacenar el contenido de
registroL
Programa en lenguaje ensamblador utilizando la bifurcación «almacenar A»
Nemotécnico
Operando
Comentarios
MVI
A,OAH
; Carga el acumulador con el primer número (10 10 )
MVI
L,OEH
; Carga el acumulador con el segundo número (14 10)
CMP
L
~ ':~"
, ~l
JC
2040H
HLT
HLT
(e)
; Salta a la posición de STORE L si CY.= l (si A < L);
de otra forma continúa
; Almacena (A) en la posición de memoria 2040H
; Detiene la MPU después de almacenar (A)
MOV
STA
; Compara (A) y (L)
Señalízador CY = 1 si A <' L
STOREL
STA
STOREL
189
A,L
2040H
; Transfiere el contenido del registro L al acumulador
; Almacena (A) en la posición de memoria 2040H
; Detiene la MPU después de almacenar el contenido de
registro L
Programa en lenguaje ensamblador utilizando la bifurcación «almacenar L»
Figura 6.49.
(continuación).
www.FreeLibros.me
"'~¿i"
I,
r
190
FUNDAMENTOS DE LOS MICROPROCESADORES
el programa bifurca a la derecha y.. el contenido del registro L es almacenado en memoria, y
después se para el procesador. El uso de símbolos de decisión en un diagrama de flujo nos
conduce a lo que se denomina bifurcación en un programa o programa con ruptura de secuencia.
La versión en lenguaje ensamblador del programa que compara dos números y coloca el valor
del mayor en la posición de memoria 2040H está detallado en la Figura 6.49b. Observar que en el
programa ejemplo de la Figura 6.49b, el acumulador (A) se carga con 15 10 mientras que el regis­
tro L se carga con 6 10" Después de comparar (la tercera instrucción en este ejemplo), se encuentra
que (A) > (L) y, por tanto, el señalizador de arrastre (eY) se pone a O. La instrucción de saltar
(nemotécnico de JC en este ejemplo) examina el señalizador de arrastre y encuentra que ey = O,
lo que hace que la MPU continúe con la siguiente instrucción de la secuencia, que es «almacenar
(A) en la dirección de memoria 2040H». El número mayor (OFH) se almacena en la posición de
memoria 2040H mediante la operación «STA». A continuación la MPU la detiene por la instruc­
ción de alto (HLT). Las tres últimas instrucciones, sombreadas, del programa en lenguaje ensam­
blador de la Figura 6.49b no se utilizan en este ejemplo. En el diagrama de flujo que se muestra
en la Figura 6.49a, el programa continúa linealmente y no bifurca a la derecha.
Considerar el mismo programa en lenguaje ensamblador pero con el contenido del acumula­
dor menor que el contenido del registro L. Un listado de dicho programa se muestra en la
Figura 6.49c. En este ejemplo el acumulador se carga con OAH (10 10 ), mientras que el registro L
se carga con el valor mayor de OEH 14 10 ), La instrucción de comparar pone a l el señalizador ey
porque (A) < (L); la operación «salta si señalizador de arrastre es 1» (nemotécnico JC en este
ejemplo), examina el señalizador ey y comprueba que está a l. La instrucción de salto hace
entonces que el contador de programa cambie a la dirección de la posición de la siguiente instruc­
ción (STORE L en este ejemplo). Observar que la MPU ha saltado dos instrucciones para llegar a
la dirección simbólica STORE L que aparece listada en la columna «etiquetas». La MPU enton­
ces ejecuta las tres últimas instrucciones, las cuales almacenan el contenido del registro L (el
número mayor, OEH en este ejemplo) en la posición de memoria 2040H. En el diagrama de flujo
de la Figura 6.49a, el programa progresat::. al símbolo de decisión y después bifurcaba a la dere­
cha y seguía hasta alcanzar el símbolo «alto» inferior derecho.
Observar de nuevo las tres últimas instrucciones de la Figura 6.49c. El objeto de estas instruc­
ciones es almacenar el contenido del registro L en la posición de memoria 2040H. Según la tabla
del repertorio de instrucciones de la Figura 6.21 el microprocesador genérico no tiene ninguna
instrucción para almacenar directamente en memoria el registro L. Por tanto, ha sido necesario
transferir primero el contenido del registro L a A y después almacenar A en memoria. A veces se
encuentra que los microprocesadores con repertorios limitados de instrucciones (como la MPU
genérica) son más dificiles de programar que las unidades con repertorios de mayor alcance.
En resumen, las técnicas de bifurcación observadas en el diagrama de flújo se ejecutan por
instrucciones de salto (a veces denominadas de bifurcación). Las instrucciones de bifurcación
condicional toman una decisión según la condición de un señalizador particular del registro de
status. La técnica de bifurcación es muy utilizada en la mayoría de los programas.
PROBLEMAS RESUELTOS
6.85.
6.86.
Lainstn
valor del
Solocióa:
Las in
una resta
6.87.
La instn
Z) en es
SoIIlCililE
La im
ma. El se
ninguna I
6.88.
Acudir a
señaliza¡:
bifurcaC"
Solucióll:
Si IAl
comparal
6.89.
Acudir,
instruro
ala~
SoIDdíll:
Si .-4.
posición
instruro.
porque A
6.90.
Acudir;
STORE
Sol~
Elap
esto se d
blador
6.91.
Las iIlSl
en los r
So. . . .
Las I
comput;
La caja en forma de diamante de la Figura 6.49a se denomina _ _ _ _ (símbolo de
decisión, diamante de bifurcación).
1
Solución:
La caja en forma de diamante de la Figura 6.49a se denomina símbolo de decisión.
www.FreeLibros.me
.'
j
.,
-
--~-
PROORAMACION DEL MICROPROCESADOR
memoria, y
la de flujo nos
ra de secuencia.
, coloca el valor
servar que en el
ras que el regis­
o). se encuentra
Ilcción de saltar
Ira que CY = 0,
1: es «almacenar
11 la posición de
e por la instruc­
enguaje ensam­
que se muestra
6.86.
le estas instruc­
_Según la tabla
• tiene ninguna
l sido necesario
oria. A veces se
(como la MPU
ror alcance.
re ejecutan por
de bifurcación
. -:lel registro de
~
La instrucción «comparar A con 1:;, de la Figura 6.49b _ _ (cambia, no cambia) el
valor del acumulador.
Solución:
Las instrucciones de comparación no cambian el valor del acumulador aún cuando se realice
una resta interna (A - L en este ejemplo).
6.87.
La instrucción «comparar A con L» de la Figura 6.49b afecta al señalizador ___ (CY,
Z) en este programa.
Solución:
La instrucción «comparar A con L» de la Figura 6.49b afecta al señalizador CYen este progra­
ma. El señalizador de cero (Z) también es afectado pero no es comprobado posteriormente por
ninguna instrucción de bifurcación en este programa.
6.88.
lo del acumula-
muestra en la
¡ue el registro L
señalizador CY
oico JC en este
o de salto hace
guiente instruc­
les para llegar a
...a MPU en ton1:1 registro L (el
agrama de flujo
rcaba a la dere­
191
Acudir a la Figura 6.49. Si el contenido del acumulador (A) y del registro L son iguales, el
señalizador de arrastre es puesto a ___ (0, 1) por la instrucción de comparación y la
bifurcación ___ (<<No», «Sí») se toma en el símbolo de decisión de la Figura 6.49a.
Solución:
Si (A) .. (L) en la Figura 6.49a, el sefializador de arrastre es puesto a O por la instrucción de
comparación y se toma la bifurcación «Sí» en el símbolo de decisión.
6.89.
Acudir a la Figura 6.49. Si el registro A contiene IAH y el registro L contiene ASH, la
instrucción de salto hará que la CPU ___ (continúe con la siguiente instrucción, salte
a la posición STORE L).
Solución:
Si A .. l AH y L - ASH en la Figura 6.49, la instrucción de salto hará que la CPU salte a la
posición STORE L. El salto es provocado, porque el señalizador de arrastre es puesto a 1 por la
instrucción de comparación. La instrucción de comparación pone a I el señalizador de arrastre
porque A < L.
6.90.
Acudir a la Figura 6.49b y c. El operando siguiente a la instrucción dC» se lista como
STORE L; esto se denomina una dirección ___ (absoluta, simbólica).
Solución:
El operando de la Figura 6.49b y e que sigue a la instrucción «JO) está listado como STORE L;
esto se denomina una dirección simbólica cuando se utiliza en un programa en lenguaje ensam­
blador.
6.91.
Las instrucciones de bifurcación o de salto se utilizan ___ (con frecuencia, rara vez)
en los programas reales de computadora.
Solución:
Las instrucciones de bifurcación o saltos se utilizan con frecuencia en los programas reales de
computadoras.
I
(símbolo de
cisión.
www.FreeLibros.me
:~'ltI!2I ta ¡JiU ,. . . ._ _ __
192
FUNDAMENTOS DE LOS MICROPROCESADORES
6.12. PROGRAMAS CICLICOS
Otro ejempl¡
coloca la secuen
Acudir al diagra
son para iniciali
representa el pro
almacenará repe
el registro par ¡
posición de men
Los rectángul
Los microprocesadores son especialmente útiles para realizar tareas repetitivas. Por ejemplo, el
diagrama de flujo de la Figura 6.50 representa un programa que cuenta de O a 254 (O-FEH) Ysaca
la cuenta a un dispositivo periférico adecuado. Este programa tiene las características de la mayor
parte de los programas cíclicos (con bucles o lazos). Comenzando en la parte superior, es costum­
bre inicializar los registros. En este ejemplo el acumulador (A) se pone a OOH, a continuación el
contenido del acumulador se saca al dispositivo periférico adecuado. lo que denomina el proceso
repetido, después se incrementa el contenido del acumulador o la cuenta se modifica. Los símbo­
los de comparación y decisión realizan el procedimiento de prueba para determinar si la cuenta
del acumulador ha alcanzado ya FFH. Si la respuesta a la pregunta en la caja de decisión (¿Es
A - FFH? en este ejemplo) es negativa el programa bifurca a la izquierda y vuelve al bloque de
salida. Esto se denomina ciclo o bucle. El programa 'seguirá el ciclo 25410 veces y después sale por
el símbolo de alto. El diagrama de flujo de la Figura 6.50 representa un programa que puede
tener de 15 a 30 instrucciones. Si los 25510 pasos del programa se hubiesen programado de forma
lineal, el listado tendría miles de instrucciones. Los ciclos del programa son una forma adecuada
de simplificar programas que tengan procesos repetitivos.
ti
Poner
AaOOH
Inicializar
j
Sacar A Y
retardo de "" I seg
Proceso
repetitivo
Incremento de A
Modificar
el conteo
Iteración
'r
Comparar
(A) con
FFH
Procedimiento
de prueba
No
Figura 6.50.
Diagrama de flujo del problema de cuenta que utiliza un programa cíclico.
I
www.FreeLibros.me
• ¡::i:n,.illiij¡;¡¡;;¡:::,III,
I
11
PROORAMACION DEL MICROPROCESADOR
'or ejemplo, el
(o-FEH) y saca
:as de la mayor
ior, es costum­
:ontinuación el
nina el proceso
ca. Los simbo­
lar si la cuenta
: decisión (¿Es
'e al bloque de
espués sale por
ma que puede
nado de forma
lrma adecuada
193
Otro ejemplo de programa cíclico se muestra en la Figura 6.51. Este segmento de programa
coloca la secuencia de números de Oal 8 en las posiciones secuenciales de memoria 2040 2048H.
Acudir al diagrama de flujo de la Figura 6.51a. Los dos primeros rectángulos de la parte superior
son para inicializar el registro par HL con 2040H y el acumulador con OOH. El tercer rectángulo
representa el proceso de almacenamiento, que se repetirá nueve veces en este programa. La MPU
almacenará repetidamente el contenido del acumulador en la posición de memoria señalada por
el registro par HL. En el primer pase, el contenido del acumulador (OOH) se almacena en la
posición de memoria 2040H.
Los rectángulos cuarto y quinto de la Figura 6.51a representan operaciones que modifican la
Carga el
registro HL
con 2040H
Poner
A
aOOH
posición de memoria
apuntada r HL
Incrementa el
registro HL
Ciclo
Incrementa el
registro A
Comparar
(A)
9
No
(a)
iclíco.
I
Diagrama de flujo detallado del programa de «cuenta y almacena»
Figura 6.51.
www.FreeLibros.me
I
rl
I
•
194
FUNDAMENTOS DE LOS MICROPROCESADORES
Etiqueta
LOOP
Operando
Comentarios
LXI
H,2040
; Carga el registro HL con 2040H (utilizado como puntero de
dirección)
XRA
A
; Pone el acumulador a OOH [(A) E!1 (A) = OOH en acumulador]
MOV
M,A
INX
H
; Incrementa el registro HL
INR
A
: Incrementa el acumulador
Nemotécnico
; Almacena el contenido del acumulador en la posición de
memoria apuntada por el registro HL
Una
VersiÓIl
grama de flujo
posiciones secUI
lentes a los dos
con 2040H y e
acumulador en
siguientes (I~X
contenido de A I
cero está a O, Pe1
examina el seña
por tanto se rea
señalizador de e
programa sale d
programa.
,
CPI
ti
: Compara ¿es todavía (A) igual a 09 H'!
Si (A) = 09H. entonces el señalizador de O se coloca en 1
09H
iE~
6.92.
JNZ
LOOP
HLT
-~
que deb!:
; Salta a la posición LOOP si Z O[si (A) < 09H]: de otra
forma continúa con la siguiente instrucción
SoIUCÍfIiE
Larea
repetitl\~
; Detiene la MPU
"
(b)
Versión en lenguaje ensamblador del programa de «cuenta y almacena»
Figura 6.51.
6.93.
Acudir a
utilizada
Soluc_
(continuación).
E! rect
inicializar
6.94.
dirección del registro par HL y la cuenta del registro A. A título de ejemplo, durante el primer
pase a través del programa, el registro par HL es incrementado a 2041 H mientras que el acumula­
dor es incrementado a 01 H.
•
El rectángulo de comparación y el símbolo de decisión representan las operaciones de prueba.
El rectángulo de comparación resta 09H del contenido de A para poner a O ó a 1 el señalizador de
cero. Si A < 9, el señalizador de cero estará a O, sin embargo, si A = 9, entonces el señalizador de
cero estará al; el símbolo de decisión hace la pregunta: ¿Es A == 9? Si la respuesta es sí, el
programa sale del ciclo y finaliza, sin embargo, si la respuesta es no, entonces el programa bifurca
hacia atrás a la instrucción de almacenar, cercana a la parte superior del diagrama. Muchos
procedimientos cíclicos utilizan las instrucciones de comparación y salto condicional para exami­
nar una cuenta que se modifica y que determina cuándo finaliza el ciclo. La cuenta modíficada
que se examina en este ejemplo es el contenido del acumulador. El programa representado por el
diagrama de flujo de la Figura 6.51a repetirá el proceso de almacenamiento nueve veces antes de
salir por el símbolo de alto.
www.FreeLibros.me
Acudir a
ción, el P'
SoludóE
Sielco
ma siguec:i
A=9?LaI
6.95.
Acudir al
nido del n
resta inter
Solucióa:
La oper
09H. AcudJ
ración iDIDI
t
PROGRAMACION DEL MICROPROCESADOR
'puntero de
t
romulador]
ición de
t
195
Una versión en lenguaje ensamblador de un programa que funciona como especifica el dia­
grama de flujo se muestra en la Figura 6.15b. El programa almacenará los números O a 8 en las
posiciones secuenciales de memoria 2040 a 2048H. Las dos primeras instrucciones son equiva­
lentes a los dos primeros bloques del diagrama de flujo, y están para inicializar el registro par HL
con 2040H y el acumulador con OOH. La instrucción MOV M,A almacena el contenido del
acumulador en la posición de memoria a la que apunta el registro par HL; las dos instrucciones
siguientes (INX H e INR A) incrementan los registros HL y A, la instrucción CPI compara el
contenido de A con la constante 09H. Si el registro A contiene un valor de O a 8, el señalizador de
cero está a O, pero si el contenido de A es 9, el señalizador de cero se pone a l. La instrucción JNZ
examina el señalizador de cero, si es ~ O, el resultado de la resta interna (A) 09H no es cero, y
por tanto se realiza un salto a la posición especificada por la dirección simbólica LOOP. Si el
señalizador de cero es = 1, el resultado de la resta interna (A) 09H es cero y, por tanto, el
programa sale del ciclo y continúa con la siguiente instrucción, que es HLT, la cual detiene el
programa.
~
PROBLEMAS RESUELTOS
lCa
en 1
6.92.
de otra
___ (hacer ciclos, modular) en un programa es un método de acortar los programas
que deben realizar tareas repetitivas.
Solución:
La realización de ciclos es un método de acortar los programas que deban realizar operaciones
repetitivas.
~
l
6.93.
Acudir a la Figura 6.51a. El rectángulo «poner A a OOH» representa una instrucción
utilizada para ___ (inicializar, examinar) el contenido del acumulador.
Solución:
El rectángulo <<poner A a OOH» de la Figura 6.5 1a representa una instrucción utilizada para
inicializar el contenido del acumulador.
6.94.
el primer
el acumula-
!le
Solución:
Si el contenido del acumulador de la Figura 6.51 a es 8 en el bloque de comparación, el progra­
ma sigue el ciclo despuéS del bloque de decisión. Observar que el bloque de decisión pregunta: ¿Es
A 97 La respuesta es no, y por tanto el programa sigue el ciclo.
la de prueba.
:zadorde
liahzador de
sta es sí, el
ama bifurca
na. Muchos
para exami­
, modificada
ntado por el
ICeS antes de
t
Acudir a la Figura 6.5Ia. Si el contenido del acumulador es 8 en el bloque de compara­
ción, el programa ___ (sigue el ciclo, se detiene) después del bloque de decisión.
6.9S.
Acudir a la Figura 6.51 b. La operación «CPI» _
(compara, complementa) el conte­
nido del registro ___ (A, HL) con la constante 09H. Esta operación se realiza por una
resta interna.
Solución:
La operación «ePI» de la Figura 6.51 b compara el contenido del registro A con la constante
09H. Acudir a la tabla de la Figura 6.4 para información detallada sobre la instrucción de compa­
ración inmediata.
www.FreeLibros.me
196
6.96.
FUNDAMENTOS DE LOS MICROPROCESADORES
Acudir a la Figura 6.51 b. Si el señalizador de cero se pone al, la instrucción JNZ hará
que la MPU ___ (continúe con la siguiente instrucción, vuelva atrás en el ciclo a la
instrucción MOV M,A).
Solución:
Si el señalizador de cero es puesto a 1 en la Figura 6.51 b, la instrucción JNZ hará que la MPU
continúe con la siguiente instrucción.
6.97.
En un ciclo de un programa, la MPU ejecuta un grupo de operaciones repetidamente
teniendo la posibilidad de ___ (cambiar, detener) las repeticiones en el instante ade­
cuado.
G
~
Solución:
El ciclo de un programa hace que la MPU ejecute un grupo de operaciones repetidamente
teniendo la posibilidad de detener las repeticiones en el instante adecuado. Hay algunos programas
con ciclos que continúan en el ciclo hasta que son interrumpidos por una reinicialización y por
tanto no tienen la posibilidad de salir del programa por medios software.
6.98.
G
Acudir a la Figura 6.5ta. Este programa repite la operación «almacenar (A) en memoria»
nueve veces, y el programa sigue el camino del ciclo hasta que salga por el símbolo de
decisión de forma de diamante ___ (número) veces.
[
Solución:
El programa representado en la Figura 6.51 a repite la operación «almacenar (A) en memorÍalt
nueve veces aunque el programa realiza el ciclo, hasta el símbolo de decisión en forma de diaman­
te, solamente ocho veces. Esto es debido a que antes del primer ciclo se ejecutó una operación de
almacenamiento.
[
[
6.13. UTILIZAOON DE SUBRUTINAS
"
!.
' ..
Una subrutina es un subprograma que puede ser utilizado muchas veces en el programa principal
o es, normalmente, utilizado por un programador en muchos programas. Una subrutina se utiliza
a veces, con tanta frecuencia, que se coloca permanentemente en una ROM. La transferencia de
control desde el programa principal a la subrutina se realiza por una instrucción de llamada
(call). Lo inverso, o transferencia de control de la subrutina al programa principal, lo realiza una
instrucción de vuelta (return). Las instrucciones push, pop y load stack pointer (introducir, sacar y
cargar puntero de pila) también se utilizan normalmente en las subrutinas.
Un diagrama de flujo funcional para un problema ejemplo se muestra en la Figura 6.52a. La
tarea del microprocesador es introducir dos muestras en forma de números binarios, sumarlas y
guardar la suma. Los tres primeros rectángulos en la parte superior del diagrama de flujo sugieren
este procedimiento; a continuación, la suma es multiplicada por un número denominado factor
de escalamiento, el resultado de la multiplicación, o producto, se almacena entonces. La suma
que se obtuvo en el tercer rectángulo se restaura ahora en el registro A de la MPU. Esta suma se
examina en el bloque de decisión, en forma de diamante. Si la suma es igual o mayor que IOH
(16 10), el programa sale al modo de alarma. Si la suma es menor que IOH, el programa vuelve al
ciclo y entran nuevas muestras. Este tipo de programa se puede utilizar en instrumentación
industrial donde ocurre lo siguiente:
www.FreeLibros.me
Si
11
i
1
.tI
.~
(al Diagrama de lIIIjo I
de
I_r~
~
~
..
..•
..
······:!I:
l~i
:::,1.
1
1
1".
ti'
1
.11 '1
..
:·'•.I::¡
::~
:,:·:·:1
;1
ji:
PROGRAMACION DEL MICROPROCESADOR
:ión JNZ hará
:n el ciclo a la
acá
que la MPU
Ejemplo de entrada:
carga el primer
numero en A
repetidamente
1 instante ade­
Ejemplo de entrada:
suma el primer
numero con el
segundo
: repetidamente
~nos programas
zación y por
Guarda la suma
del primer numero
con el segundo.
'en memoria»
el símbolo de
Introduce A
Y señalizadores
en la pila
Multiplica la
suma por el
factor de escala
1) en memoria»
ma de diaman­
la operación de
Llama la
subrutina de
m ultiplicacíón
suma x 2 ~ producto
Almacena
el producto
Almacena
la suma
la principal
tina se utiliza
Ilsferencia de
I de llamada
lo realiza una
~ir.
Extrae A
Yseñalizadores
en la pIla
Si
sacar y
JI'3 6.52a. La
L sumarlas y
lujo sugieren
!T1'Iado factor
La suma
:..1 suma se
,or que 10H
lIJa vuelve al
llmentación
I
Si
(a)
Diagrama de Rujo funcional para el problema
de instrumentación
(b)
Díagrnma de Rujo detallado para el problema de
instrumentación muestra-suma-multiplica-almacena­
y-realiza un nuevo ciclo
Figura 6.52.
www.FreeLibros.me
197
198
1.
2.
3.
F1JNDAMENTOS DE LOS MICROPROCESADORES
La suma de dos entradas debe ser vigilada continuamente.
La suma debe ser escalada al valor más apropiado y se almacena este valor.
La suma de dos entradas debe ser comprobada como mínimo cada segundo para determi­
nar si es peligrosamente grande, y si es así, el programa debe salir al modo de alarma.
El programa se diseña para que esté en un ciclo continuamente, tomando nuevas muestras cada
ciclo. Del ciclo se sale al modo de alarma sólo si existe algún problema. Un operador u otro
programa deberá entonces manipular el procedimiento de alarma simbolizado en la Figura 6.52a
por el símbolo conector circular.
Un diagrama de flujo detallado para el mismo problema se dibuja en la Figura 6.52b, donde
cada rectángulo es equivalente a una operación del microprocesador. Sin embargo, el bloque
sombreado representa un grupo de instrucciones denominado subrutina MULTIPL Y.
A partir del diagrama de flujo detallado de la Figura 6.52b, se escribe un programa en lenguaje
ensamblador. Cada bloque del diagrama de flujo corresponde a una sentencia del lenguaje en­
samblador. En la Figura 6.53 se da un listado en lenguaje ensamblador para el programa princi­
pal, donde se utilizan solamente operaciones del repertorio de instrucciones del microprocesador
genérico; el listado de la subrutina real para la operación de multiplicar no se incluye en la Figu­
ra 6.53.
Las tres primeras sentencias del lenguaje ensamblador de la Figura 6.53 inicializan el puntero
de pila a 20COH, el registro par HL a 2040H yel acumulador (A) a OOH. La cuarta sentencia
suma el contenido de A (actualmente OOH) al de la posición de memoria señalada por el regis­
tro HL (dirección 2040H). Acudir a la Figura 6.54, que muestra el programa principal, datos,
programa de subrutina y memoria de pila utilizada en este ejemplo. En esta figura se observa que
el contenido sumado a A desde la posición 2040H es 05H. Al final de la cuarta instrucción, el
contenido de A es 05H (00 + 05 = 05).
La quinta instrucción del programa principal de la Figura 6.53 incrementa el registro par HL,
la sexta instrucción suma la posición 2041 H de memoria de A; en la Figura 6.54 se determina que
la posición 2041H contiene 09H. mientras que A contiene 05H. La suma de A después de la
segunda instrucción ADD M es OEH. Esta es la suma de las dos muestras.
La siguiente instrucción del programa principal de la Figura 6.53 es la operación PUSH PSW,
que guarda el contenido del acumulador y señalizadores. Esto debe hacerse porque la siguiente
instrucción de llamada destruirá el contenido de estos registros cuando se ejecute la subrutina de
la multiplicación. La operación de llamada almacena la dirección de la siguiente instrucción del
programa principal (dirección 200EH en este ejemplo) en la pila y después salta a la dirección de
la primera instrucción de la subrutina (dirección 2050H). La llamada a la subrutina está esbozada
en la Figura 6.54. Considerar temporalmente la instrucción de llamada como una sencilla opera­
ción de multiplicar, que multiplica el contenido de A por 2; la subrutina de este ejemplo entonces
realiza esta multiplicación: OE x 02 = 1CH. y el producto en el acumulador después de la vuelta
de la subrutina es 1CH.
La siguiente instrucción del programa principal de la Figura 6.53 después de volver de la
subrutina, está en la dirección 200EH, es la instrucción INX H que incrementa el registro para
HL. El producto de la subrutina de multiplicación es ahora almacenado en la posición de memo­
ria 2042H por la instrucción MOV M,A.
Recordar que las instrucciones de introducir y sacar (push y pop) se utilizan en parejas. Antes,
en el programa principal el contenido del acumulador y de los señalizadores fue introducido en la
pila por la operación PUSH PSW Ahora estos contenidos son restaurados por la instrucción
POP PSW Es obvio que el contenido del acumulador ahora es igual a la suma (OEH en este
ejemplo) en vez de al producto. La suma se examina con la siguiente instrucción.
Etiqueta
N
START
n
PI.
NO
CPI
Je
HLT
Figura 8.53.
1
www.FreeLibros.me
11
l'
PROGRAMACION DEL MICROPROCESAOOR
rara determi­
le alarma.
lUestras cada
rador u otro
Figura 6.52a
U2b, donde
:0. el bloque
Y.
a en lenguaje
lenguaje en­
:rama princi­
roprocesador
e en la Figu­
m el puntero
na sentencia
por el regís­
lcipal, datos,
: observa que
IStrucción, el
istro par HL.
etermina que
lespués de la
Etiqueta
START
Nemotécnico
Operando
199
Comentarios
LXI
SP.2OCOH
; Carga puntero de pila con 20COH
LXI
H.2040H
; Carga registro HL con 2040H (HL utilizado corno puntero
de dirección en el programa principal)
2trl¡6= 5
XRA
A
; Pone el acumulador a OOH
ADD
M
; Suma (A) a la posición de memoria 2040H (el primer
número que será sumado está en 2040H)
INX
H
; Incrementa el registro HL a 2041 H
ADD
M
; Suma (A) a la posición de memoria 2041 H (el segundo
número que será sumado está en 204 I H)
-- 5
~
DJ.fI: q
::: E
PUSH
CALL
psw
; Introduce (A) y seftalizadores en la pila
MULTIPLY ; Llama a la subrutina de multiplicación a la posición de
memoria 2050H
INX
H
MOV
M.A
; Almacena el producto en la posición de memoria 2042H
POP
PSW
; Extrae de la pila y restaura (A) y seftalizadores
CPI
IOH
; Compara (A) con IOH [(A) -IOH, si (A) < IOH, entonces
CY - 1; de otra forma CY - O]
t
JC
START
\ol\'er de la
registro para
ÍIl de memo­
HLT
PUSH PSw,
e la siguiente
subrutina de
strucción del
dirección de
:stá esbozada
:ocilla opera­
po entonces
, de la vuelta
!rejas. Antes,
ducido en la
I instrucción
DEH en este
,
Figura 6.53.
; Incrementa el registro HL a 2042H
; Salta a la posición de START (dirección 2003H) si CY ~ 1;
de otra forma continúa con la siguiente instrucción
; Detiene la MPU
Versión en lenguaje ensamblador del programa principal de instrumentación.
www.FreeLibros.me
i2lMU:U¡:lua" .~¡
200
FUNDAMENTOS DE LOS MICROPROCESADORES
Memoria de programa principal
1 Dirección
.
I Memoria de programa I
para la sub~
I
I
(hex)
Contenido
(hex)
2000
31
2050
ES
2001
CO
2051
2E
2002
20
2052
02
2003
21
,
1'..
.~'I>
-
/r
""'"
2053
67
2054
AF
2055
84
2056
32
2004
40
2005
20
2006
AF
2007
86
2008
23
2009
86
200A
F5
205A
30
200B
CO
205B
6F
200C
50
205C
3A
2000
20
2050
20
~
~
§l
<.;
r-..
,'1>
'1>
.:;-
2057
"V""
"V
2058
2059
=
20
20
70
200E
23
205E
20
200F
77
205F
CA
2010
FI
2060
65
2011
FE
2061
20
v
ú~(
v~
0'(' I.l
¡¡~
i;. .
2062
C3
2063
55
03
2064
20
2015
20
2065
El
2016
76
2066
C9
2012
10
2013
OA
2014
G>i}~
¡¡
V--=--,
~-
~-.
Memona de datos
+-
2020
.~
Multiplicando
5
(a)
20BC
20BO
05
Primer número Que se va a sumar
2041
09
Segundo número Que se va a sumar
2042
Figura 6.54.
~
•
-
<-
ALMACENA el producto
Puntero de pila-+
20BE
20BF
2OCO
I-----lf-----I
Contenidos de memoria y posiciones de almacenamiento del problema
de instrumentación.
www.FreeLibros.me
\"
x
J
Mulupl¡
""':--
Utilizado como almacenamiento
temporal por la subrutina
2040
Es importanll
tratamiento, sin e
y posteriormente
se denomina pa$<
utilizarse cualqui
Las dos siguH
suma en el acum
OEH - lOH-FE
acumulador es m
«salta si arrastw.
llamada START
gura 6.54).
Pueden utiJi2l
zando sólo las op
do más sencillo l
plo, la solución
Figura 6.55b mue
el multiplicando
resultado de esta
na de multiplica.:
multiplicador es
ducto.
En la Figura •
ción. Cada bloq
programa de la 5
El primer bII
registro par H L
subrutinas intr()(
ser utilizados dw
supuesto, el 0011
operación de sac
Los tres sigw
contendrá el mu
,
PROGRAMAClON DEL MICROPROCESADOR
Es importante observar que la suma (OEH en este ejemplo) pasa a la subrutina para su
tratamiento, sin embargo, es el resultado de la operación de multiplicar lo que sale de la subrutina
y posteriormente se almacena. En la jerga de computadoras, el paso de datos a y desde subrutinas
se denomina paso de parámetros, En este caso se utilizó el registro A. sin embargo, también puede
utilizarse cualquier área de memoria.
Las dos siguientes instrucciones del programa principal de la Figura 6.53 son para probar la
suma en el acumulador. La instrucción «compara inmediato» realiza la resta interna en la CPU:
OEH - IOH = FEH, que es la representación en complemento a 2 de -210' El contenido del
acumulador es menor que 10H, así que el señalizador de arrastre (CY) se pone a l. La instrucción
«salta si arrastre» examina el señalizador CY. Al estar al, la MPU salta a una dirección simbólica
llamada START, donde comienza el ciclo con la instrucción LXI H (dirección 2003H de la Fi~
gura 6.54).
Pueden utilizarse diversos métodos para resolver el problema de multiplicación binaria utili­
zando sólo las operaciones del repertorio de instrucciones del microprocesador genérico. El mét~
do más sencillo utiliza la suma repetida para resolver un problema de multiplicación, por ejem~
plo, la solución del problema 5 x 3 = 15 10 se ilustra en la Figura 6.55a, sin embargo, la
Figura 6.55b muestra otro método para resolver el mismo problema: el de la suma repetida. Aquí
el multiplicando se suma repetidamente, el número de veces que indica el multiplicador, el
resultado de esta suma repetida es por tanto el producto. La multiplicación que realiza la subruti­
na de multiplicación está resumida en la Figura 6.55c. El multiplicando en el ejemplo es OEH y el
multiplicador es 02H. El multiplicando se suma dos veces, dando ICH, que se considera el pro­
ducto.
.....---­
>
[)
F
.,'"
10
:A
&5
Multiplicando Multiplicador Producto
Multiplicador - 3 Producto
S x 3 = 15 10
!O
20
El
C'9
:>roblema
OE+OE = JC l6
5 + 5 + 5 .. J5 10
O
,~
-
Multiplicador - 2 Producto
I
Multiplicando
'.
1
1
Multiplicando
"',"}
,,
(a)
Multiplicación decimal
(b)
Método de multiplicación
de sumas repetidas
fe)
Método de multiplicación
de sumas repetidas
Figura 6.55.
..
En la Figura 6.56 se muestra un diagrama de flujo detallado para la subrutina de la multiplica­
ción. Cada bloque del diagrama corresponde a una sentencia del lenguaje ensamblador en el
programa de la subrutina de la Figura 6.57.
El primer bloque del diagrama de flujo de la Figura 6.56 guarda el contenido actual del
registro par HL utilizando una operación de introducir (push). Es común en la mayoría de las
subrutinas introducir el contenido de los registros de la MPU en la pila debido a que éstos pueden
ser utilizados durante la ejecución de la subrutina y por tanto cambiar los valores que tenían. Por
supuesto, el contenido del registro par HL será restaurado al final de la subrutina con una
operación de sacar (pop) (ver la instrucción pop cercana al extremo inferior de este ejemplo).
Los tres siguientes bloques de la Figura 6.56 inicializan los registros L, H Y A. El registro L
contendrá el multiplicador (02H en este ejemplo), y será decrementado a OOH durante la rutina
www.FreeLibros.me
202
FUNDAMENTOS DE LOS MICROPROCESADORES
Entrada del programa principal
Etiqueta
Introduce el
registro HL
Nem
•.
en la pila
)j
(L) - Multiplicador
I
(Ii) - Multiplicando
~
I
X
LOOP
Q
lmacena
producto
parcial en (A)
A
S
..
D
~menta
el multiplicador en I
,..
Ciclo
U
Carga
el producto
pardal en A
n
JI
Eurae el
registro HL
de la pila
DONE
,.
R
Al programa principal
Figura 6.56.
Diagrama de flujo detallado de la subrutina de multiplicación utilizada
en el problema de instrumentación.
www.FreeLibros.me
nUiJIIIIIU¡;¡t:UJ . . .
-'
FiguraS."
PROORAMACION DEL MICROPROCESADOR
Etiqueta
LOOP
Nemotécnico
Operando
PUSH
H
Comentarios
; Introduce los registros (H) y (L) en la pila para guardar el
contenido del registro HL
MVI
L,02H
MOV
H,A
XRA
A
; Pone A a cero
ADD
H
; Suma (H) + (A); almacena la suma en A
STA
2020H
MOV
A.L
DCR
A
MOV
L,A
LDA
2020H
; Carga el contenido de la posición de memoria 2020H en A
(restaura el contenido de A de la memoria temporal 2020H)
JZ
DONE
; Salta a la posición DONE (dirección 2065H) si Z", l o si
(L) es decrementado a OOH; de otra forma, continúa con la
siguiente instrucción
; Carga el registro L con 02H (este es el factor de escala); 02H
es el multiplicador
; Transfiere (A) -+ (H); contenido de H
guarda la suma en H
= multiplicando;
; Almacena (A) en la posición de memoria 2020H (2020H se
utiliza como almacenamiento temporal)
; Transfiere (L) a A
; Decrementa el registro A
; Transfiere (A) a L
.
DONE
JMP
LOOP
POP
H
RET
Figura 6,57.
lizada
203
; Salta siempre a la posición LOOP (dirección 2055H)
; Extrae de la pila y restaura el contenido del registro HL
; Vuelve de la subrutina
Versión en lenguaje ensamblador de la subrutina de multiplicación utilizada
en el problema de instrumentación.
www.FreeLibros.me
204
FUNDAMENTOS DE LOS MICROPROCESADORES
de multiplicación. El registro H contendrá el multiplicando (OEH en este ejemplo). Esta fue la
suma pasada a la subrutina desde el programa principal, en el acumulador, y después transferida
al registro H. El acumulador (A) entonces se pone a OOH.
El quinto bloque de la Figura 6.56 representa la suma del multiplicando (OEH en este ejem­
plo) con A. El producto parcial de OEH se almacena entonces temporalmente en la posición de
memoria 2020H, mientras que el acumulador se utiliza para decrementar el contenido del regis­
tro L. Después de que el multiplicador es decrementado de 02H a 01 H, éste se vuelve a colocar en
el registro L. A continuación el producto parcial se restaura en el acumulador.
El símbolo de decisión de la Figura 6.56 hace la pregunta: ¿Es (L) = DO? Si la respuesta es no,
el programa vuelve a saltar al ciclo. Sin embargo, si la respuesta a la pregunta es sí, el programa
bifurca a la derecha y el contenido del registro par HL es restaurado por la operación de sacar.
Finalmente, la operación de vuelta bifurca de nuevo al programa principal. De acuerdo con el
diagrama de la Figura 6.54, la vuelta de la subrutiQa se hace a la dirección 200EH del programa
principal. Como el multiplicador en este ejemplo es 02H, el programa pasará dos veces a través de
la secuencia suma-almacena-transfiere-decrementa-transfiere-carga y después sale al programa
principal. Observar que el producto final 1CH pasará al programa principal al estar en tI acumu­
lador.
Un listado en lenguaje ensamblador para la subrutina de multiplicación se detalla en la
Figura 6.57. Cada sentencia del lenguaje ensamblador corresponde a un bloque del diagrama de
flujo detallado de la Figura 6.56. Intentar seguir el flujo del programa de la Figura 6.57, acudien- ~.•
do al diagrama de flujo como ayuda.
En resumen, cuando se utilizan instrucciones de llamada y vuelta, asegurarse que estén empa­
rejadas. Observar también que los registros adecuados están inicializados y utilizar las instruccio­
nes de introducir y sacar a pares. Tener en cuenta el número de parámetros (datos) que son
pasados a y desde la subrutina.
;;
Las subrutinas son muy utilizadas por los programadores. Las ventajas de utilizar subrutinas
son:
6.100. Acwl
posic
Soluci
lJ¡
gura 6
6.101.
Solud
EJI
6.102.
3.
4.
Añaden una estructura al programa que lo hace más fácil de comprender.
Hacen la depuración más fácil.
Abrevian el programa.
Permiten escribir grandes programas de una forma más fácil y eficiente.
Si el So
MPL"
SoJuci1i
Sic
busq~
6.103.
t
l.
2.
Elpn
el PUl
LaiDSl
contad
a __
SoJIIdiI
laiJ
sea intn
car se le
6.104.
Lainst
contad(
So'__
laÍII
dores de
6.105. Un siml
. sustitui<
La desventaja de utilizar subrutinas es que el programa se ejecutará generalmente de forma más
lenta cuando se llama a las subrutinas.
grama.
Solución:
L'n So;
sustituid.
ensambl.i
cero».
PROBLEMAS RESUELTOS
6.99.
El diagrama de flujo de la subrutina de la multiplicación de la Figura 6.56 utiliza el
método de _ _ (suma y desplaza, adición repetida) para calcular un producto.
, Ce{
6.106.
Solución:
El diagrama de flujo de la subrutina de la multiplicación de la Figura 6.56 utiliza el método de
la suma repetida para calcular un producto. El método de suma y desplazamiento es otro método
Solución:
En la
tro H mI(
más común de multiplicar que utiliza una serie de sumas y desplazamientos para calcular un pro­
ducto.
".Ia 41,'::;U.lIII'
www.FreeLibros.me
En la su
registro.
tro __
..
I
I;!
ii!'Ii
PROGRAMACION DEL MICROPROCESADOR
a fueta
nsferida
te ejem­
¡ción de
lel regis­
locar en
:a es no,
205
6.100. Acudir a la Figura 6.54. ¿Qué tipos de instrucciones del microprocesador utilizan la
posición de memoria llamada pila?
Solución:
Llamada, vuelta, introducir y sacar utilizan el área de memoria UFO llamada pila en la Fi­
gura 6.54.
6.101. El propósito de la instrucción LXI SP de la Figura 6.53 es _
el puntero de pila.
(inicializar, examinar)
Solución:
El propósito de la instrucción LXI SP en la Figura 6.53 es inicializar el puntero de pila.
rograma
le sacar.
o con el
rograma
ravésde
rograma
acumu­
6.102. Si el señalizador de arrastre se pone a l en la Figura 6.53, la operación «lC» hará que la
MPU busque la siguiente instrucción _ _ (HLT, LXI H).
la en la
rama de
lcudien­
6.103. La instrucción de llamada en la Figura 6.53 hace que el contenido del _ _ (registro A,
contador de programa) sea introducido en la pila y el contador de programa se ponga
a _ _ (dirección hex).
n empa­
nruccio­
que son
Solución:
La instrucción de llamada de la Figura 6.53 hace que el contenido del contador de programa
sea introducido en la pila y el contador de programa se ponga a 2050H. La subrutina de multipli­
car se localiza en la dirección 2050H como muestra la Figura 6.54 .
.brutinas
6.104. La instrucción POP PSW de la Figura 6.53 saca el contenido del _ _ (acumulador,
contador de programa) y de los señalizadores de la pila y los devuelve a la CPU.
Solución:
Si el señalizador de arrastre se ¡jOhe a 1 en la Figura 6.53, la operación dO> hará que la MPU
busque la siguiente instrucción LXI H en la dirección simbólica START.
Solución:
La instrucción POP PSW de la Figura 6.53 saca el contenido del acumulador y de los señaliza­
dores de la pila y los devuelve a la CPU. Ver la tabla de instrucciones misceláneas (Fig. 6.40).
!
; I
t
:\
i¡
mamás
6.105. Un símbolo de decisión en forma de diamante como el de la Figura 6.56 normalmente es
• sustituido por una instrucción de ___ (comparación, salto) cuando se escribe el pro­
grama.
Solución:
Un símbolo de decisión en forma de diamante como el de la Figura 6.56 normalmente es
sustituido por una instrucción de salto cuando se escribe el programa. El programa en lenguaje
ensamblador de la Figura 6.57 muestra que en este caso se utiliza la instrucción «le» o «salta si
cero».
Iiliza el
,.
ttodo de
,método
'un pro-
6.106. En la subrutina de multiplicación de la Figura 6.57, el valor del multiplicando está en el
registro _ _ (H, L) mientras que el valor del multiplicador está en el regís­
tro _ _ (H, L).
Solución:
En la subrutina de multiplicación de la Figura 6.57, el valor del multiplicando está en el regis­
tro H mientras que el del multiplicador está en el registro L.
www.FreeLibros.me
I
"¡
•
206
FUNDAMENTOS DE LOS MICROPROCESADORES
6.107.
En la subrutina de m ultiplicación, el contenido del registro _ _ (H, L) es decrementa­
do hasta OOH.
6.117. Elrq
Solución:
En la subrutina de multiplicación, el contenido del registro L es decrementado hasta OOH.
6.118.
6.108.
Acudir a las Figuras 6.53 y 6.57. Los registros H y L son utilizados co­
mo ______ (punteros de dirección, registros de datos) en el programa principal y
como ______ (punteros de dirección, registros de datos) en la subrutina.
Res.
Co.
los se
Res.
6.119. Dul"3.l
tro_
Solución:
Según la información de las Figuras 6.53 y 6.57. los registros H y L son utilizados como punte­
ros de dirección en el programa principal y como registros de datos en la subrutina de multiplica­
ción.
Res.
6.120. Acudi
rá_
Res.
*'!
.l
PROBLEMAS SUPLEMENTARIOS
'1
6.109. Un listado en lenguaje _ _ (ensamblador, máquina) se caracteriza por el uso de operandos,
códigos de op y direcciones de memoria hexadecimales.
Res. máquina.
6.110. Una sentencia de un programa en lenguaje ensamblador se divide en cuatro _ _ (campos, seg­
mentos) denominados etiqueta, nemotécnico, operando y comentario.
Res. campos.
6.111.
"
6.112.
Una versión en lenguaje ensamblador, a veces, se denomina programa _ _ (objeto, fuente).
Res. fuente.
BASIC es considerado un lenguaje de alto nivel porque cada sentencia del programa represen­
ta _ _ (menos, más) operaciones máquina del microprocesador que una sentencia en lenguaje
ensam blador.
Res. más.
6.1 13. Los señalizadores de la Figura 6.3 son parte del dispositivo de almacenamiento de la CPU denomi­
nado registro _ _ .
•
Res. de status.
6.114. Cuando los registros H y L se unen para formar el registro HL, habitualmente son utilizados para
señalar _ _ .
Res. direcciones.
I,
6.121. Despu.
mientr
Res.
6.122. Interru
do eL
Res.
!
6.123. Aleje(
reinicia
(mayor
Res.
6.124. Acudir
rá
Res.
1
AaI
6.115.
La pila en el sistema microprocesador genérico (o en un sistema 8080/8085) está localizada
en _ _ .
Res. la RAM.
~
.
6.116. El registro de 16 bits etiquetado SP en la Figura 6.3 es el _ _ _ .
Res. puntero de pila.
."
www.FreeLibros.me
'dial
"li
!;
PROORAMACION DEL MICROPROCESADOR
les decrementa­
6.117.
207
El registro de 16 bits etiquetac:fo PC en la Figura 6.3 es el _ _' _ _ .
Res. contador de programa.
lo hasta OOH.
utilizados co­
lma principal y
rutina.
~
dos como punte­
na de multiplica­
6.118. Como regla general, las operaciones aritméticas del microprocesador _ _ (afectan, no afectan) a
los señalizadores.
Res. afectan.
6.119. Durante la instrucción comparar de un microprocesador, solamente el contenido del regis­
tro _ _ (A. de status) es afectado por la operación.
Res. status (son afectados los señalizadores).
6.120. Acudir a la Figura 6.58. El contenido del acumulador después de la operación ADD L se­
rá _ _ (8 bits).
Res. 0000000 l.
o
Acumulador
Acumulador
ro de operandos,
Registro de status
Registro L
Figura 6.58.
;eto. fuente).
6.121. Después de la operación ADD L de la Figura 6.58 el señalizador de arrastre estará a _ _ (O, 1)
mientras que el señalizador de cero es igual a _ _ (O, 1).
Res. 1, Z=O.
trnma represen­
lIcia en lenguaje
6.122. Internamente el microprocesador no tiene hardware para restar; por tanto realiza restas convirtien­
do el _ _ (minuendo, sustraendo) a su forma en complemento a 2 y sumando.
Res. sustraendo.
t
la CPU denomi­
1
utilizados para
6.123. Al ejecutar una instrucción de resta de la tabla de la Figura 6.4, un señaJizador de arrastre en
reinicialización (CY O) significa _ _ (préstamo, no préstamo) o que el minuendo es _ _
(mayor, menor) que el sustraendo.
Res. no préstamo, mayor.
6.124. Acudir a la Figura 6.59. El contenido del acumulador después de la operación SUB H se­
rá _ _ (8 bits), que es la representación en complemento a 2 de _ _ (decimal).
Res. 11111110, -210'
Acumulador
está localizada
100000001
I
Acumulador
Antes de la operación
Registro H
Registro de status
Cy
z
Figura 6.59.
www.FreeLibros.me
i:
~
•
-,
'i!
208
FUNDAMENTOS DE LOS MICROPROCESADORES
6.125. Después de la operación SUB H de la Figura 6.59, el sefializador de arrastre (<<préstamo») estará
a _ _ (O, 1) mientras que el señalizador de cero será igual a _ _ (O, 1).
Res. 1, Z = O.
6.126. Como regla general, los sefializadores del registro de status _ _ (son, no son) afectados por las
instrucciones lógicas del microprocesador.
Res. son.
6.127.
El símbolo ( . ) utilizado en la tabla de instrucciones lógicas de la Figura 6.14 denota la operación
_ _ (ANO, multiplicación).
Res. ANO.
6.128. Acudir a la Figura 6.14. Si el acumulador de la MPU - 1110III O y el sefializador de arrastre - O,
¿cuáles son los c~ntenidos del acumulador y sefializador de arrastre después de una instrucción
«RAR»?
Res. acumulador = O1110 111, sefializador de arrastre - O.
6.133.
El conteníd
Res. 1010
6.134. La fuentecl
Res. 2 lOA
6.135. Acudir a la
to _ _ ld
Res. direc1
6.136. Las instrua:
Res. bifun
6.137. Se dice que
de decisión.
Res. coodI
6.129. Casi todas las instrucciones de transferencia de datos _ _ (afectan, no afectan) a los sefializadores
del registro de status del microprocesador.
Res. no afectan.
6.138. Las operaa.
pila).
Res. ~
6.130. Acudir a la Figura 6.21. Cuando se utiliza una instrucción «MOV L,A», el registro _ _ (A. L) es
la fuente del dato, mientras que el registro _ _ (A. L) es el destino.
Res. A. L.
6.139. Acudir a la
(hex).
Res. CAH
6.131. Acudir a la Figura 6.21. Las instrucciones IN y OUT utilizan direccionamiento _ _ (directo, in­
herente).
Res. directo.
6.132. Acudir a la Figura 6.21. La instrucción «LOA» utilizada en la Figura 6.60 tiene un código de op
de _ _ (hex) y utiliza una instrucción de _ _ (número) bytes.
Res. 3AH,3.
. l
,.~J
Memoria de
p~
4
Aans."
Acumulador
Contador de
Antes de la operación
~
Después de la operación
Registro de __
Memoria de datos
(LOC)
Código de
operación Dirección
\
3AH
2010
OAH
2011
21H
2012
6.140.
El contenidr
Res. 20031
Memoria de programa
6.141. La instJuccí
unainstruo
Figura 6.60.
www.FreeLibros.me
Res.
"auu
PROORAMACION DEL MICROPROCESADOR
6.133.
209
El contenido del acumulador después de la operación de carga de la Figura 6.60 es _ _ (8 bits).
101OIOIO.
Res.
6.134. La fuente del dato de la Figura 6.60 era la posición _ _ (hex) de la memoria de datos.
Res. 2IOAH.
i
6.135. Acudir a la Figura 6.21. La operación de carga mostrada en la Figura 6.60 utiliza direccionamien­
to _ _ (directo, inmediato).
Res. directo.
¡
Las instrucciones de salto también se denominan de transferencia de controlo de _ _ .
Ir
6.136.
Res. bifurcación.
! .
UI'aSIR = 1)
ínstru~.
.
6.137. Se dice que las operaciones de salto _ _ (condicional, incondicional) son instrucciones de toma
de decisión.
Res. condiciona!.
ñalízadon:s
6.138.
_ c·t L)cs
6.139. Acudir a la Figura 6.30. El código de op para la instrucción JZ usada en la Figura 6.61 es _ _
(hex).
Res. CAH.
Las operaciones de salto afectan al contenido del _ _ _ _ (contador de programa, puntero de
pila).
Res. contador de programa.
1:
I!
I: ;.
I
l'
directo. ¡.
Código de
Dirección operación
t
digo de op
Memoria de programa
2000
?
2001
00000000
2002
0000 0000
Des.,..
Antes de la operación
1-­ _ _ _
? _ _ _...1
Contador de programa
Registro de status
de la opend6n
Contador de programa
I O t--j O I
Cy
z
Figura 6.61.
6.140. El contenido del contador de programa después de la operación en la Figura 6.61 será _ _ (hex).
Res. 2003H (igual que antes de la operación porque no se realiza ningún salto).
6.141.
-
La instrucción _ _ (de llamada, de retomo) del microprocesador genérico realiza la función de
una instrucción de introducir y saltar (push y jump).
Res. llamar.
www.FreeLibros.me
li,,::;; ¡¡; l'
i~
210
FUNDAMENTOS DE LOS MICROPROCESADORES
6.142. La operación de _ _ (llamar, vuelta) es la última instrucción de una subrutina.
Res. vuelta.
,
6.143. Acudir a la Figura 6.62. El contenido de la posición de la pila 2109H después de la operación de
llamada será _ _ (8 bits).
Res. 00 l 00000 (20H).
6.149. E1pr
mae
Res.
6.ISO. E1J)11
el ma
Res.
Pila
Pila
2107
Puntero
de pila
2107
2108
?
2108
2109
?
2109
' - - - - - - '~'2[OA
,
210AH
I
H
-+--i 2108H I
I
L
6.151. DesPl
jar_
Res.
6.152. LasOj
sones
.210A.
Contador de programa 00 10 0000 0000 0111
Res.
I
6.153. Acudir
utiliza
Antes de la operación
Res.
Después de la operación
2004
Memoria de programa
Puntero
de pila
~-----"---....j
2005
1----+----1
2006
Contador de programa
Figura 6.62.
6.154. Acudir
bytes q
Res.
6.155. Acudir
utiliza e
Res.
3
6.156.
6.144. Acudir a la Figura 6.62. El contenido de la posición 2108H de la pila después de la operación de
llamar será _ _ (8 bits).
Res. 00000 111 (07H).
6.145. Acudir a la Figura 6.62. El contenido del contador de programa después de la operación de llamada
será _ _ (hex).
Res. 30FOH (00110000 1111 0000 en binario).
6.146. Acudir a la Figura 6.62. El contenido del contador de programa después dé la operación de llamar
(call) apunta a la primera instrucción de la _ _ (pila, subrutina).
Res. subrutina.
en un d
So
Res
6.157. Se utim
represen
Res. di
6.158. Muchas
antes de!'
Res.
C(
6.159. Acudir a
6.147. Acudir a la Figura 6.40. Si la instrucción «PUSH PSW» se hubiese utilizado como primera instruc­
ción de la subrutina, la instrucción _ _ (nemotécnico) se utilizaría al final, justo antes de la
vuelta.
Res. POPPSW
Res. IX
6.160. La téctü
por el m
Res.
6.148. Cuando el microprocesador genérico haya sido colocado en el modo de alto por la instrucción
«HLT», solamente una petición de interrupción o una entrada de _ _ (reloj, reinicialización) a
la MPU puede reinicializar la unidad.
Res. reinicialización.
Ci.
6.161. Acudir 2
o __
Res. F1
¡
~
..
a...
1 ;:_1:
111
....
www.FreeLibros.me
PROGRAMACION DEL MICROPROCESADOR
6.149.
211
El primer paso al escribir un programa es _ _ (definir el problema. escribir la versión del progra­
ma en lenguaje ensamblador).
Res. definir el problema.
peración de
6.150. El programador de un sistema microprocesador debe familiarizarse con la arquitectura del sistema,
el mapa de memoria, los registros de la CPU y el _ _ _ _ del microprocesador.
Res. repertorio de instrucciones.
6.151.
lIIerO
. pila
08H
i
Después de definir y analizar el problema, el siguiente paso en programación es para dibu­
jar _ _ (la documentación, el diagrama de flujo) que muestra la solución del problema.
Res. diagrama de flujo.
6.152. Las operaciones del microprocesador genérico que utilizan modo de direccionamiento inmediato
son especificadas por instrucciones de _ _ (número) bytes.
Res. 2 ó 3.
6.153. Acudir a la Figura 6.40. La operación «PUSH H» es una instrucción de _ _ (número) bytes que
utiliza el modo de direccionamiento _ _ .
Res. 1, registro indirecto.
!le programa
6.154. Acudir a la Figura 6.4. La operación «compara A con ü> es una instrucción de _ _ (número)
bytes que usa el modo de direccionamiento _ _ .
Res. 1, registro.
6.155. Acudir a la Figura 6.21. La operación «LDA» es una instrucción de _ _ (número) bytes que
utiliza el modo de direccionamiento _ _ .
Res. 3, directo.
ción de
_ _ (Se hace una pregunta, Se hace una sentencia de hecho) dentro de un símbolo de decisión
en un diagrama de flujo de programación.
Res. Se hace una pregunta.
de llamada
6.157. Se utiliza una instrucción _ _ (de bifurcación condicional, lógica) para realizar la operación
representada por el símbolo de decisión de un diagrama de flujo.
Res. de bifurcación condicional.
6.156.
6.158.
• de llamar
lira instruc­
Muchas veces instrucciones de _ _ (comparación, carga) son utilizadas en un programa justo
antes de una operación de bifurcación condicional.
•
Res. comparación.
6.159. Acudir a la Figura 6.51b. ¿Cuál es el propósito de la operación «XRA A» en este programa?
Res. poner el acumulador a OOH, inicializando así el registro A.
mtes de la
l
~'"
6.160. La técnica de utilizar _ _ en un programa se utiliza cuando deben realizarse tareas repetitivas
por el microprocesador.
Res. ciclos.
mstrucción
Mción) a
6.161.
(e'..
-
Acudir a la Figura 6.50. La saJida del númeró más alto en este programa será el _ _ (hex)
o _ _ (decimal).
Res. FEH, 254 10,
www.FreeLibros.me
«
212
FUNDAMENTOS DE LOS MICROPROCESADORES
6.162. Las subrutinas del microprocesador, utilizadas normalmente, son almacenadas a veces. permanen­
temente, en _ _ (RAM, ROM).
Res. ROM.
6.163. La instrucción «.le» examina el seftalizador _ _ (CY. Z) en el microprocesador genérico.
Res. CY (señalizador de arrastre).
6.164.
Las instrucciones de introducir (push) y _ _ (sumar, sacar) deben ser utilizadas en parejas.
Res. pop (sacar).
6.165. Las instrucciones de llamar y _ _ (brincar, de vuelta) deben ser utilizadas en parejas.
Res. de vuelta.
7.1. INTR4
La mayoría d
contienen uru
directamente:
La interconex.
interfaz es uru
ciones relativa
a veces, el ajo:
Considerar
interfaz, o enI
serán examina
RAM así corn
información Il
ra 7.1, que 105
todas las part~
a y desde la ~I
Generalme
ponden a una
1. Lectun
2. Escrítw
3. Lectura
4. EscritUJ
5. Maní",
Cuando se dio
con la MPe. D
mente, el micr
liberan las M PI
puede acceder I
denomina acce
El diagram.;
entrada y adap
cierto dependie
www.FreeLibros.me
Capítulo 7
INTERFACES
CON EL MICROPROCESADOR
7.1. INTRODUCCION
La mayoría de los microprocesadores tienen poco valor funcional por sí 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. Generalmente, una
interfaz es una frontera entre dos o más dispositivos que comparten información; otras considera­
ciones relativas a las interfaces incluyen la sincronización, dirección de la transmisión de datos y,
a veces, el ajuste de niveles o modos de sefial.
Considerar el sistema simplificado basado en microprocesador esbozado en la Figura 7.1. La
interfaz, o enlace, entre cada uno de los dispositivos mostrados y la unidad microprocesadora
serán examinados. Por tanto, en este capítulo se cubrirá la interfaz de la MPU con la ROM y la
RAM así como las interfaces entre la MPU y los dispositivos de entrada/salida (E/S). Se dará
información poco detallada sobre dispositivos periféricos específicos. Es obvio, según la Figu­
ra 7.1, que los buses de direcciones, datos y control juegan un papel importante para enlazar
todas las partes del sistema. Las interfaces se encargan de la sincronización y transmisión de datos
a y desde la MPU, y por tanto debe estudiarse el software como el hardware.
Generalmente, las transferencias de entrada y salida de datos de la MPU a los buses corres­
ponden a una de estas actividades:
l. Lectura de memoria.
2. Escritura en memoria.
3. Lectura de E/S.
4. Escritura en E/S.
S. Manipulación de interrupciones o reinicialización.
Cuando se dice que el dato es introducido desde otro dispositivo, significa entrada en relación
con la MPU. De igual forma, una salida será una salida de la unidad microprocesadora. General­
mente, el microprocesador es el foco de todas las operaciones. Sin embargo, algunos controles
liberan las MPU de los buses de dirección y datos durante el tiempo que un dispositivo periférico
puede acceder directamente a la memoria principal del sistema sin ir a través de la MPU. Esto se
denomina acceso directo de memoria (DMA).
El diagrama de la Figura 7.1 sugiere que la MPU, ROM, RAM, adaptador de interfaces de
entrada y adaptador de interfaces de salida son dispositivos separados. Esto puede ser o no ser
cierto dependiendo del sistema específico. Es bastante común para los fabricantes producir adap­
213
www.FreeLibros.me
.
n
214
FUNDAMENTOS DE LOS MICROPROCESADORES
I
l""""-
Bus de direcciones
(16 líneas)
-­
Dispositivo periférico
.
""'
c'."·
\
--+- j
v..
I
controladon
de disquete~
pantalla/tec
jJJ
Adaptador
de la interfaz
de entrada
7.2.
~
INTi
Considerar 1
de sólo lecn
tadas en la
(~07)del
MPU
-4--
(U1:;,) de la J
~.,
Los 12 b
4K x 8. El d
f-t--
t
Bus de control
palabras de
de dirección
cador de dÍ!
Itt.
1'1""",
ROM
---4Il1o-
----- Vj
--.....
\j
---Il00.
\
J
l'
Adaptador
de la interfaz
de salida
POD4
POD4
pasti
DIi
ca
""IIf--
.lJJ.
I Dispositivo periférico I
Figura 7.1 .
Iníci
Suponer QU
Los 12 bits
----
RAM
.
ti:
Bus de datos
(8 líneas)
l.
2.
3.
diA
..
Diagrama de bloques de un sistema basado en microprocesador.
tadores de interfaces para periféricos, compatibles con sus unidades microprocesadoras. Estos
adaptadores, habitualmente, son de propósito general ya que normalmente pueden ser programa·
dos para que funcionen bien como interfaz de entrada o de salida. Algunos fabricantes integran
RAM y puertas de E/S o ROM y puertas de E/S en el mismo CI para disminuir el número de
componentes del sistema. Los fabricantes también producen componentes especializados de in·
terfaz en forma de CI, entre los que se incluyen interfaces de comunicación programables,
www.FreeLibros.me
INTERFACES CON EL MICROPROCESADOR
215
controladores DMA programables, controladores de intenupciones programables, controladores
de disquetes, controladores de enlace de datos síncronos, controladores CRT y controladores de
pantalla/teclado.
7.2. INTERFAZ CON LA ROM
Considerar la interfaz del microprocesador con una memoria de sólo lectura (ROM) o memoria
de sólo lectura programable (PROM). La MPU y sección de ROM de un sistema están represen­
tadas en la Figura 7.2. Las 8 líneas del bus de datos están conectadas a los terminales de salida
(~07) de la ROM, la salida de lectura (RD) va de la MPU a la entrada de habilitación de salida
(VE) de la ROM.
.
Los 12 bits menos significativos del bus de direcciones (Ao-A II >están conectados a la ROM de
4K x 8. El decodificador permanente del CI ROM puede acceder cualquiera de 4096 (2 12 4096)
palabras de memoria de sólo lectura de 8 bits utilizando las 12 entradas de dirección. Las 4 líneas
de dirección más significativas (A I2 -A ls ) van a un elemento combinacional denominado decodifi­
cador de direcciones. Para acceder y leer datos de la ROM, la MPU debe:
1,
2.
3.
Inicializar las direcciones en las líneas de dirección Ao a A 11'
Poner DE en BAJA utilizando la línea de control de lectura.
Poner
en BAJA utilizando el decodificador de direcciones y la línea de selección de
pastilla.
es
Suponer que la MPU quiere acceder a la posición de memoria OOOOH (0000 0000 0000 00002),
Los 12 bits menos significativos se aplican directamente a la circuitería de decodificación de la
Bus de direcciones
r-­
\
....­
Decodifi· A I2 -A IS
cador de
direcciones '\
(4)
115
(j7
MPU
Ao
;-­
~
Ao-A II
---410­
,-.....
Línea de selección de pastilla
Figura-7.2.
°0
-RD
.
---
Línea de control
de lectura
Bus de datos
OE
Ao
(12)
AI ¡
-
es
ROM de
4Kx8
(jo
(SL""..........
°7
Interfaz de la ROM con el microprocesador.
www.FreeLibros.me
...
I
I
216
FUNDAMENTOS DE LOS MICROPROCESADORES
0000
ROM de
4096 palabras x 8 bits
OFFF
1000
lFFF
-2000------------­
2FFF
-----------------3000
3FFF
-----------------4000
4FFF
ROM, vía la
parte de la
A15 =
00001,
entrada de s
El mapa
por el decod
te 65.536) Jl
decodificadc
segmentos tl
accedería al
decodificadc
memoria 10
un segmente
específica di:
Cuando
direccionam
5000
5FFF
6000
6FFF
-----------------7000
7FFF
-----------------8000
.
8FFF
-----------------9000
9FFF
-----------------Aooo
Figura 7.4 n
8 bits de la
(Ao-A 1S ) caI1
las líneas de
son decodifi
na (C'S) de 1
ción de salítl
por la MPl
líneas de díl
sido activad
tiempo de al
do y se defi'
localicen el
Observa!
AFFF
----------------Booo
BFFF
-----------------CooO
1
1.
CFFF
-------~---------
DOoo
1
DFFF
----------------EOoo
EFFF
FOOO
.. " J
FFFF
Figura 7.3.
Mapa de memoria.
www.FreeLibros.me
-
Figura 7.~
J
te
e
re
.$
U=QL$J$ ¡; Jl;I§!,
INTERFACES CON EL MICROPROCESADOR
217
1I1
ROM, vía las líneas de dirección Ao a AII' Los 4 bits más significativos (A I2 -A 1s ) también forman
parte de la dirección, y son decodificados por un decodificador de direcciones. Si A I2 a
AI5 = 0000 , entonces el decodificador de direcciones producirá un nivel BAJO que habilitará la
2
entrada de selección de pastilla (L'S) de la ROM de la Figura 7.2.
El mapa de memoria dibujado en la Figura 7.3 puede ayudar a explicar el trabajo realizado
por el decodificador de direcciones. El mapa de memoria simboliza una unidad de 64K (realmen­
te 65.536) posiciones de memoria y, está dividido en dieciséis segmentos de 4K. La tarea del
decodificador de direcciones es ayudar a la MPU para que cada vez acceda solamente uno de los
segmentos de 4K. Si las 4 entradas al decodificador de direcciones fuesen 0000, entonces se
accedería al segmento O (posiciones de memoria OOOO-OFFFH). Sin embargo, si las entradas al
decodificador de direcciones fuesen 000 1, entonces se accedería al segmento 1 (posiciones de
memoria 1000-1 FFFH), etc. En resumen, las 4 líneas de dirección más significativas seleccionan
un segmento de memoria mientras que los 12 bits menos significativos determinan la posición
específica de memoria en ese segmento de 4K.
Cuando se hace la interfaz de la MPU con la ROM, las consideraciones importantes son
direccionamiento y temporización. El direccionamiento se ha explicado ya. El diagrama de la
Figura 7.4 muestra las señales de la MPU que afectan la lectura de una palabra de memoria de
8 bits de la ROM. La línea superior del diagrama de tiempos muestra las líneas de dirección
(Ao-A ,s ) cambiando a sus respectivos niveles lógicos. De acuerdo con el circuito de la Figura 7.2,
las líneas de dirección Ao a A 11 activan las entradas de dirección de la ROM mientras que A 12-A lS
son decodificadas por el decodificador de direcciones, activando la entrada de selección de pasti­
lla (C"S) de la ROM. Poco tiempo después la salida de lectura (RD) de la MPU activa la habilita­
ción de salida de la ROM, y el dato almacenado es colocado en el bus de datos y recogido del bus
por la MPU. En la Figura 7.4 se muestra una limitación de tiempos críticos. Una vez que las
de la ROM ha
líneas de dirección han establecido sus respectivos niveles lógicos y la entrada
sido activada, se tarda cierto tiempo en acceder a la palabra de memoria. Este se denomina
tiempo de acceso de lectura y es característico de la ROM o PROM particular que se esté utilizan­
do y se define como el tiempo que se necesita para que los decodificadores internos de la ROM
localicen el byte correcto en memoria.
Observar el uso de pequeños círculos y flechas en la Figura 7.4. Estos indicadores se utilizan
, I!II
h, l~
.
-es
; i $O
WSOR S
Señales de
laMPU
Líneas de dirección (A o - A 1s )
Lectura de memoria·
1
===::x___________....:-..><==
,
,
'r* ¡I ~•
, -~i l'
',' .
1,
!
1M'
~
Salida de lectura (RD) _ _-+__.....
In
Entrada de datos (Do - D7 )
-
-
TiemPOde~
acceso de
lectura
Figura 7.4.
Diagrama de tiempos. Ser'lales de la MPU durante la operación de lectura de la ROM.
'11"1
!1,'"¡
',J..
I"!!
; 1"
www.FreeLibros.me
¡
," '
j,,:
'.
I1
I
218
FUNDAMENTOS DE LOS MICROPROCESADORES
para simbolizar una relación causa-efecto importante en el diagrama de tiempos. A título de
ejemplo, en la Figura 7.4 la transición H a L (ALTA a BAJA) de la salida de lectura hace que las
patillas del bus de datos de la MPU conmuten de su condición de tres estados para aceptar como
entrada el dato del bus de datos. Los trazos de las líneas de entrada de datos significan condición
de tres estados o de alta impedancia. De nuevo, en la transición La H de la salida RD las patillas
del bus de datos de la MPU vuelven a conmutar a su condición de tres estados y dejan de aceptar
datos del bus de datos. El diagrama de tiempos de la Figura 7.4 solamente muestra sefiales de la
MPU y no las entradas y salidas de la ROM.
PROBLEMAS RESUELTOS
7.1.
Una ROM de 4K necesita ___ (números) entradas de dirección para decodificar las
4096 posiciones separadas de memoria.
Solución:
De acuerdo con la Figura 7.2, una ROM de 4K necesitará 12 entradas de dirección para decodifi­
car y acceder a las 4096 posiciones separadas de memoria.
LacaJ
direcc
de
Solucil
La
accedic
Los dispositi,
RAM se das
más fáciles d4
Considera
la RAM está
4096 pa.labnl
muchos CI (
Acudir a la Figura 7.2. Las 4 líneas de dirección más significativas son decodificadas por el
decodi.ficador de _ _ (direcciones, la ROM).
Solución:
Las 4 líneas de dirección más significativas (A I2 -A I5 ) son decodificadas por el decodificador de
direcciones.
7.4.
7.7.
7.3. INfE
La unidad de memoria de la Figura 7.2 se denomina ROM de 4K x 8 bits, lo que significa que
puede almacenar 4K (ó 4096) palabras, cada una de 8 bits.
7.3.
De
habilit
bus de
La memoria de sólo lectura de la Figura 7.2 puede almacenar _ _ (número) palabras,
cada una de ___ (número) bits.
Solución:
7.2.
~
SoluciC
Decodi
cador (
direro~
¿Qué segmento del mapa de memoria de la Figura 7.3 seleccionará el decodificador de
direcciones si la MPU pone en el bus de direcciones 00 I O0000 0000. 1111 2?
Solución:
Los 4 bits más significativos (0010 en este ejemplo) son decodificados por el decodificador de
direcciones y determina, en este caso, que se accederá al segmento 2. El segmento 2 de la Figura 7.3
incluye 4096 posiciones de memoria numeradas desde 2000 hasta 2FFFH,
7.5.
Acudir a la Figura 7.4. Durante una operación de lectura de memoria, la(s) ú!tima(s)
salida(s) activada(s) de la MPU era(n) la(s) línea(s) _ _ (A o-A I5 , RD).
Solución:
Según la información de la Figura 7.4, la última salida activada de la MPU fue la línea RD.
,
7.6.
Cuando la salida 1U5 de la MPU alcanza el nivel BAJO, habilita la entrada _ _ (<:'S.
lJE) de la ROM, lo que hace que las patillas del bus de datos de la MPU _ _ (acepten
datos del bus de datos, vayan a la condición de tres estados).
www.FreeLibros.me
,l
Linea dese
INTERFACES CON EL MICROPROCESADOR
•
o de
le las
omo
ición
tíllas
~ptar
219
Solución:
De acuerdo con la Figura 7.2 y 7.4, cuando la salida RD de la MPU alcanza el nivel BAJO,
habilita la entrada OE de la ROM para que las patillas del bus de datos de la MPU acepten datos del
bus de datos.
7.7.
de la
La característica de la ROM relacionada con el tiempo que tarda en ser decodificada una
dirección y accedida a una posición específica de memoria se denomina tiempo
de _ _ _ _ .
Solución:
La característica de la ROM que trata del tiempo que tarda en ser decodificada una dirección y
accedida una posición específica de memoria se denomina tiempo de acceso de lectura.
bras,
7.3. INTERFAZ CON LA RAM
l
que
.. las
•
Ddífi­
Los dispositivos de almacenamiento de lectura/escritura habitualmente se denominan RAM. Las
RAM se clasifican en dinámicas y estáticas. Esta sección tratará de las RAM estáticas, que son
más fáciles de conectar mediante interfaces que las de tipo dinámico .
Considerar la MPU y la sección RAM del sistema representado en la Figura 7.5. Observar que
la RAM está organizada como una unidad de 4K (realmente 4096 palabras) x 8 bits, es decir
4096 palabras, de 8 bits cada una. Es común que esta gran unidad RAM estática esté formada por
muchos CI de RAM. U no de estos módulos de la memoria de 4K x 8 bits contiene 32 CI de
~
orel
tJlrde
Bus de direcciones
ro­
Decodifi­
cador de
direcciones
\
A 12 -A I5
.......-­
I!,
1/5
...-.:-...
MPU
Do
,10
WR
... de
r.. de
Ao-A"
• "'.3
Línea
de control
de
escritu\
ro--­ RD
+-
.
Línea
de control de lectura
f-­
...... OE
13(5)
.........
R/W
Ao
(121' :
Al/
Línea de selección de disPositivo
n.
Módulo
RAM de
4Kx8
1/'10
~;~-
l/O,
Selección ­
de módulo (MSj
:nen
Figura 7.5.
Interfaz de la RAM con el microprocesador.
www.FreeLibros.me
li
Bus
de datos
,.
1
.
220
FUNDAMENTOS DE LOS MICROPROCESADORES
RAM estática de 1024 x l bits. El módulo de memoria o tarjeta de memoria contiene también
unos 10 CI extra para puertas y buffers. Esta unidad de memoria RAM de 4K x 8 bits represen­
tada como un bloque en la Figura 7.5 es por sí misma un sistema complejo.
El mapa de memoria del sistema basado en microprocesador se muestra, de nuevo, en la
Figura 7.6. La memoria RAM de 4K se ha añadido. arbitrariamente, en el tercer segmento
(llamado segmento 2). Igual que con la ROM, el decodificador de direcciones de la Figura 7.5
generará una señal para habilitar a la línea de selección de dispositivo. El decodificador de direc­
ciones enviará un pulso BAJO a la entrada de selección de módulo (MS) para habilitar la RAM
solamente cuando las 4 líneas de dirección más significativas (A ,2 -A 1s ) sean 0010 2 , La decodifica­
ción de las 12 líneas de dirección menos significativas (Ao-A II ) la realiza la circuitería de decodifi­
cación de la RAM.
El bus de datos es un camino de 8 bits y dos direcciones para la lectura o ~scritura de datos en
la RAM de la Figura 7.5. Las 12 líneas de dirección menos significativas de la MPU van directa­
mente a las entradas de dirección del módulo RAM. vía bus de direcciones, las 4 líneas de
dirección más significativas de la MPU están conectadas al decodificador de direcciones. La
salida de escritura (WR) de la MPU está conectada, vía la línea de control de escritura, a la
entrada R/JI
cuando la M
nivel ALTO.
MPU esconl
Un nivel 8.-\
El diagral
durante la OJ
ción válida ~
condición de
bus de datos.
están excitad
control de le
ALTO, o en
alcanza el ni
bus de datos
característica
a 1000 ns pa:
0000
ROM de
4Kx 8
OFFF
"­
1000
1
1
...
~
IFFF
1
2000
~
RAM de
4096 palabras x 8 bits
OFFF
j
-,...
~
I
-----------------­
........
~
I
1
~
FOOO
FFFF
Figura 7.6.
Mapa de memoria.
www.FreeLibros.me
INTERFACES CON EL MICROPROCESADOR
-én
¡en­
11 la
:nto
7.5
recI\M
ica­
:lifi­
~en
cta¡ de
la
a la
~!
221
entrada R/"W de la RAM. Observar que esta entrada es de lectura/escritura, lo que significa que
cuando la MPU no habilita la salida de escritura con un nivel BAJO, el terminal WR pone un
nivel ALTO, que especifica una operación de lectura en la RAM. La salida de lectura (RD) de la
MPU es conectada, vía la línea de control de lectura, a la habilitación de salida (OE) de la RAM.
Un nivel BAJO en la línea de control de lectura habilitará las salidas del módulo RAM.
El diagrama de tiempos de la Figura 7.7 muestra las señales del microprocesador y de la RAM
durante la operación de lectura. Las líneas de dirección de la MPU se incializan con una direc­
ción válida y entonces la salida de lectura (R15) va al nivel BAJO. El bus de datos pasa de la
condición de tres estados a una condición de entrada. La MPU está lista para aceptar datos del
bus de datos. Las entradas de selección de módulo de RAM (MS) y de habilitación de salida (OE)
están excitadas en el nivel BAJO, o habilitadas por el decodificador de direcciones y la línea de
control de lectura de la MPU. La entrada de lectura/escritura (R/JV) es mantenida en el nivel
ALTO, o en el modo de lectura. Inmediatamente después que la habilitación de salida (OE)
alcanza el nivel BAJO, son activadas las salidas de datos. El dato almacenado es colocado en el
bus de datos por las salidas de la RAM. Como en una ROM, el tiempo de acceso de lectura es una
característica importante de la RAM, El tiempo máximo de acceso de lectura puede variar de 250
a 1000 ns para RAM estáticas comunes.
Set'lales de
laMPU
Dirección (Ao-A¡s)
Lectura de memoria
---Ix=
===><____
Di_'_I'eCC_io_'n_v_á_lida
___
Lectura (RD)
In
Bus de datos (Do-D7 )
- - -<"'_____,.,r - - - -­
Señales de
RAM
Lectura de memoria
Selección de módulo (MS)
Lectura/escritura (R/W)
Habilitación de salida (OE) - - - t - - " " ,
Salida de datos (00-07)
Figura 7.7.
~-
F
-<Datos de salida válidos }- ­
TIempo
de acceso
de lectura
-
- -
Diagrama de tiempos. Señales MPU y RAM durante la operaci6n
de lectura de memoria.
www.FreeLibros.me
j
¡
1
!.,
#_0.-----_-:---_____.",. ".,- .. .-_____
222
FUNDAMENTOS DE LOS MICROPROCESADORES
El diagrama de tiempos para la operación de escritura en memoria RAM se muestra en la
Figura 7.8. La secuencia de eventos durante la operación de escritura implica primero el envío de
una dirección a la RAM y al decodificador de direcciones, éste a su vez activa la entrada de
selección de módulo (MS) (que puede ser la entrada de selección de pastilla en un simple CI).
Después de un tiempo denominado tiempo de establecimiento de la dirección, el pulso de escritu­
ra de la MPU (WR) activa la entrada de lectura/escritura (R/W) de la RAM y la coloca en el
modo de escritura. El pulso de escritura debe ser habilitado como mínimo un cierto tiempo,
denominado tiempo del pulso de escritura (o anchura del pulso de escritura). Al mismo tiempo
que sale el pulso de escritura, el dato que se va a escribir en memoria es colocado en el bus de
datos por la MPU. Inmediatamente después, la RAM acepta este dato y lo escribe en la posición
direccionada. El tiempo mínimo para un ciclo de escritura se denomina tiempo de ciclo de
escritura y está identificado cerca la parte superior del diagrama de la Figura 7.8. El ciclo de
escritura mínimo típico para una RAM estática común puede variar de 250 a 1000 ns. El mínimo
tiempo de preparación de la dirección para el mismo grupo de RAM puede variar de 20 a 200 ns,
mientras que el mínimo tiempo de pulso de escritura puede ser de 180 a 750 ns.
El etiquetado y el número de entradas de las RAM comerciales varían. Las señales de salida de
los microprocesadores comerciales, también varían considerablemente. Los manuales de datos de
los fabricantes deben ser examinados cuidadosamente para estos detalles. Las señales del micro-
procesador
como los d
para dete"
pocos micr
las unidade
7.8.
La J
leen
Sol.
.
7.9.
¿Qui
faz a
Sol•
.
Señales de
laMPU
Dirección
7.10. Acu(
selec
to_
Escritura de memoria
<Ao-A¡s) ~
V-­
~A,--._ _ _ _ _---'''-­
Sol.
Si
segrrM
Escritura (WR)
acuet1
-
-
-(
Señales de
la RAM
Salida de datos )- -
- -
-­
Escritura de memoria
Selección de módulo (.\15)
~
---i\I"'t---Tiempo de cido de escritura- , . . - - ­
7.H. El b
de_
dapc
Sol.
EJ
RAM
(circo
Anchura del pulso
----~----,----
Lectura/escritura (R¡W)
..
~~-------
de escritura
-:- - det,-_E_n_tr_ad_a_d_e_d_a_to_s..l}Tiempo
.
preparación
acti\~
-
-­
de la
dirección
Figura 7.8.
•
Diagrama de tiempos. Señales de la MPU y la RAM durante la operación
de escritura en memoria.
www.FreeLibros.me
7.12. Para
que L
do la
1/0(,-
SoIKi
Pa
porta
el oh'
etique
J
,.'
,
ten la
río de
da de
e CI).
iCritu­
en el
:mpo,
lempo
)US de
5íción
r/o de
clo de
ínimo
:00 ns,
lida de
Itos de
mIcro-
INTERFACES CON EL MICROPROCESADOR
.
223
procesador y RAM no aparecen en los libros de datos del fabricante, en diagramas combinados
como los de las Figuras 7.7 y 7.8. Los diagramas de tiempo han de examinarse separadamente
para determinar si son compatibles. Como las celdas de memoria necesitan «refrescarse» cada
pocos microsegundos, las RAM dinámicas son más dificiles de conectar mediante interfaces que
las unidades estáticas de memoria.
PROBLEMAS RESUELTOS
7.8.
La RAM es funcionalmente un dispositivo de almacenamiento de _ _ (sólo lectura,
lectura/escritura).
Solución:
La RAM es funcionalmente un dispositivo de almacenamiento de lectura/escritura.
7.9.
¿Qué tipo de RAM -estática o dinámica- es más fácil de conectar mediante una inter­
faz a un microprocesador?
Solución:
La RAM estática.
7.10. Acudir a la Figura 7.6. Si la MPU direcciona a 2030H, el decodificador de direcciones
seleccionará el segmento ___ (número) de memoria. Un dispositivo de almacenamien­
to _ _ (RAM, ROM) reside en esta posición en este sistema.
Solución:
Si la MPU de la Figura 7.6 direcciona a 2030H, el decodificador de direcciones seleccionará el
segmento 2 (0010 2) de memoria. Un dispositivo de almacenamiento RAM reside en esta posición de
acuerdo con el mapa de memoria de la Figura 7.6.
7.11. El bloque de RAM de la Figura 7.5 contiene _ _ (número) palabras, cada una
de _ _ (número) bits de ancho. Una RAM de este tamaño, probablemente, está forma­
da por un _
(grupo de CI, solo CI).
Solución:
El bloque RAM de la Figura 7.5 contiene 4K (realmente 4096) palabras, cada una de 8 bits. Una
RAM de este tamaño, probablemente, está formada por un grupo de el. Una tarjeta de memoria
(circuito impreso con el) contiene unos 40 el.
7.12. Para escribir en la RAM de la Figura 7.5, las entradas de dirección Ao a AII deben ser
activadas, por tanto MS debe ser habilitado con un nivel _ _ (ALTO, BAJO) mientras
que la entrada R/Wes mantenida en un nivel _ _ (ALTO, BAJO). Finalmente, cuan­
do la entrada 7JE es excitada con un nivel _ _ (ALTO, BAJO), las patillas etiquetadas
//00 a //0 7 son las _ _ (entradas, salidas) de la operación de escritura.
Solución:
Para escribir en la RAM de la Figura 7.5, las entradas de dirección Ao a A7 deben ser activadas,
por tanto MS debe ser habilitado con un nivel BAJO mientras que la entrada R/U' es mantenida en
el nivel BAJO. Finalmente, cuando la entrada OE es excitada con un nivel BAJO, las patillas
etiquetadas 1/00 a 1/07 son las entradas de la operación de escritura.
www.FreeLibros.me
'1,
t
t
1
lt
j
:1
;t
""--~ -"')'
224
1
FUNDAMENTOS DE LOS MICROPROCESADORES
j
7.13.
Acudir a la Figura 7.5. Citar las dos líneas de control que constituyen el «bus de control»
de este sisterrl:l.
Solución:
El «bus de control» comprende las líneas de control de lectura y de escritura del sistema de la fi­
gura 7.5.
7.14.
Acudir a la Figura 7.7. ¿Qué hace que la línea de selección de módulo (MS) caiga del nivet
ALTO al BAJO al comienzo de la operación de lectura de memoria?
Solución:
Los 4 bits más significativos del bus de direcciones son decodificados por el decodificador de
direcciones. que activa la línea de selección de módulo (MS) cuando 00 l 02 está presente en sus en­
tradas.
7.15.
Acudir a la Figura 7.7. El tiempo de acceso de lectura es el tiempo requerido para que los
datos almacenados alcancen las salidas de la RAM, desde el instante en que una dirección
válida alcanza las entradas de dirección. El tiempo de acceso de lectura de una memoria
RAM típica debe ser de unos 500 _ _ (liS, ns).
Solución:
El tiempo de acceso de lectura para una memoria RAM típica debe ser de unos 500 ns.
7.16.
Durante la operación de escritura en la Figura 7.5, las patillas Do a D7 del microprocesador
son consideradas _ _ (entradas, salidas) y están ___ (recibiendo datos del, enviando
datos al) bus de datos.
Solución:
Durante la operación de escritura, las patillas Do a D7 del microprocesador se consideran salidas
y están enviando datos al bus de datos.
7.17.
Acudir a la Figura 7.8. El tiempo del ciclo de escritura es ___ (mayor, menor) que el
tiempo del pulso de escritura de una RAM.
Solución:
De acuerdo con la Figura 1.8, el tiempo del ciclo de escritura es mayor que el tiempo del pulso de
escritura de una RAM.
7.18.
Acudir a la Figura 7.8. La entrada R/Wa la RAM es puesta en el nivel BAJO porla señal
de control ___ del microprocesador.
Solución:
De acuerdo con la Figura 7.5, la señal de control WR de la MPU pone la entrada R/W de la
RAM al nivel BAJO durante una operación de escritura.
7.4. INTERFACES BASICAS DE ENTRADA/SALIDA
Una operación de entrada o salida es el acto de transferir datos a o desde un dispositivo periférico
seleccionado. El microprocesador es el foco de todas las operaciones, por tanto una entrada
significa que el dato fluye hacia la MPU mientras que una salida significa que el dato fluye de
www.FreeLibros.me
la MPU. Acp
salida.
De la tabl
microprocesac
a y desde los ~
das en la Figu
programas en
co IN. Los
ra 7.9a, dondt
puerto. Se pue
las 8 líneas de
adicionales de
OUT, se utilü
bién requiere
(l/lTR). Amb
provienen del
en la Figura 7
Las transfe
ladas por pro~
durante las op
sitivo periféric
utilizan intem
petición de ÍI
servicio de in¡j
incluir operae
Existen do
en la Figura i
posiciones de '
E/S de mapa t
esta téCnica se
ción «(almacer
misma figura.
puerto o dispc
das y utiliza~
habituales de
datos. Cualqu
utilizando la t
La técnica
con cualquier
sadores que te
control de loo
Es común
sin embargo. I
un dispositi\C
sistema repres
da>; y (adapta~
res de interfaz
·l
,
.,
"
L
~
: la Fi­
nivel
t
Ior de
us en­
~
De los
cción
Illoria
J
~c
j
~~.
-t<l·
~~.
t
sador
iando
~
¡a] idas
lue el
~de
I
señal
de la
erico
rada
;e de
~
~
INTERFACES CON EL MICROPROCESAOOR
225
la MPU. Aquellas posiciones donde el dato entra o sale, se denominan puertos de entrada o
salida.
De la tabla de instrucciones de transferencia de datos de la Figura 6.21, se deduce que el
microprocesador genérico utiliza las instrucciones IN (Entrar) y OUT (Salir) para transferir datos
a y desde los puertos de entrada/salida. Estas instrucciones de transferencia de datos están ilustra­
das en la Figura 7.9a. La instrucción de salida está representada por el nemotécnico OUT en los
programas en lenguaje ensamblador, mientras que la instrucción de entrada utiliza el nemotécni­
co IN. Los formatos de instrucción para estas operaciones se reproducen en la Figu­
ra 7.9a, donde aparece el código de op seguido de un número de dispositivo o dirección del
puerto. Se puede seleccionar uno de 256 (2 8) puertos, ya que la dirección del puerto proviene de
las 8 líneas de dirección menos significativas (A o-A 1 ). La Figura 7.9a también muestra dos señales
adicionales de control de salida del microprocesador genérico. Cuando se utiliza la operación
OUT, se utiliza una señal especial de escritura de entrada/salida (l/O W), la operación IN tam­
bién requiere el uso de una señal de salida especial llamada señal de lectura de entrada/salida
(lIOR). Ambas señales de salida son activas en el nivel BAJO y la Figura 7.9a muestra que
provienen del microprocesador. El uso de señales especiales de control, tales como WW e TíiJ"R
en la Figura 7.9a, se conoce como entrada/salida aislada o por acumulador.
Las transferencias de datos que utilizan las instrucciones IN y OUT se denominan E/S contro­
ladas por programa. Las instrucciones de programa están controlando las transferencias de datos
durante las operaciones IN y OUT. Las transferencias de datos pueden ser iniciadas por el dispo­
sitivo periférico cuando dice «Estoy listo para enviar o recibir datos». Los dispositivos periféricos
utilizan interrupciones para iniciar la acción de la MPU. Recordar que cuando la MPU recibe una
petición de interrupción, finaliza la instrucción que está ejecutando y salta a una rutina de
servicio de interrupción en la memoria de programa. Esta rutina de servicio de interrupción puede
incluir operaciones de entrada y salida.
Existen dos técnicas de E/S controladas por programa. La técnica de E/S aisladas se observó
en la Figura 7.9a utilizando las instrucciones especiales IN y OUT. La otra técnica trata a las
posiciones de entrada y salida como direcciones regulares de memoria. Esta técnica se denomina
E/S de mapa de memoria (o con correspondencia en el espacio de direcciones de memoria). Con
esta té~nica se utilizan instrucciones regulares de acceso de memoria. En la Figura 7.9b la instruc­
ción «almacena A directo» se utiliza para sacar datos a un puerto de salida. A continuación, en la
misma figura, la instrucción regular «carga A directo» se utiliza para introducir datos desde un
puerto o dispositivo. En la Figura 7.9b se observa que las líneas de dirección deben ser decodifica­
das y utilizadas para seleccionar la dirección exacta de un puerto de entrada o salida. Las señales
habituales de control de escritura (WR) y lectura (RD) también se utilizan para entrar o sacar
datos. Cualquier instrucción de acceso de memoria puede utilizarse para entrar y sacar datos
utilizando la técnica de E/S de mapa de memoria.
La técnica de E/S de mapa de memoria es, probablemente, la más común y puede utilizarse
con cualquier microprocesador. La técnica de E/S aisladas puede utilizarse sólo con microproce­
sadores que tengan instrucciones IN y OUT separadas, entradas/salidas especiales y salidas de
control de lectura y escritura.
Es común referenciar una salida como «salida a un dispositivo periférico». En la práctica real,
sin embargo, la salida del microprocesador no va directamente a un dispositivo periférico, sino a
un dispositivo de memoria que almacena el dato para el periférico, como puede verse en el
sistema representado en la Figura 7.1. Los bloques etiquetados «adaptador de interfaz de entra­
da» y «adaptador de interfaz de salida» son dispositivos de memoria. Es común que los adaptado­
res de interfaz de E/S tengan características distintas de las de memoria.
www.FreeLibros.me
•,
226
FUNDAMENTOS DE LOS MICROPROCESADORES
Formato de la instrucción
Código de operación
Instrucción de salida
(OUT)
DIrección del puerto
------~AIS
(l6}
MPU
Dirección I Señal de
del puerto escritura de
entrada/salida
Un di
Observar
interfaz (
«almacer
línea .4.,
después.
nivel BA
nivel AL
entonces
que el L
fundame:
Fonnato de la instrucción
Código de operación
Instrucción de
entrada (IN)
Dirección del puerto
------~-;1IS
(16)
f
MPU
A 1S
Ao
•
IIOR
,
~
Dirección Sellal de lectura
del puerto de entrada/salida
(a)
Instrucciones de E/S aisladas y señales MPU
Formato de la instrucción
Código de operación
Instrucción de salida
(STA)-almacena A directo
Dirección de orden inferior
AI5
Dirección de orden superior
1
MPU
Ao
~
WR
,
(16)
Dí rección Sellal de
del puerto escritura
(salida)
A'5
Fonnato de la instrucción
Código de operación
Instrucción de entrada
(LDAj-carga A directo
Dirección de orden inferior
Dirección de orden superior
_------1
A¡S
MPU
t ~I.---;~
~. . '1
~
( 6
)1
+
DireccIón Señal de
del puerto lectura
(entrada)
11
(b)
Instrucciones de E/S de mapa de memoria y señales MPU
Figura 7.9.
www.FreeLibros.me
.~
-
----1
,
.~
UII
,,'...
.,:"~,
;; t
.... ~
~
227
INTERFACES CON EL MICROPROCESADOR
Un dispositivo periférico y una interfaz elemental de salida y se muestran en la Figura 7. lOa.
Observar que el indicador de salida es un sencillo diodo emisor de luz (LEO). El adaptador de la
interfaz de sa1ida contiene un flip-flop D. Suponer que la MPU está ejecutando la instrucción
«almacenar A directo» y que el acumulador contiene 0000000 l. Suponer la dirección 8oo0H, la
línea A 1S está en el nivel ALTO y activa la entrada inferior de la puerta ANO. Inmediatamente
después, aparece un nivel ALTO en la línea del bus de datos (Do)' La señal de control (WR) va al
nivel BAJO, activando la puerta ANO. Esto hace que el bit 1 se almacene en el flip-flop D. El
nivel ALTO en la salida Q del flip-flop hace que luzca el LEO o indicador de bit. La MPU
entonces procede con otras actividades, pero el adaptador de interfaz de salida (memoria) hace
que el LEO siga luciendo. La idea ilustrada para un solo bit de datos en la Figura 7.1 Oa es
fundamental para todas las salidas.
Dispositivo periférico
Adaptador de la interfaz de salida
AI5
-
Do
I?o
1" MPU
D7
Ao
D
¡;...­
-
Q~LED
Q
>Ck
r - WR
<
1:
--
D­
(a)
\\
Interfaz de un simple indicador LED del bit de salida
¡
Adaptador de la interfaz de salida
1
Al~
115
-
Ao
MPU
I?J
Dr
--+­
(8)
D7
Ds
ro-- WR
QI
Q2
Q3
Q4
Qs
Línea de control de escritura
Línea de selección de dispositivo
(b)
_~
1
-
}­
Q6
Q7
Q8
Habilitado
Interfaz del visualizador de siete segmentos
Figura 7.10.
www.FreeLibros.me
Dispositivo periférico
a
b
..
e
d
e
f
g
p.d.
av
.~
V
'S
l'
I
1
~.
;¡! tt !:!'19
-,\~l;
I
••
ithe +,!Iy,httr:
~
228
FUNDAMENTOS DE LOS MICROPROCESADORES
Dispositivo periférico
Adaptador de la interfaz de entrada
ALTO
Q-[?
D
Y
BAJO
...-- >Ck
l
A,s
Línea de selección de dispositivo
"'"
-
Linea de control de lectura
1u
MPU
Ao
I?o
D1
Do
--­
RD
Interfaz de una entrada de conmutador
(a)
Adaptador de la interfaz de entrada
Dispositivo periférico
D
D
D
O
D
O
O
O
D
D
D
D
--+-­
Cerrojos
de datos
-
-
Cerrojos
de datos
-(8)
-Habilitado
11
(8)
Habilitado
1
.
La interfa
la MPU, vía
8 bits en la fe
que la salida
dato en el "i
punto decim~
salida Q del e
Otro períf
periférico es •
conecta una l
de entrada. e
memoria 800
salida, permit
bus de datos,
inhabilita la I
interfaz de en
sobre otras Ir.
La técnica
líneas de direI
línea de selea
Aquí un dato
direccionamie
La E/S de
68000, 6502 ,
utilizadas por"
7.19.
Una m
utiliza ¡
Soludrál
Bus de datos
Una
técnica (
les de al
I
Linea de selección de
dispositivo
."'I'lII
~IS
Línea de control de lectu-;;;:--
Ao
l!o
MPU
D1
~.)
7.20. La técn
memori
Solución
La te.
ria se de:
RD
(b)
Interfaz de entrada de teclado
Figura 7.11.
www.FreeLibros.me
7.21.
Si las sa
están C(
E/S
J
INTERFACES CON EL MICROPROCESADOR
229
La interfaz de salida de la Figura 7.lOb es algo más complicada. Transfiere 8 bits de datos de
la MPU, vía bus de datos, al adaptador de interfaz de salida, que los almacena en un cerrojo de
8 bits en la forma habitual. Observar que la línea de dirección AI5 debe estar en ALTA mientras
que la salida de control de escritura (JP'R) debe ser un pulso BAJO durante el tiempo que esté el
dato en el visualizador LEO de siete segmentos. Cada segmento del visualizador LEO (a-g y
punto decimal) actúa exactamente como el LEO de la Figura 7.1 Oa. Un nivel ALTO en cualquier
salida Q del cerrojo hará que luzca el segmento.
Otro periférico elemental y dispositivo de interfaz se muestra en la Figura 7.11 a. El dispositivo
periférico es un sencillo conmutador que selecciona un nivel ALTO o un nivel BAJO. Sólo se
conecta una línea de entrada a la entrada D del flip-flop de datos dentro del adaptador de interfaz
de entrada. Cuando la MPU ejecuta una instrucción como «cargar A directo desde la posición de
memoria 8000H», la puerta ANO se activa, encerrando el dato de entrada. Se habilita el buffer de
salida, permitiendo que el dato pase a través de la línea del bus de datos (Do). La MPU acepta, del
bus de datos, el bit de dato ALTO y lo transfiere al acumulador. Inmediatamente después, se
inhabilita la puerta ANO, desactivando el buffer del bus de datos. La salida de adaptador de
interfaz de entrada está ahora inhabilitada y en su estado de alta impedancia y no tiene efecto
sobre otras transferencias del bus de datos.
La técnica de entrada, de mapa de memoria, se utiliza en la Figura 7.11. Normalmente, varias
líneas de dirección deben ser decodificadas por un decodificador de direcciones para activar la
línea de selección de dispositivo. La Figura 7.11 b es una extensión de la entrada de un solo bit.
Aquí un dato paralelo de 8 bits se introduce desde un teclado. El control de lectura (RD) y
direccionamiento simple son los mismos que se utilizaron en los ejemplos anteriores.
La E/S de mapa de memoria se utiliza con los microprocesadores comunes como 6800, 6809,
68000, 6502 Y 65816. Las E/S aisladas (a veces llamadas también E/S de canal de datos) son
utilizadas por los microprocesadores comunes como 8080/8085, Z80, 8086,8088 Y Z8000.
PROBLEMAS RESUELTOS
7.19. Una microcomputadora que utiliza las instrucciones especiales IN y OUT se dice que
utiliza la técnica de E/S _ _ (aisladas, de mapa de memoria).
Solución:
Una microcomputadora que utiliza las instrucciones especiales IN y OUT se dice que utiliza la
técnica de E/S aisladas. El uso de esta técnica depende que el microprocesador tenga salidas especia­
les de control tal como lectura y escritura de E/S.
7.20. La técnica de E/S que trata los puertos de entrada y salida como direcciones regulares de
memoria se denomina de E/S ___ (aisladas, de mapa de memoria).
Solución:
La técnica de E/S que trata los puertos de entrada y salida como direcciones regulares de memo­
ria se denomina de E/S de mapa de memoria.
7.21. Si las salidas de control de lectura (lID) y escritura (WR) de memoria de la MPU normal
están conectadas a adaptadores de interfaces de E/S, se está utilizando la técnica de
E/S
(aisladas, de mapa de memoria) .
www.FreeLibros.me
i
II 1
111
11
¡ti
lit! JU Ut!
230
H¡I:¡f ,
AJNDAMENTOS DE LOS MICROPRIX'ESAOORES
Solución:
Si las salidas de control de escritura (WR) y de lectura (RD) de memoria de la MPU normal están
conectadas a adaptadores de interfaces de E/S, se está utilizando la técnica de E/S de mapa de me­
moria.
7.22. En la Figura 7.11 b se transfiere un dato al acumulador de la MPU después de que la línea
de dirección AI5 alcanza el nivel ___ (ALTO, BAJO) y la línea de control de lectura
(RD) alcanza el nivel _ _ (ALTO, BAJO), lo que habilita los cerrojos y buffers.
Dec
cad.
dirro
..
Solución:
El dato es transferido al acumulador de la MPU. en la Figura 7.11b, después de que la línea de
dirección AI5 alcance el nivel ALTO y la línea de control de lectura (RD) alcance el nivel BAJO, lo
cual habilita a los cerrojos y butTers.
7.23.
Durante la operación de entrada, la MPU de la Figura 7.llb está ejecutando, probable­
mente, la instrucción _ _ (IN, LOA).
Solución:
Este sistema está utilizando la técnica de E/S de mapa de memoria. Con esta técnica se utilízan
instrucciones de transferencia de datos de referencia regular de memoria. Por tanto. durante la
operación de entrada la MPU de la Figura 7.llb está ejecutando, probablemente. la instrucción
LOA (carga A directo).
."
¡J
ij
¡
7.24. Cuando están habilitados, los buffers de datos _ _ (bloquean, permiten) el paso de los
datos de los cerrojos al bus de datos.
Solución:
Cuando están habilitados, los butTers de datos, permiten el paso de los datos de los cerrojos al bus
de datos.
7.25.
Acudir a la Figura 7.11 b. ¿A qué dirección responderá la interfaz de entrada?
Solución:
Siempre que la línea de dirección más significativa (A 15) esté en ALTA, se activa la línea de
selección de dispositivo. Este no es un método práctico de direccionamiento, porque los 32K (los
ocho segmentos inferiores de 4K de la Figura 7.3) serán utilizados por este dispositivo de salida.
ALTO - salida
( BAJO - entrad¡
i
1
I
~
J
Figura 7
7.5. INTERFAZ CON PUERTOS PRACTICOS DE ENTRADA/SALIDA
Los fabricantes producen circuitos de interfaz de E/S en forma de el. Uno de estos CI es el puerto
de entrada/salida Intel 8212 de 8 bits. Este CI puede utilizarse como adaptador de puerto de
entrada o salida.
Un microprocesador similar a la MPU genérica o al Intel8080 se muestra en la Figura 7.12,
conectado a un visualizador de siete segmentos, utilizando el puerto de E/S 8212. Este puerto
sirve como adaptador de interfaz de salida de este sistema. El visualizador de siete segmentos es el
dispositivo periférico. La MPU utiliza la técnica de E/S aisladas en este diagrama. Observar que
con esta técnica la línea de selección de dispositivo de salida se decodifica completamente con las
8 líneas de dirección menos significativas (A II -A 7 ), también se utiliza una salida especial de con­
www.FreeLibros.me
1
,~
trol de escritur.
Recordar que la
El el del PI
determina al ob
esto ocurre, el 8
a las 8 líneas de
(DOo-D07 ) del
puerto de E/S d
un nivel ALTO
entradas de sele
.-----
-- .
'''''• •IJIIi'l!• •¡;¡;¡~~~~-;:-::;'i.-----------------------------~l''h.-
INTERFACES CON EL MICROPROCESADOR
231
!. .
I estáII
:le me­
c-­
Decodifi­
cador de
direcciones
tlínea
.1 7
lm"
......-­
-
.1 15
MPU
(16)
.1 0
.4 0
I!o
''4y,
l\1}J
D7
~
I¡OW
:ctura
Linea de control
de escritura
'o
L-----------l[lllool
l'
:
\
Puerto de E/S Intel 8212
DSl
Linea de selección de dispositivo
~------------------------~DS2
bable­
Cerrojo
de datos
Control del modo
ALTO - salida )
(BAJO = entrada ALTO
lIilizan
IDte la
ucciÓII
Dh~~
_______~
DIo
--------1 MDI--~B~u""l'ffi~ers----1
\
ALTO
----------<(]CLR
CLR
de salida
D07.· .. DOo
Adaptador de la interfaz de salida
de los
av
.0 n
¡al bus
Dispositivo perirérico
r
...IC:ade
'os
Figura 7.12.
t
'-';0
:10
de
-¡2.
lUeno
ses el
Ir que
[)n las
~ con­
i....
~::
~~
j,
f
Interfaz con visualizador de siete segmentos utilizando el puerto de E/S
de Intel 8212.
trol de escritura de entrada/salida (1llJW) que se ha añadido a la MPU de la Figura 7.12.
Recordar que la técnica de E/S aisladas sólo permite el uso de las instrucciones IN y OUT.
El el del puerto de E/S 8212 se utiliza como puerto de salida en la Figura 7. 12. Esto se
determina al observar que la entrada de control de modo (MD) al 8212 está en ALTA, y cuando
esto ocurre, el 8212 está en el modo de salida. Las líneas del bus de datos de la MPU se conectan
a las 8 líneas de entrada de datos (DIo-DI,) del puerto de E/S 8212. Las 8 líneas de salida de datos
(DOo-D07 ) del 8212 están conectadas a las entradas del visualizador LED de siete segmentos. El
puerto de E/S del 8212 tiene una entrada de borrado, pero en este circuito está inhabilitada con
un nivel ALTO. Internamente el 8212 tiene ocho cerrojos de datos y bufTers de salida. Las 2
entradas de selección de dispositivo (liSI, DS2) son entradas de control para el pueno de E/S
"-"2
www.FreeLibros.me
t
"t.
- -..."'
LI]
232
RJNDAMENTOS DE LOS MICROPROCESADORES
8212 cuando se usa en este modo. Cuando 15Sl está activada por un nivel BAJO y DS2 por un
nivel ALTO, el dato del bus de datos se cargará en los cerrojos y aparecerá también en las patillas
de salida (DOo-D07 ), activando así los segmentos del visualizador LEO.
La operación del puerto de E/S 8212, mientras se utiliza en el modo de salida, se detalla en la
Figura 7.13. Observar en el diagrama de tiempos que tan pronto como son activadas, las señales
de control de entrada (lJSI y DS2), el dato de entrada se almacena en el puerto de E/S y está
disponible en las patillas de salida. En el modo de salida, los bufTers de salida están permanente­
mente habilitados, por lo que los datos almacenados aparecen en las patillas de salida aún después
que las patillas de control 15S1 y DS2 vuelvan a sus estados de inhabilitación.
7.29. LaeJ
direo
SoIDCi
DI
por e!
compl
7.30. Los t
mieol
qUeaJ
SoJuci
Sehales en el puerto
de E/S Intel 8212
Modo de salida
Lo
su mo
Entrada de datos (Dlo-DI7
Senales {
de control
de entrada
Datos de entrada
activa
Soluci
Fl
entrad
DSI
DS2
Salida de datos DOo-D07
Figura 7.13.
7.31. Acudi
7.32. El siSl
_ _ _ _ _J
Los datos del cerrojo aparecen en las patillas de salida
Diagrama de tiempos. Señales de E/S del puerto durante el modo de salida.
PROBLEMAS RESUELTOS
7.26. Los datos que llegan a los terminales DIo a DI7 del puerto de E/S 8212 en la Figura 7.12
de me
Soluci
Fll
,
..
7.6. SNC
DE D
provienen del bus de ___ (direcciones, datos) del sistema basado en microprocesador.
Solución:
De acuerdo con la Figura 7.12, los datos que llegan a los terminales DIo· a DI7 del puerto de E/S
del 8212 provienen del bus de datos del sistema basado en microprocesador.
7.27. El puerto de E/S 8212 en la Figura 7.12 se utiliza como puerto de _ _ (entrada, salida)
paralelo de 8 bits en este diagrama.
Solución:
El puerto de E/S 8212 en la Figura 7.12 se utiliza como puerto de salida paralelo de 8 bits en este
diagrama.
¡
,
7.28. La entrada 15S1 al 8212 de la Figura 7.13 es generada por _ _ (el decodificador de
direcciones, la señal 110 W de la MPU).
Solución:
De acuerdo con la Figura 7.12, la entrada DSl al puerto de E/S del 8212 es generada por la señal
l/O W de la MPU.
www.FreeLibros.me
Hasta este P'l
un puerto en;
ser así, ya qu
velocidad qu,
de datos. ést<
La técmc
más simple d
del escrutinic
Suponer I
dor de entrad
7.11 a pueder
tador de ¡me]
construir un
entrada y ese
de lectura-es(
la salida cada
________----~--. . . . . . $.~.. .. . . .2ñ~. .--------. .----. . . . . . . . . . . . . . . . . .~U;~.
~
~i.i
r'
INTERFACES CON EL MICROPROCESADOR
por un
s patillas
illa en la
s señales
rs y está
!1anente­
después
L
-
l ;¡
da.
Solución:
De acuerdo con la Figura 7.12, la entrada de control DS2 del puerto de E/S del 8212 es generada
por el decodificador de direcciones. Las 8 líneas de dirección menos significativas son decodificadas
completamente en este sistema, lo que significa que están disponibles 256 dispositivos de salida.
7.30. Los buffers de salida del 8212 están permanentemente
(inhabilitados, habilitados)
mientras la unidad está en su modo de salida. Esto significa que los buffers ___ (blo­
quean los datos de, pasan los datos a) las salidas de datos (DOo-D07 ).
7.31. Acudir a la Figura 7.13. El dato está encerrado en el puerto de E/S 8212 cuando están
activadas ambas entradas de control ___ y ___ .
t¡,
Solución:
El dato está encerrado en el puerto E/S 8212 en la Figura 7.13 cuando están activadas ambas
entradas de control DSl y DS2.
7.32. El sistema de la Figura 7.12 utiliza la técnica de interfaz de E/S __ (aisladas, de mapa
de memoria).
o
_
Solución:
El sistema de la Figura 7.12 utiliza la técnica de interfaz de E!S aisladas.
,
!
p.u37.12
cesador.
t-:
Je E/S
L
salida)
ÍIS en este
~orde
r
7.29. La entrada DS2 al 8212 de la Figura 7.13 es generada por _ _ (el decodificador de
direcciones, el bus de datos de la MPU).
Solución:
Los btiffers de salida del 8212 están permanentemente habilitados mientras que la unidad está en
su modo de salida. Esto significa que los buffers pasan los datos a las salidas de datos (DO o-D07 ).
L
j
233
,..la señal
7.6. SINCRONIZACION DE TRANSFERENCIAS DE ENTRADA/SALIDA
DE DATOS MEDIANTE INTERRUPCIONES
Hasta este punto se ha supuesto que cuando el programa autorizaba a la MPU una entrada desde
un puerto era porque había un dato válido disponible en esa posición. Sin embargo, éste puede no
ser así, ya que los dispositivos periféricos (como por ejemplo un teélado) no actúan a la misma
velocidad que la MPU. Por esta razón existen varias técnicas de sincronización de transferencia
de datos, éstas son las de escrutinio (polling) y las interrupciones.
La técnica de escrutinio también se denomina de E/S programada. El escrutinio es el método
más simple de sincronización de E/S y se utiliza en las aplicaciones dedicadas pequeñas. La idea
del escrutinio es entrar o sacar datos, utilizando un lazo de escrutinio en el programa.
Suponer un sistema extremadamente simple, basado en MPU, que utilice un solo conmuta­
dor de entrada y un solo indicador LED de salida. Los sistemas mostrados en las Figuras 7.1 Oa y
7.11 a pueden combinarse utilizando una sencilla MPU, un conmutador de entrada con un adap­
tador de interfaz de entrada y un LED de salida con un adaptador de interfaz de salida. Se puede
construir un lazo de escrutinio, extremadamente sencillo, para leer primero el conmutador de
entrada y escribir después esta condición en el indicador LED de salida. En este ejemplo, el lazo
de lectura-escritura-lectura-escritura- etc., seria continuo. La MPU escruta la entrada y actualiza
la salida cada pocos microsegundos.
www.FreeLibros.me
~t·
.".,.,i
I
. . . . .s.
~
234
··jJ.lih~f
FUNDAMt::NTOS DE LOS MICROPROCESADORES
El lazo de escrutinio más común puede consistir en escrutar los dispositivos de E/S. La MPU
pregunta al primer dispositivo si necesita servicio. La necesidad, o no necesidad, de servicio está
indicada por el valor verdadero, o falso, de un señalizador. Si el dispositivo necesita servicio, la
MPU presta servicio a ese dispositivo, si no lo necesita, la MPU va al segundo dispositivo de E/S,
etcétera.
El sistema representado en la Figura 7.14 utiliza una línea de petición de interrupción para
notificar al microprocesador cuando está listo un dato para ser transferido a la CPU. Recordar
que el microprocesador genérico tenía una entrada de petición de interrupción (INTR). Cuando
se activaba con un nivel ALTO, la MPU finalizaba la instrucción actual, almacenaba los conteni­
dos del registro actual y del contador de programa en la pila y saltaba a una rutina especial de
servicio de interrupción. Después de atender la interrupción, la MPU continuaba la ejecución del
programa principal. En este ejemplo, la rutina de servicio de interrupción puede ser tan sencilla
como introducir y almacenar entradas del teclado.
o
O D.
O D O
O O O
Línea de strobe
ALT0- salida )
(BAJ O = entrada BAJO
STB
Control del modo
ALTO
Dispositivo periférico
(teclado)
MD
""
Línea de selección de dispositivo
CLR
DI,
Adaptador de la interfaz
de entrada
DIo
Cerrojos
de datos
BulTers
de salida
DS2
Línea de lectura de E/S
Po
(8)
D7
~'
-
DSl
Puerto de E/S lntel 8212
Consi,
do utilizal
modo (JI
entrada. L
dato para
sistema. l.
dispositin
palabra de
ALTOW
Estos e\er
nuevo, es
DeaCL
dato está e
ción de sal
de interrul
Las forma:
do en el t>.
Observar «
diatamem.
bilitación.
Consid
utiliza en c
""
t
(
Señales e
de E/S 1
Entrada de daI
Entrada .:k
INT r-
..
Línea de
petición de _
interrupción
IjOR
A7
'--
Decodificador
de direcciones
~
Ao
...-..-
115
~",..
MPU
(16)
Controles
del bulTer '
()
Ao
POo
D07
(8J
~
INTR
Figura 7.14.
Interfaz con el teclado utilizando el puerto de E/S Intel 8212 con una sola
interrupción.
www.FreeLibros.me
Salidas _
bus de da
Salida de
interrupo
Figura 7.1!
INTERFACES CON EL MICROPROCESAOOR
l!
la
la
5..
la
•
k
IIÍ­
J.
•
235
Considerar el sistema de la Figura 7.14. El microprocesador está interconectado con un tecla­
do utilizando el CI puerto de E/S Intel 8212 como adaptador de interfaz de entrada. El control de
modo (MD) del 8212 está en el nivel BAJO, lo que significa que opera como un adaptador de
entrada. La entrada de borrado (eLR) a la unidad 8212 está inhabilitada con un nivel ALTO. El
dato paralelo de 8 bits del teclado llega a las entradas de datos (Dlo-Dli ) del 8212. En este
sistema, la entrada STB controla los cerrojos de datos. mientras las entradas de selección de
dispositivo del 8212 (15SJ y DS2) controlan los buffers de salida. El teclado debe colocar una
palabra de 8 bits en la entrada de datos de la unidad 8212 y también debe producir un pulso
ALTO (strobe) para almacenar este dato en los cerrojos, de datos, internos del puerto de E/S.
Estos eventos están representados en la Figura 7.15 por las tres formas de onda superiores. De
nuevo, es el «strobe» ALTO del teclado el que almacena los datos en el puerto de E/S 8212 .
De acuerdo con la forma de onda inferior de la Figura 7.15, inmediatamente después que el
dato está en los cerrojos de datos, la circuitería de la unidad 8212 produce un pulso de interrup­
ción de salida (lNI). Algún tiempo después de que este pulso llegue a la MPU, vía línea petición
- de interrupción, son habilitados los controles del buffer de salida de la unidad 8212 (15"81 y DS2).
Las formas de onda tercera a sexta de la Figura 7.15 muestran que el dato almacer.lado es coloca­
do en el bus de datos, durante un corto tiempo, por los controles DSI y DS2 de la unidad 8212.
Observar que las salidas del puerto de E/S 8212 vuelven a su condición de tres estados, inme­
diatamente después de que los controles del buffer (DSI y DS2) vuelven a su estado de inha­
bilitación.
Considerar de nuevo la interfaz del teclado de la Figura 7.14. La técnica de E/S aisladas se
utiliza en este sistema. La señal de control especial de lectura de entrada/salida (l/O R) activa la
Señales en el puerto
de E/S Intel 8212
Modo de entrada
Entrada de datos (D/o-Dl?
____
Datos de __entrada
--J
~~----
Entrada de strobe STB
Cerrojos de datos
Controles {
del buffer
Almacenados en cerrojos
DSl
DSl
Salidas al DO -D0
bus de datos
Salida de
interrupción
Figura 7.15.
o
__________________ _
7
Diagrama de tiempos. Señales del puerto de E/S durante el modo de entrada con una
sola interrupción.
I
[
l
www.FreeLibros.me
1­ ....
________________. . . . . . . .
'b~
236
FUNDAMENTOS DE LOS MICROPROCESADORES
entrada DSl de la unidad 8212. Las 8 líneas de dirección menos significativas (A o-A 7 ) son
. decodificadas completamente por el decodificador de direcciones, cuya salida activa la entrada
DS2 del 8212, vía la línea de selección de dispositivo. Recordar que en este sistema las entradas
DSl y DS2 controlan los buffers de salida del puerto de E/S 8212. Observar que se coloca un
inversor en la línea de petición de interrupción, este inversor convierte la salida INT, activa en
BAJO, del 8212 en la entrada INTR, activa en ALTO, de la MPU.
La interrupción es un método de informar al microprocesador que un dispositivo de E/S está
«listo» y de la acción que necesita tomarse. La subrutina especial que realiza esta acción se
denomina rutina de servicio de interrupción. Si hay varios dispositivos capaces de interrumpir la
MPU, se puede realizar la operación lógica OR con las líneas de petición de interrupción y la
CPU tendrá que «encontrar» el dispositivo de E/S que provocó la interrupción. El proceso de
«búsqueda» puede involucrar la técnica de escrutinio mencionada anteriormente y se denomina
esquema de escrutinio de interrupciones. Asociado a cada puerto de E/S en un esquema de
_ escrutinio de interrupción hay un puerto de status cuyo código dice a la MPU si el puerto está
«listo» para ser introducido o recibir alguna salida.
Algunos microprocesadores tienen varias entradas e instrucciones de interrupción para habili­
tar e inhabilitar, al menos, algunas de estas entradas de interrupción. Muchos microprocesadores
utilizan esquemas de vectores de interrupción donde la MPU sabe qué dispositivo de E/S está
interrumpiendo y salta a la correspondiente rutina de servicio de interrupción. Muchos micropro­
cesadores tienen también métodos para determinar la prioridad de servicio cuando se reciben a la
vez dos interrupciones, lo que se denomina, a veces, arbitración de la prioridad de interrupciones.
Esta circuitería decide qué dispositivo debe ser atendido primero. Para realizar esta tarea habi­
tualmente se necesita un CI separado, como por ejemplo la unidad de control de prioridad de
interrupciones Intel 8259.
Las ventajas del escrutinio sobre las interrupciones son que requiere menos hardware para las
interfaces y como está bajo control del programa es síncrona; las desventajas son que requiere
excesivo software, gasta tiempo de MPU y, si hay que escrutar muchos dispositivos, se puede
tardar bastante tiempo en responder a un dispositivo de E/S que necesite servicio.
Las ventajas de las interrupciones sobre el escrutinio son respuestas más rápidas, mejor uso
del tiempo de la MPU y necesidad de menos software. Las desventajas son su operación asíncro­
na y la necesidad de más hardware para las interfaces.
7.35. AaI
(enI
SoII
niw
7.36. Aa
iDIII
pul!
tem
SeII
82J
del!
7.37. Baj
del
al.
eIa)
Soll
Jbol
7.38. La
Sol
7.39. LiI
téc1
Sol
los
PROBLEMAS RESUELTOS
50ft
mi
7.33. Una petición de interrupción se envía a la MPU cuando un puerto de E/S ___ (no está
listo, está listo) para el servicio.
Solución:
Una petición de interrupción es iniciada por un dispositivo de E/S.
7.34. Una petición de interrupción se envía a la MPU cuando un puerto de E/S ___ (no está
listo, está listo) para el servicio.
Solución:
Una petición de interrupción se envía a la MPU cuando un puerto de E/S está listo para el ser­
VICIO.
www.FreeLibros.me
-1
7.7. DE
¡
En la Figt
ser introdl
tran t~
entrada y
desde el éi
sistema U1
l
_.,'-­
,
I
son
INTERFACES CON EL MICROPROCESADOR
7.35.
rada
Idas
l un
iI
está
bili­
7.36.
Para que los datos del teclado sean almacenados en los cerrojos internos de datos de la unidad
8212 de la Figura 7.14, la entrada de strobe debe ser un pulso ALTO. Este pulso proviene del teclado
del sistema.
7.37.
Bajo la ejecución de la instrucción IN (entrar), la MPU de la Figura 7.14 hace que la línea de
lectura de E/S vaya al nivel BAJO y la línea de selección de dispositivo al ALTO. Esto habilita los
buffers de salida del puerto de E/S 8212.
ahi­
I de
I
:stá
ser-
Bajo la ejecución de la instrucción IN (entrar), la MPU de la Figura 7.14 hace que la línea
de lectura de E/S vaya al nivel _ _ (ALTO, BAJO) y la línea de selección de dispositivo
al nivel _ _ (ALTO, BAJO). Esto habilita los _ _ (cerrojos de datos, buffers de sali­
da) en el puerto de E/S 8212.
Solución:
"es.
liere
lCde
Acudir a la Figura 7.14. Para que los datos del teclado sean almacenados en los cerrojos
internos de datos de la unidad 8212. la entrada de ___ (borrado, strobe) debe ser un
pulso _ _ (ALTO, BAJO). Este pulso proviene _ _ (del teclado, de la MPU) del sis­
tema.
Solución:
está
pro­
ala
alas
Acudir a la Figura 7.14. El puerto de E/S 8212 está operando en su modo de _ _
(entrada, salida) en este circuito.
El puerto de E/S 8212 de la Figura 7.14 está operando en su modo de entradá en este circuito. El
nivel BAJO en la entrada de modo (MD) coloca a este puerto de E/S en el modo de entrada.
ir la
y la
) de
Ilina
l de
está
ores
237
Solución:
en
ose
4
7.38.
La escrutación a veces se denomina E/S ___ .
¡
t
¡. '
Solución:
La escrutación a veces se denomina E/S programadas.
7.39. Listar las ventajas e inconvenientes de las interrupciones sobre el escrutinio como una
técnica de sincronización de E/S.
,1
Solución:
Las ventajas de utilizar las interrupciones son que responden rápidamente a las necesidades de
los dispositivos de E/S para el servicio, hacen mejor uso del tiempo de la MPU y utilizan menos
software. Las desventajas de utilizar interrupciones son su naturaleza asíncrona y la necesidad de
más hardware para las interfaces.
7.7. DECODIFICACION DE DIRECaONES
En la Figura 7.16 se muestra un sencillo sistema basado en microprocesador. Los datos pueden
ser introducidos, vía el teclado, y sacados a un simple visualizador de siete segmentos. Se mues­
tran todas las líneas de selección de datos y de control. Los adaptadores de las interfaces de
entrada y salida son puertos de E/S Intel 8212. La sincronización de la transferencia de datos
desde el adaptador de la interfaz de entrada se realiza utilizando un sencillo interruptor. El
sistema utiliza la técnica de E/S de mapa de memoria, tratando así los puertos de E/S como
www.FreeLibros.me
1
j
..
" '~
238
FUNDAMENTOS DE LOS MICROPROCESADORES
DO O O
DO O []
DO O O
posiciones
nes anteric
utilizar en
El diagJ
vas (A I2 -A
Teclado
1.1(8)
1
~.,
Strobe
.'
Linea de selección de dispositivo
BAJO
(9000-9FFF)
Control
del modo
STB
Decodificador
de direcciones
-+<
-
Línea de selección
de dispositivo
¡OOOO-OFFFH)
D0 7
INT
IÍJII
-(»­
3. Gel
Do
(16)
...-­
(12)
'(81
MPU
Ao
(12)
Línea de selección de dispositivo
(2000-2FFFH)
~
..........
D,
INTR
f
OE
~II
ROM de4K
00
O,
Ao
........
es
-
1
:~
-
Bus de
datos
OE
-
R/W
~Il
IjOo
RAM de 4K
Ao
Ij0 7
..
...
~
,.
MS
Linea de control de escritura_
-
Línea de selección de dispositivo
DSI
(8000-8FFF)
DS]
ALTO
Control
del modo
Puerto de E/S
Dio
Intel 8212
Dl7
MD
D07 ·· .DOo
¡ti
,
.0
Figura 7.16.
-
Adaptador de la interfaz de salida
(8)
llu
,
inu
Gel
iall
-:fIS
WR
o---ot- RD
12
2. Gel
4.
-4f---
A/;:
Intel 8212
IÍJII
~
Línea de petición de interrupcíón_
\
A 1S (4)
~
DSI
Bus de direcciones
1. Gel
Adaptador de la interfaz de entrada
DOo
M DI Pueno de E/S
DS]
Línea de control de lectura~.---.
direccion~
Dl 7, , ,Dio
Visualizador de siete segmentos
Diagrama de un sistema basado en microprocesador.
www.FreeLibros.me
Un Ola
almacenan
número de
selección (
localizan o
do en las (
utiliza el se
activarán e
líneas de d
no se nere
maneraan
dor de la ir
sólo está p
Una soi
en la Figur
un el dea
demultiple
La salida a
tadas (So-~
nivel BAJ(
ción del d
decodifiC3(
con un nh
RAM.
Si las 4
8 del deco
que sea COI
del adaptal
decodifica(
de entrada
mente mru
:1111Ulb, .
r
5
3i
INTERFACES CON EL MICROPROCESADOR
'4
239
posiciones de memoria. Cada una de las interfaces individuales ha sido examinada en las seccio­
nes anteriores. Esta sección investigará la circuitería de decodificación de direcciones que se debe
utilizar en tal sistema.
El diagrama del sistema de la Figura 7.6 muestra las cuatro líneas de dirección más significati­
vas (A 12 -A 15) formando la entrada al decodificador de direcciones. Las tareas del decodificador de
direcciones en este sistema son:
l. Generar una salida BAJA para la línea de selección del dispositivo ROM cuando las 4
líneas de dirección más significativas sean 0000,.
2. Generar una salida BAJA para la línea de selección del dispositivo RAM cuando las 4
líneas de dirección más significativas sean 00 102'
3. Generar uQa salida ALTA para la línea de selección del dispositivo del adaptador de la
interfaz de salida cuando las 4 líneas de dirección más significativas sean 10002,
4. Generar una salida ALTA para la línea de selección del dispositivo del adaptador de la
interfaz de entrada cuando las 4 líneas de dirección más significativas sean 100 Ir
Un mapa de memoria del sistema se muestra en la Figura 7.17. Las 4096 posiciones de
almacenamiento de la ROM estarán localizadas en el segmento Oo direcciones 0000 a OFFFH. El
número del segmento en este caso es el equivalente hexadecimal de 0000, que genera la señal de
selección del dispositivo ROM. En el segmento 2 del mapa de memona de la Figura 7.17 se
localizan otras 4096 direcciones. Estos 4K de memoria son RAM. El puerto de salida está ubica­
do en las direcciones del segmento 8 del mapa de memoria. mientras que el puerto de entrada
utiliza el segmento 9. Observar que cualquiera de las 4096 direcciones desde la 8000 a la 8FFFH
activarán el adaptador de la interfaz de salida. Esto es cierto porque sólo se decodifican 4 de las 16
líneas de dirección, lo cual se denomina decod(ficación parcial de direcciones y funciona bien si
no se necesita añadir ningún otro dispositivo de salida que tenga direcciones en el segmento 8. De
manera análoga, cualquiera de las 4096 direcciones desde la 9000 a la 9FFFH activará el adapta­
dor de la interfaz de entrada de este sistema. De nuevo, esto es cierto porque el bus de direcciones
sólo está parcialmente decodificado.
Una solución sencilla al problema de decodificación de direcciones de este sistema se muestra
en la Figura 7.18. Para decodificar las 4 líneas de dirección más significativas (A I2 -A 1s ) se utilizan
un CI decodificador l-de-16 y dos inversores. Recordar que el dec<oildificador (también llamado
demultiplexor) actúa como un conmutador rotatorio, activando cada vez sólo una salida (0-15).
La salida activada en el decodificador l-de-16 depende de las líneas de selección que estén habili­
tadas (So-SJ)' Además, si las líneas de selección están a 0000, entonces se activa la salida O con un
nivel BAJO. La Figura 7.18 muestra que la salida O del decodificador alimenta la línea de selec­
ción del dispositivo de la ROM y selecciona el segmento O del mapa de memoria. Si en el
decodificador 00 1O (S3 = O, S2 = O, SI = 1, So = O), se activa la salida 2 del decodificador l-de-16
con un nivel BAJO. La salida 2 se utiliza para habilitar la línea de selección de dispositivo de la
RAM.
Si las 4 líneas de dirección más significativas de la Figura 7.18 fuesen 1000" entonces la salida
8 del decodificador se activaría con un nivel BAJO. Un inversor complemeñta esta salida para
que sea compatible con el pulso ALTO necesario para activar la línea de selección de dispositivo
del adaptador de la interfaz de salida. De igual forma un 1001, en las entradas de selección del
decodificador l-de-16 habilitarán la línea de selección de dispositivo del adaptador de la interfaz
de entrada con un pulso ALTO. Las salidas no utilizadas pueden emplearse para añadir posterior­
mente más dispositivos periféricos o de memoria.
www.FreeLibros.me
,
t
>
~i
J,;
I
'" ¡¡Si '31 id [1 1'.1 ::aULUiI . ; !lII.IC.4<.;gplJ;:¡fW;,.Q,
240
111 LA!'
lt • •
FUNDAMENTOS DE LOS MICROPROCESADORES
0000
ROM
4K
OFFF
1000
IFFF
2000
RAM
4K
2FFF
3000
3FFF
4000
4FFF
5000
5FFF
6000
6FFF
7000
7FFF
8000
Salidas
8FFF
9000
Entradas
9FFF
AOOO
AFFF
BOoo
BFFF
COOO
CFFF
0000
¡H
DFFF
EDOO
.'
EFFF
FooO
FFFF
Figura 7.17.
Mapa de memoria para el sistema basado en microprocesador.
www.FreeLibros.me
Figura
;
Las dim
decodificad
todas las JXl
mente deco
teclado, qUI
instrucción
dato de la
identificar l
número hel
Esquem:
da y salida!
entran al de
377m
•
L
r
•
S
INTERFACES CON EL MICROPROCESADOR
.. ,..,....
-
241
Línea de !!elección de dispositivo
~
rl>
O 15
0 14
O 13
O 12
O I1
010
9
8
Decodificador
O 7
l-de-16
O 6
e5
e4
e3
~
~
,
l
Adaptador de
la i nterfaz
de entrada
(9000 -9FFFH)
:t"
c{t
'~.
t~
~'"
2
~',
ALTO
'.
C I
r-<: o s)
t:
Entrada
D
S2 SI So
I
~"
.1 14
A"
413
l
Líneas del bus
de direcciones
.1 12
Línea de !!elección de dispositivo
(OOOO-OFFFH)
Línea de selección de dispositivo
(2000-2FFFH)
Línea de selección de dispositivo
---[>
Figura 7.18.
(8000-8FFFHl
Al a ROM
AlaRAM
Al adaptador
de Ia interfaz
de salida
Utilización de un decodificador 1 de 16 como decodificador de direcciones.
Las direcciones de la ROM y RAM de la Figura 7.16 están completamente decodificadas. La
decodificación completa significa que se decodifican las 16 líneas y por tanto se puede acceder a
todas las posibles direcciones. Sin embargo, las direcciones del puerto de E/S sólo están parcial­
mente decodificadas. Por ejemplo la instrucción «LOA, 9000H» debe introducir datos desde el
teclado, que está referenciado como la posición de memoria 9000H. Considerar también la
instrucción «LOA, 9FFFH». Esta instrucción indica a la CPU que cargue en el acumulador el
dato de la posición 9FFFH, que en este caso también será el mismo dato del teclado. Para
identificar un puerto de E/S con correspondencia en memoria (mapa de memoria) con un único
número hexadecimal, el bus de direcciones de 16 bits debe estar completamente decodificado.
Esquemas completos de decodificación de direcciones para adaptadores de interfaces de entra­
da y salida se muestran en la Figura 7.19. La Figura 7.19a muestra las 16 líneas de dirección que
entran al decodificador de direcciones. Solamente cuando la dirección es 8000H la salida de la
h
1, I
1,
i
1
I
di
www.FreeLibros.me
¡,
..,l1li­
id:
242
:¡; • . ;~[¡;/J!"I.~'·i·
FUNDAMENTOS DE LOS MICROPROCESADORES
--
'tJus de direcciones
Dirección =
8000H
o
O O
O
O
O O
O
O
O
O
O
O
Microprocesador
O O
puerta NOR
salida. Toda!
BAJO, lo ql
salida.
La deccx:
ilustra en la
NOR vaya 2
selección de
en el decodit
Decodificador
de direcciones
¡
j
7.40.
(a)
ve]
Soluc:i
Diagrama lógico para decodificar completamente el dispositivo de salida en la dirección 8000H
Línea de selección de dispositivo
(9000H)
....._ _ _ _ _ _ _.... Al adaptador de la interfaz de entrada
Si
activa
7.41.
t
i
Sí
la inte
Decodificador
de direcciones
7.42.
,
Acud
adapt
selecc
Soluci
l
f
f
Acud
(RA~
Línea de selección de dispositivo
8000H
'------------100Al adaptador de la interfaz de salida
Dirección =
9000H
O O
O
O O
O
O
O
O
O
O
O
O
Soluci
Q
la
si5tea
de dír
decod
.L.';"
7.43.
Bus de direcciones
I
Acud
tán_
Microprocesador
Acud
pletaJ
Soluci
La
en es¡,
por el
(b)
Diagrama lógico para decodificar completamente el dispositivo de entrada en la dirección 9000H
Figura 7.19.
www.FreeLibros.me
7.44. Acud
S,= I
vel_
:1
INTERFACES CON EL MICROPROCESADOR
243
puerta NOR producirá una señal ALTA de selección de dispositivo al adaptador de interfaz de
salida. Todas las demás combinaciones posibles de las 16 entradas pondrán la salida en el nivel
BAJO, lo que inhabilita la línea de selección de dispositivo y al adaptador de la interfaz de
salida.
La decodificación completa de direcciones para el adaptador de la interfaz de entrada se
ilustra en la Figura 7.19b. La dirección 9000H es la única que hará que la salida de la puerta
NOR vaya al nivel ALTO activando así al adaptador de la interfaz de entrada, vía la línea de
selección de dispositivo. Cualquier otra combinación de ceros y unos producirá una salida BAJA
en el decodificador de direcciones, lo que inhabilita al adaptador de la interfaz de entrada.
PROBLEMAS RESUELTOS
7.40. Acudir a las Figuras 7.16 y 7.17. Si la MPU coloca 0300H en el bus de direcciones, la
(RAM, ROM) se direcciona al activar su línea de selección de dispositivo con un ni­
vel _ _ (ALTO, BAJO).
Solución:
Si la MPU en la Figura 7.16 coloca 0300H en el bus de direcciones, la ROM se direcciona al
activar su línea de selección de dispositivo con un nivel BAJO.
7.41. Acudir a las Figuras 7.16 Y 7.17. Si la MPU coloca 8300H en el bus de direcciones, el
adaptador de la interfaz ___ (de entrada, de salida) se direcciona al activar su línea de
selección de dispositivo con un nivel ___ (ALTO, BAJO).
Solución:
Si la MPU de la Figura 7.16 coloca 8300H en el bus de direcciones, se direcciona el adaptador de
la interfaz de salida al activar su línea de selección de dispositivo con un nivel ALTO.
7.42. Acudir a la Figura 7.16. Las 4096 direcciones de ROM entre OOOOH y OFFFH es­
tán ___ (completamente, parcialmente) decodificadas en este sistema.
Solución:
Las 4096 direcciones de ROM entre OOOOH y OFFFH están completamente decodificadas en este
sistema. Las 4 líneas de dirección más significativas (A 12-A 15) son decod'ificadas por el decodificador
de direcciones. Las 12 líneas de dirección menos significativas (Ao-A 11) son decodificadas por el
decodificador de direcciones en la ROM.
7.43. Acudir a la Figura 7.16. Las 4096 direcciones entre 8000H y 8FFFH están ___ (com­
pletamente, parcialmente) decodificadas en este sistema.
Solución:
Las 4096 direcciones en la Figura 7.16 entre 8000H y 8FFFH están parcialmente decodificadas
en este sistema. Las 12 líneas de direcciones menos significativas (Ao-A II ) no están decodificadas ni
por el decodificador de direcciones ni por el dispositivo de salida.
7.44. Acudir a la Figura 7.18. Si las entradas de selección del decodificador 1-de-16 son S3 = 1,
S2 = 1 SI = 1 Y So = O, la salida ___ (número) está habilitada y produce un ni­
vel _ _ (ALTO, BAJO).
www.FreeLibros.me
I
J. .
244
FUNDAMENTOS DE LOS MICROPROCESAOORES
Solución:
Si las entradas de selección del decodificador l-de-16 son iguales a 1110, la salida j 4 está habili­
tada y produce un nivel BAJO.
7.45. Suponer que al sistema de la Figura 7.16 se le añadiese otra RAM de 4K con las direccio­
nes IOOOH a IFFFH. La salida _ _ (número) del decodificador l-de-16 de la Figu­
ra 7.18 podría ser utilizada para excitar la línea de selección de dispositivo de la RAM de
4K añadida.
Solución:
Si se afiadiese otra RAM de 4K con las direcciones en el segmento 1 del mapa de memoria, la
salida I del decodificador de la Figura 7.18 podría utilizarse para excitar la línea de selección de
dispositivo del módulo RAM afiadido.
7.54.
7.55. Si la
de_
Res.
7.56.
7.57.
Dura
consi
a) ell
Res.
7.58.
Las Íl
E/S_
Res.
7.59.
El ada
almac
Res.
7.60.
El <fu
un_
Res.
7.61.
Elsist
Res.
7.62.
Los '"
sistem
Res.
7.63.
El SiSl
los da
Res.
7.64.
En la
MPC
de dat
Res.
7.65.
Despu
actual.
corto I
Res.
La interconexión, o enlace, de las partes en un sistema basado en microprocesador se deno­
mina _ _ .
Res.
7.47.
interfaz.
Una interfaz es una frontera compartida entre dos dispositivos que comparten _ _ (información,
memoria).
Res. información.
7.48. Otras consideraciones sobre la realización de interfaces incluyen la dirección de la transmisión de
datos y la _ _ (formación de matrices. sincronización).
Res. sincronización.
7.49.
Las tres interconexiones o caminos de datos en un sistema basado en microprocesador incluyen el
bus de datos, el bus de _ _ y el bus de _ _ .
Res.
direcciones, control.
7.50. Cuando una MPU deja el control de los buses de datos y direcciones para que un dispositivo
periférico pueda acceder a la memoria principal del sistema sin ir a través de la CPU, se den 0­
mina _ _ _ _ _ _ o DMA.
Res.
7.51.
Lall
TO. :
Res.
PROBLEMAS SUPLEMENTARIOS
7.46.
AClM
impc
Res.
acceso directo de memoria.
Acudir a la Figura 7.2. El bus de direcciones está ____ (completamente, parcialmente) decodificado
en este sistema.
Res. completamente.
7.52.
Acudir a la Figura 7.2. Después de direccionar, un nivel _ _ (ALTO, BAJO) en las entradas es y
OE de la ROM harán que se ejecute una operación de _ _ (lectura. escritura) de memoria.
Res. BAJO, lectura.
7.53.
Acudir a la Figura 7.4. Los pequefios círculos y flechas significan una relación de causa-_ _ en los
diagramas de tiempo.
Res. efecto.
www.FreeLibros.me
,
i
INTERFACES CON EL MICROPROCESADOR
7.54.
habili­
Figu­
lM de
~
lilCÍón,
L~
Lcl
~
La línea de control de la Figura 7.5 habilita la entrada _ _ de la RAM con un nivel _ _ (AL­
TO, BAJO).
Res.
(habilitación de salida), BAJO.
7.S7.
Durante la operación de lectura en la Figura 7.5. las patillas Do a D7 del microprocesador están
consideradas como _ _ (entradas, salidas) y están
(recibiendo datos desde, enviando datos
a) el bus de datos.
Res. entradas, recibiendo datos desde.
,
..."
;;.,
~,~
I
-,
~
j'!
7.S8. Las instrucciones especiales IN (entrar) y OUT (sacar) son utilizadas si se emplea la técnica de
-E/S _ _ (aisladas, de mapa de memoria).
Res. aisladas.
7.S9. El adaptador de la interfaz de salida de la Figura 7. JOb contiene una puerta y un _ _ de 8 bits para
almacenar los datos de salida.
Res. cerrojo (o cerrojo de datos).
7.60. El dispositivo triangular dentro del adaptador de la interfaz de entrada de la Figura 7. I la es
un _ _ de salida.
Res. buffer (o buffer de tres estados).
7.61.
El sistema de la Figura 7.12 utiliza la técnica de EfS _ _ (aisladas, de mapa de memoria).
Res. aisladas.
7.62.
Los buffers de salida del 8212 están _ _ (habilitados por DSl, permanentemente habilitados) en el
sistema de la Figura 7.12.
Res. permanentemente habilitados.
7.63.
El sistema de la Figura 7.14 utiliza una _ _ para notificar al microprocesador cuándo están listos
los datos para ser transferidos a la CPU.
Res. interrupción (o petición de interrupción).
7.64,
En la Figura 7.14 se genera una interrupción por _ _ (el adaptador de la interfaz de entrada, la
MPU)
(antes, después) que la entrada del strobe del 8212 almacene los datos en los cerrojos
de datos.
Res. adaptador de la interfaz de entrada, después.
7.6S.
Después de recibir la petición de interrupción de la Figura 7.14, la MPU completa la instrucción
actual, almacena los contenidos del contador de programa y del registro actual en la pila y salta a un
corto programa llamado _ _,_ _ _ _ _ _ .
""";"0
-~
~
Acudir a la Figura 7.2. Las salidas de la ROM (00-07) están en el estado _ _ (ALTO, de alta
impedancia) cuando no se accede a la unidad de almacenamiento.
Res. alta impedancia.
7.S6.
:tria. la
ión de
deno­
ic:ado
,CS~·
Res.
rutina de servicio de interrupción.
www.FreeLibros.me
-_.
245
7.SS. Si la línea de control de escritura de la Figura 7.5 está en el nivel BAJO, la RAM está en el modo
de _ _ (lectura, escritura).
Res. escritura.
~cio-
L·
:2'
9
~-
I
,d
,
''>-
.'.
•
'~-
- -.
- '•• ­
,.,.
slme
'o
-
246
FUNDAMENTOS DE LOS MICROPROCESADORES
7.66. ___ es una técnica por la cual cada dispositivo de E/S es periódicamente muestreado para deter­
minar si está «listo» y necesita servicio.
l.
Res. escrutinio.
7.67. Acudir a la Figura 7.16. El dispositivo periférico de entrada de este sistema es el _ _ .
Res. teclado.
7.68. Acudir a la Figura 7.16. _ _ (el adaptador de la interfaz de salida, la RAM) almacena los datos de
salida y los mantiene en las entradas del visualizador de siete segmentos.
Res. adaptador de la interfaz de salida.
7.69. Acudir a la Figura 7.16. La sincronización de la transferencia de datos del adaptador de la interfaz de
entrada en este sistema se realiza utilizando un esquema de _ _ (escrutinio de interrupciones,
simple interrupción).
Res. simple interrupción.
I
í'
t
7.70. Acudir a la Figura 7.16. Las direcciones de la ROM y RAM están _ _ (completamente, parcial­
mente) decodificadas en este sistema.
Res. completamente.
7':/1. Acudir a la Figura 7.16. Las direcciones del puerto de entrada y salida están _._
parcialmente) decodificadas en este sistema.
Res. parcialmente.
(completamente,
8.1.
El prin
año el·
maneja
El niio
sistema
CfUill¡
.alimeol
Jos prg
char
)al
El 11
cada di
mayoñ
8085 ti
alguoru
Uo.
menos
más de
lotel8(
Las
bloque
orgamz
y un te:
de 6 bil
las señé
un regl'
La,
interflU
2048 x
El8
sadores
microp
de esto
microo
I
•
www.FreeLibros.me
d.·.
1
.
::;...
Capítulo 8
EL MICROPROCESADOR
INTEL 8080/8085
8.1. INTRODUCaON
.,.
J
~
I
I
E! priIner microprocesador fue introducido por Inte1 eorporation en 1971. lnte! introdu'o ese
año e
e 1ts y e
e
Its. En 1974, Inte mtr uJo el microprocesador 8080, que
maneja palabras de datos de 8 bits y tiene !6 líneas de dirección y un puntero de pila de 16 bits.
El microprocesador Intel 8085 es una versión mejorada del 8080. Integra el reloj, control del
~tema y prioridad de las interrupciones en el el microprocesador, reduciendo así el número de
g utilIzados en la mayoría de los SIstemas. El 8085 tambIén opera con una sencIlla fuente de
..alimentación de +5 V. La MPU 8085 utiliza las mismas instrucciones que el 8080, haciendo así
Jos programas compatibles, El microprocesador 8085 tiene dos instrucciones más para aprore­
char las características del hardware añadido.
El microprocesador genérico introducido en los capítulos anteriores fue una versión simplifi­
cada de la MPU del 8080/8085. Una vez familiarizado con el microprocesador genérico, la
mayoría de los estudiantes tendrán poca dificultad para aprender la MPU del 8085. La MPU
8085 tiene más registros internos, muchas más posibles instrucciones, más señales de control y
algunas características diferentes cuando se compara con el microprocesador genérico.
Una tendencia en la evolución de los microprocesadores ha sido integrar más funciones en
menos O. Un sencillo sistema basado en microprocesador, hace poco tiempo, habría necesitado
más de 20 el. El sistema mostrado en la Figura 8.1 solamente contiene tres el. La MPU es el
Intel 8085 que controla el bus del sistema y dos el especiales de interfaz de periféricos.
Las pastillas de interfaz de periféricos, diseñadas especialmente, que se muestran en forma de
bloque en la Figura 8.1 son los el 8155 y 8355. El 8155 contiene 2048 bits de RAM estática,
organizada como una memoria de 256 x 8 bits. Esta unidad también contiene tres puertos de E/S
y un temporizador. Dos de las E/S son puertos de propósito general de 8 bits. La unidad restante
de 6 bits puede ser utilizada como puerto de entrada, como puerto de salida o como camino de
las señales de control para los dos puertos de 8 bits. El 8155 es programable y también contiene
un registro de status y un contador temporizador de 14 bits.
La otra pastilla mostrada en el diagrama de bloques de la Figura 8.1 es el el periférico de
interfaz 8355. El 8355 contiene 16.384 bits de ROM y está organizado como una memoria de
2048 x 8 bits. El 8355 también contiene dos puertos de E/S de propósito general de 8 bits.
El 8080/8085 y sus parientes de 16 y 32 bits se han convertido en algunos de los microproce­
sadores de propósito general más ampliamente utilizados en el mundo. Entre los parientes del
microprocesador 8080/8085 están los Intel 8086, 8088, 80186, 80188, 80286 y 80386. Algunos
de estos circuitos integrados fueron seleccionados para utilizarlos como epu de las populares
microcomputadoras IBM.
247
www.FreeLibros.me
~ I-.'~_ _'
r
_1"
¡
,1
¡
248
FUNDAMENTOS DE LOS MICROPROCESADORES
,( ~
8085
MPU
,­
"
El se]
líneas de
se cona:
patillas !
micropn
ción de
tar las P'
f!.ecueo<
Algo
RAM 8155
256 x 8 y
temporizador
-
(
ROM 8355
2k x 8
y E/S
Figura 8.1. Diagrama de bloques del sencillo sistema 8085
que utiliza pastillas especiales de interfaz.
8.2. FUNCIONES Y DIAGRAMA DE PATILLAS DEL 8085
El microprocesador de 8 bits Intel 8085 está ubicado en un encapsulamiento de doble línea (OIP)
de 40 patillas. El diagrama de patillas de la MPU 8085 se reproduce en la Figura 8.2a. En la
Figura 8.2b hay una tabla donde se resumen los nombres y descripciones de las patillas. La
información que da el fabricante puede especificar un microprocesador 8085 u 8085A. La unidad
8085A es una versión ligeramente revisada del microprocesador original 8085. Versiones poste­
riores incluyen dispositivos de más alta velocidad como el 8085A-2, .,8085AH, 8085AH-2 Y
8085AH~1.
>lace.., d'~,Jt.I...... rl<J. g. 2.(~) 'j (". t·Z (f). '.
.
El mIcroprocesador genenco utIlIzaba 16 patillas para las hneas de dlrecclOn y 8 patIllas para
las conexiones del bus de datos. Con las funciones añadidas del 8085, el DIP de 40 patillas no
...t,¡ene patillas suficientes para todas las entradas y salidas. Por esa razón, el fabricante utiliza las
, atilIas 12 a 19 como líneas de bus de propósito doble de direcciones/datos (ADo-AD7 ). Se dice
que esta unidad tiene un bus multiplexado e atos;' irecciones de 8 bits. Las 8 líneas de direc­
ción menos significativas comparten las patillas con las 8 líneas del bus de datos. Multiplexar
significa primero seleccionar una y despuéS otra, etc. Por tanto, multiplexar el bus de direcciones/
datos significa primero utilizar el bus para enviar una dirección y a continuación enviar o recibir
datos vía el mismo bus. El 8085 tiene una señal especial para informar a los periféricos cuando el
bus de direcciones/datos envía una dirección y cuando funciona como bus de datos. La seifiil
especial se denomina señal de control de habilitación del cerro '0 de direCCIOnes (ALE). Observar
Que las patlllas del bus de direcciones/datos son bidíreccionales o pueden ser e tres es dos o alta
impedancia (también llamadas triestados)., La patilla ALE es una salida de control.
,
www.FreeLibros.me
res a la!
escritur.
enviar (
unidad)
ción de
bUses 3
reiniciaJ
reiniciaJ
,- cializac
una seD
Las
MPU B
j
,
, J_ _- - - - - - ­
EL MICROPROCESADOR INTEL 8080/8085
•
249
El 8085, igual que el microprocesador genérico, tiene un total de 16 líneas de dirección, Las 8
líneas de dirección más significativas están conectadas a las patillas Ag a A '5 en la Figura 8.2. Estas
se conectan directamente al bus de direcciones como en el microprocesador genérico. Estas
patillas son salidas o pueden ser de tres estados. Otras patillas similares a las encontradas en el
.m.icroprocesador genérico son las de alimentación (Va y Vs,) conectadas a una fuente de alimenta­
ción de +5 V. ~l microprocesador 8085 tiene circUlterÍa de reloj permanente sin más que conec­
tar las patillas de entrada X, y X2 a un cristal. La frecuencia interna de la MPU será la mitad de la
frecuencIa del cnstal.
- Algunas de las patillas del 8085 listadas en la Figura 8.2 realizan funciones de control simila­
res a las observadas en el microprocesador genérico. Las salidas de control de lectura (KD) y
escritura (iVR) son utilizadas para infonnar a la memoria o dispositivos de E/S cuando hay qu~
-jUviar o reCIbIr datos vía el busde datos (realmente por el bus de direcciones/datos en esta
unidad). La entrada de reinicialización R
A IZA 1 N
actúa corno la reinicializa­
ción de la" MPU genérica, ya que el contador de programa se pone, a reInICIa Izar, a
H. Los
buses de datos y direcciones y líneas de control están en el estado de tres estados durante la
reinicialización. El contenido de los registros internos también puede ser alterado durante una
reinicialización. La patilla REINICIALIZACION OUT está asociada con la operación de reini­
cialización. Cuando la MPU se está reinicializando, la patilla REINICIALIZACION OUT envía
• una señal a los penféncos que les mfonna que el SIstema se va a reinicializar.
.ha salIda de reloj (CLK) del microprocesador 8085 de la Figura 8.2 op~ igual que la de la
MPU genérjea. La entrada de petición de interrupción (lNTR) al 8085 es una interrupción de
i
'
.
ii,1
XI
X2
REINIClALIZAClON OUT
SOD
SID
'TRAP
RST7,5
RST 6.5
RST 5,5
"..
,
(DIP)
En la
15. La
"idad
:e1-2 y
~.
f.
t
'01:
,;,
\
.. ,J.r
mes/
cibir
jo el
(/
ei\al
INTR
INTA
ADO
ADI
AD2
AD3
AD4
AD5
AD6
AD7
Vss
(a)
ar
1
2
3
4
5
6
7
8
9
\O
II
12
13
14
15
16
17
18
19
20
,
40
39
38
37
3,6
\ "35
'­
8085
34
33
32
31
30
29
28
27
26
25
24
23
22
21
Vcc (+ 5 V)
J
) 1\1Í~,"
\
HOLD"­
---~
HLDA
CLOCK(OUT)
REINICIALlZACION IN
READY
IOtM
SI
r.J~
RO
,r-.
WR
I '
ALE.
SO
~ ~"""
(/ .
AI5
AI4
AI3
AI2
AII
AIO
A9
A8
Diagrama de patillas de la MPU 8085
- "-j
alta
,·,·f.'.'
,
.f
-.
~
Figura 8.2.
~
www.FreeLibros.me
lí
--~,
'
"
..
f
250
FUNDAMENTOS DE LOS MICROPROCESADORES
•
SO. SI
READY
SID
SOD
HOLD
HLDA
INTR
TRAP
RST 5.5
RST 6.5
RST 7.5
INTA
I
Bidireccional, tres estados
Salida. tres estados
Salida·
Salida, tres estados
Salida, tres estados
Salida, tres estados
Salida
Entrada
Entrada
Salida
Entrada
Salida
Entrada
Entrada
Bus de direcciones/datos
Bus de direcciones
Habilitación del cerrojo de dirección
Control de lectura
Control de escritura
E/S o indicador de memoria
Indicadores del estado del bus
Petición de estado de espera
Entrada de datos serie
Salida de datos serie
Petición de mantenimiento
Conocimiento de mantenimiento
Petición de interrupción
Petición de interrupción no
'--...:
enmascarable
AOO-AD7
A8-A15
ALE
RD
WR
IO/M
Peticiones de interrupción hardware
de vectorizadas
"'.
REINICIALlZACION IN
REINICIALlZACION OUJ:-­
Xl. X2
CLK
Vcc, Vss
Conocimiento de interrupción
Reinicialización del sistema
Reinicialización de los periféricoS­
Conexiones al cristal o RC
Señal de reloj
Alimentación, tierra
bit de dato
la instrucc
según espe
Consíd
niente de 1
~os.Sil,
k~tura o e
donde pen
MPU ente
Tipo
Descripción
Nombre de patilla
I
Entrada
Entrada
Entrada
Salida
Entrada
Salida
Entrada
Salida
~
J
- .
de tratami
Consid
de manter
otro dispo
-¿iones de,
las transfe­
.WR e 101
máquina I
derecha dí
So y S se
DespuI
• Esta salida es de tres estados en el 8085. pero no en el 8085A.
(b)
Nombres y funciones de las patillas
8085 tiene
estas cara<
Figura 8.2. (continuación).
I
"
propósito general como en el microprocesador genérico. Sin embargo, dé forma distinta a la
interrupción del microprocesador genérico, la INTR del 8085 puede ser habilitada o inhabilitada
por instrucciones software. Además de la petición regular de interrupciones (lNTR), la MPÚ
8085 tiene otras cuatro entradas de interrupción. Estas son las patillas de las entradas TRAP,
RST 7.5, RST 6.5 y RST 5:t TRAP es la interrupción de más alta prioridad, seguida QQ.r
RST 7.5, RST 6.5, RST 5.5 y finalmente por la interrupción de más baja prioridad, VNTR. TRAP
o cualquiera de los tres rearranques (RST 7.5, RST 6.5, RST 5.5) hacen que la MPU salte a una
subrutina en una dirección específica de llamada., Las interrupciones de rearranque pueden ser
habilitadas e inhabilitadas por software, mientras que la interrupción TRAP no puede ser inhabi·
litada de esta form~La Íllterrupción INTR salta a una dirección dictada por una instrucción
especial recibida, de un dispositivo periférico, cuando es activada la salida de conocimiento de
interrupción (lNTA) de la MPU. . . . _ . _ - _ .
El micro rocesador 8085 tiene una entrada serie una salida serie primitivas. Estas son la.s
J2atiUas SID (entrada de datos serie) y SOD (salida de datos serie) mostra as en la Figura 8.2. El
www.FreeLibros.me
. í
_#~.
•
Xi'
I
EL MICROPROCI;iADOR INTEL 8080/8085
•
251
bit de datos de la patilla de entrada SID es cargado en la posición MSB (bit 7) del acumulador por
la instrucción RIM del 8085. La patilla de salida SOD se pone en set (1) o reinicialización (O)
según especifique la instrucción SIM del 8085.
Considerar la entrada READYal microprocesador 8085 de la Figura 8.2. Esta entrada prove­
niente de un dispositivo periférico informa al microprocesador que está listo para enviar o recibir
datos. Si la entrada READY del dispositivo periférica está en el nivel BAJO, durante un'Ciclo
.kctura o escritura, la MPU lo interpreta como una petición para entrar en el estado de espera,
donde permanecerá hasta que las señales periféricas estén listas para transmitir o recibir datos. La
MPU entonces procederá con el ciclo de lectura o escritura. La entrada RE4DY es manual
Cliarn:to-seutilizalfmemoñas o'penféncOsque son~demasladó íéntos comparados con fa-velocidad
dé traiamiento del microprocesador.
... - _.., .....
.
Considerar las patillas de entrada HOLD (mantenimiento) y de salida HLDA (conocimiento
de mañienimiento) de la MPU 8085 de la Figura 8.2. La entrada HOLD
la MPU que
otr;(lispositivo quiere utilizar los buses de direccion~s y datos. Esto'puede'üéurrirdurante opera-­
-¿iones de acceso directo a memoria. Después de recibir una entrada HOLD:"IaCPU completará
laS-transferencias actuales de datos en los buses. Entonceslas pati11asCJ:edirecclOnes, (tatos, RD,
"'W'R e lO/M del 8085 se ponen en alta impedancia para no interfenrcori1as transferenCias de­
datos en los buses. Una salida HLDA indica a un periférico que se ha recibido una petición de
.núinten'irIÍiento y que el microprocesador abandonará el control de los buses en el siguiente cicló
de' reloj.
/
...
- _Las saÍidas lO/M, ,~..Q.-t.§'...L..S()n señales de control que notifican a los periféricos el tipo de ciclo
máquina que está reahzando la MPU. Los tip9§...<!e_fic;!Q..!lláquina. ªp~recenen la COlumn~_)
derecha de la Figura 8.3. La combinación adecuada de las señales de salida de las patillas lO/M,
.
So y SI se detalla a la izquierda.
Después de esta breve visión genera] de las funciones de las patillas, se observa que la MPU
8085 tiene algunas características que no aparecen en el microprocesador genérico. La mayoría de. .
estas características y algunos de sus usos se explorarán en las secciones p o s t e r i /
de
~ _.
J
"iI
\ ti
.\
¡
noÜficaa
,
,.
Señales de control del 8085
la
:ada
\lPU
lta a
J
.~4P.
'.: PQr
TRAP
e a una
den ser.
'1abi­
rueción
;~tO de
1
lO/M
SI
O
O
1
O
I
I
O
O
l
I
O
1
*
*
*
.
So
I
l
O
O
I
l
O
x
x
x
x
1
Status de ciclos de máquÍ«'la
Escritura en memoria
Lectura de memoria
Escritura de E/S
Lectura de E/S
Búsqueda del código de op
Conocimiento de interrupción
Alto
Mantenimiento
Reinicialización
• - condición de tres estados.
x - no especificadó.
son la.:;
,8.2. El
Figura 8.3. Ciclos máquina del 8085.
www.FreeLibros.me
~-
\,
're,. j
ádU$liSJII1'.a 1I'11tl••UftUbiJ[JEU1Ua:e. .",
252
.~
FUNDAMENTOS DE LOS MICROPROCESAOORES
So
PROBLEMAS RESUELTOS
de
8.1.
El lntel 8085 se denomina un microprocesador de _ _ (número) bits porque las pala­
bras del acumulador tienen esta cantidad de bits.
8.8.
El lntel 8085 se denomina un microprocesador de 8 bits porque las palabras del acumulador
tienen este número de bits.
\;f
El bus de direcciones/datos se dice que es ___ (decodificado, multiplexado) porque
alterna funciones como bus de direcciones y como bus de datos.
Solución:
~.
pt
~
Solución:
8.2.
Ac
SI
i
a
•
Al
El bus de direcciones/datos se dice que es multiplexado porque alterna funciones como bus de
direcciones y bus de datos.
í
.J
:!
8.3.
~
t
La salida ALE (habilitación del cerrojo de direcciones) la utiliza el microprocesador 8085 pata
notificar a los periféricos cuándo se utiliza como bus de direcciones el bus de direcciones/datos.
8.4.
Acudir a la Eigura 8.2. El microprocesador 8085 utiliza una fuente de alimentación
de _ _ V.
Solución:
De acuerdo con la Figura 8.2; el microprocesador 8085 utiliza una fuente de alimentación de
+5 V.
8.5.
Acudir a la Figura 8.2. Si las dos salidas lO/Xl y lVR estuviesen en BAJA, el microproce­
sador estaría _ _ (leyendo, escribiendo) en un(a) ___ (puerto de E/S, posición de
memoria).
Solución:
Si las dos salidas 10/M y WR estuviesen en BAJA, la MPU estaría escribiendo en una posición
de memoria. Las barras superiores indican que un nivel BAJO activa la M, o memoria, en la señal
lO/M y una escritura en la señal de salida WR.
/
4
8.6.
Acudir a la Figura 8.2. Si el microprocesador estuviese en un ciclo de lectura y la entrada
READYestuviese en el nivel BAJO, la CPU _ _ (terminaría, iría al estado de espera
hasta que el dispositivo estuviese listo y entonces terminaría) inmediatamente el ciclo de
lectura.
. Solución:
Si la MPU estuviese en un ciclo de lectura y la entrada READYestuviese en el nivel BAJO, la
CPU iría al estado de espera hasta que el dispositivo periférico estuviese listo y entonces finalizaría el
ciclo de lectura.
8.7.
. i
di
,
Acudir a la Figura 8.2. La salida ___ la utiliza el microprocesador para notificar a los
periféricos cuándo se utiliza como bus de direcciones el bus de direcciones/datos.
Solución:
Acudir a la Figura 8.3. Durante un ciclo de máquina de búsqueda de código de op, las
señales de control So= _ _ (O, 1), S¡= _ _ (O, 1) e IOiXl = _ _ (0, 1).
www.FreeLibros.me
,
"
8.9.
di
~~~
"
'-1'
8.3. Al
~;
i
1-;0
<1'::..,
•
~
La orga1l
ra 8.4. El
al bus (
(AD 7-AJ
xado (Al
ALE esa.;
Las e
8 bits. L
registros
unidad 4
L), punl
8 bits. l
Figura 8
lNTA ~
aritmé'li
tempor.
dores &
El f'
instrua:
nes entl
deben r
periféri
control
muestr.
)
EL MICROPROCESADOR INTEL 8080/8085
253
Solución:
De acuerdo con la Figura 8.3, durante un ciclo máquina de búsqueda de código de op, las señales
de control So~ 1, SI = 1 e 101M = o.
8.8.
Acudir a la Figura 8.2. Listar las patillas de entrada en el el microprocesador 8085 que
pueden considerarse interrupciones.
Solución:
Las patillas de entradas de fa MPU 8085 que se consideran interrupciones son la INTR. TRAP,
RST 7.5, RST 6.5 y RST 5.5. Algunas pueden considerar también la entrada de RE/NICIALIZA­
CION IN (reinicialización) como una interrupción porque está provocada por un dispositivo exter­
no y el contador de programa bifurca a un nuevo segmento de programa.
8.9.
de
Acudir a la Figura 8.2. Las patillas de E/S serie están etiquetadas _ _ y _ _ en el
diagrama de patillas del microprocesador 8085.
Solución:
De acuerdo con la Figura 8.2. las patillas de E/S serie están etiquetadas SID y SOD en el
diagrama de patillas del microprocesador 8085.
!!
t
......
:~
"1
r:'.~
de
:
;:e­
de
(in
'lal
la
el
J~_
8.3. ARQUITEcrURA DEL 8085
\
~
NU
La organización interna o arquitectura del microprocesador Intel 8085 se reproduce en la Figu­
ra 8.4. El 8085 tiene un contador de programa y un cerrojo de direcciones de 16 bits que alimenta
al bus de direcciones dedicado (AIS-A g) y al bus de direcciones/datos de doble propósito
(AD 7 -ADo)' Los datos paralelos entran y dejan la MPU vía el bus de direcciones/datos multiple­
xado (AD 7-ADo)' El bus de direcciones/datos transmite una dirección cuando la línea de control
ALE está en ALTA y datos cuando la línea ALE está en BAJA.
Las entradas o salidas de datos a la unidad se realizan a través del bus de datos interno de
8 bits. Los datos pueden fluir desde el bus de datos interno al acumulador de 8 bits o a los
registros temporales, señalizadores, registro de instrucción, unidad de control de interrupción,
unidad de control de E/S serie, cualquiera de los registros de propósito general (B, C, D, E, H Y
L), puntero de pila de 16 bits, contador de programa de 16 bits, o buffer de datos/direcciones de
8 bits. Las entradas y salidas serie (SID y SOD) se muestran en la parte superior derecha de la
Figura 8.4. Las entradas de interrupción (lNTR, RST 5.5, RST 6.5. RST 7.5 y TRAP) Y la salida
7NTA (conocimiento de interrupción) se muestran en la parte superior izquierda. La unidad
aritmético-lógica (ALU) está alimentada por dos registros de 8 bits (registro acumulador y registro
temporal) como en el microprocesldor genérico. Los flip-flops señalizadores tienen cinco indica­
dores de status en lugar de dos como en el microprocesador genérico.
El registro de instrucción alimenta al decodificador de instrucciones, el cual interpreta la
instrucción actual y determina el microprograma que debe seguir. El decodificador de instruccio­
nes entonces instruye a las secciones de control y temporización sobre la secuencia de eventos que
deben realizarse. La sección de temporización y control coordina las acciones de procesador y los
periféricos. Las líneas de control interno no se muestran en la Figura 8.4, pero las salidas de
control y de status sí. Las entradas de REINICIALIZACION, HOLD y READY también se
muestran como entradas de la sección de control y temporización del microprocesador 8085.
www.FreeLibros.me
"
r:,­
_,.h\
··t·"·
J
~--~
444 « ,#
254
FUNDAMENTOS DE LOS MICROPROCESADORES
Seiializ,ado,
Los cinc
El señali:a
examinado
\ flow» (rero
actúa como
I do si el señ
(8)
ORODlfKAooR
,
H
...
o
REG.B
m
INSTRl.:('nO~ES
REO.
CODlFI(AClON
DE ("lelOS
REQ.H
MAQUINA
CO~TAOOR
18'
REO.
e
18,
(8)
R~EG,
E
REG L
DE PROGRAM<\
PUr-.:TERQ DE P1LA
,..
lIt,¡
ARRA" DE
REGISTROS
¡loto)
{ .... .,. ~y
FUENTE DE
ALlMENTAC10"l
.j
..... OND
TEMPORIZAC10N" CONTROL
"00_7
BUS DE DATOS/DIRECOONES
Figura 8.4.
Diagrama funcional de bloques de la MPU 8085. (Cortesla de 'nte' Corporation.)
'1
El sem
señalizado
en el miel'
El seri4
después de
del dato Il
signo a 1 1
Registros
Igual que el microprocesador genérico, la MPU 8085 utiliza registros de 8 y 16 bits. El 8085
tiene 8 registros direccionables de 8 bits. Seis de estos registros pueden utílizarse como registros de
8 bits o como registros pares de 16 bits. Además, el 8085 contiene dos registros más de 16 bits.
Los registros del 8085 son los siguientes:
1. El acumulador (registro A) es el foco de todas las operaciones del acumulador que inclu­
2.
3.
4.
5.
1!
yen instrucciones aritméticas, lógicas, de carga y almacenamiento y de E/S. Es un registro
de 8 bits.
Los registros de propósito general BC, DE y HL pueden ser utilizados como seis registros
de 8 bits o como tres registros de 16 bits dependÍendo d~ la instrucción que se vaya a
ejecutar. Como en el microprocesador genérico, el registró par HL llamado puntero de
datos por Intel) puede ser utilizado para apuntar a direcciones. Pocas instrucciones utili­
zan los registros Be y DE como punteros de dirección, ya que normalmente se utilizan
como registros de datos de propósito general.
El contador de programa (PC) siempre señala la posición de memoria de la siguiente
instrucción que se va a ejecutar. Siempre contiene una dirección de 16 bits.
El puntero de pila (SP) es un puntero de dirección de propósito especial (o puntero de
dato) que siempre apunta a la parte superior de la pila de la RAM. Es un registro de
16 bits.
El registro de señalizadores contiene chco señalizadores de 1 bit que contienen informa­
ción del estado de la CPU. Estos señalizadores son utilizados entonces por instrucciones
de bifurcación condicional, llamada y vuelta de subrutina.
,
l·,
www.FreeLibros.me
•
Elscñt:
dorde la [
dor es util
El seri4
un númer
embargo.
paridad di
00110011
(4). Sin el
impar (5\
,I
I
I
\
Puntero.
Elpw
pila puec:l
micropro
la pila y ~
A
~-=A'~~"~"-,~----~,.~---~--.----~--==========~#~-=:~~
,
.
", EL' MICROPROCESADOR INTEL 8080/8085
255,
I
Señalizadores
t
Los cinco señalizadores encontrados en la CPU del 8085 están representados en la Figura 8.S.
El señalizador de arrastre (CY) es puesto a 1 ó O por operaciones aritméticas, y su status es
\ examinado por las instrucciones del programa. Como en el microprocesador genérico, un «over­
Iflow» (rebose) de una suma de 8 bits hará que el bit CY se ponga a l. En la resta el señalizador CY
actúa como un señalizador de «préstamo», indicando que el minuendo es menor que el sustraen­
do si el señalizador está a 1.
¡,i
1:
11
'"
"
J,,! i '
s
Z
AC
P
CY
1h '
1
Figura 8.5.
Sel'lalizadores del registro de status del.8085.
~
El señalizador de cero (2) se pone a l si el resultado de ciertas instrucciones es' cero. El
señalizador de cero está a Osi el resultado no es cero. La acción del señalizador de cero se observó
en el microprocesador genérico.
El señalizador de signo (S) indica la condición del bit más significativo del acumulador
después de la ejecución de instrucciones aritmético-lógicas. Estas instrucciones utilizan el MSB
del dato para representar el signo del número contenido en el acumulador. Un señalizador de
signo a 1 representa un número negativo, mientras que a O significa un número positivo.
El señalizador de arrastre auxiliar (AC) indica un «overflow)) o arrastre del bit 3 del acumula­
dor de la misma forma que el señalizador de arrastre indica un «over.flow) del bit 7. Este señaliza­
dor es utilizado comúnmente en aritmética BCD (decimal codificado binario).
El señalizador de paridad (P) examina el número de bits 1 del acumulador. Si éste contiene
un número par de 1, se dice que existe paridad par y el señalizador de paridad se pone a 1. Sin
embargo, si el acumulador contiene un número impar de 1 (paridad impar), el señalizador de
paridad del 808S se pone a O. Por ejemplo, si una instrucción ADD da como resultado la suma
00110011 2 en el acumulador, el señalizador de paridad estará a 1 porque hay un número par de 1
(4). Sin embargo, si la suma fuese 101011102, el señalizador P estaría a O porque hay un número
impar (S) de 1 en el acumulador.
,
tfu­
lIro
de
nte
de
de
I
Puntero de pila
la­
I
'
El puntero de pila contiene la dirección del último byte introducido en la pila. El puntero de
pila puede ser inicializado para utilizar cualquier parte de la RAM como pila. Como en el
microprocesador genérico, el puntero de pila se decrementa cada vez que se introduce un dato en
la pila y se incrementa cada vez que se saca el dato de la pila.
les
j '" f
\
1: i
'¡¡
,ijl
;""I'i- ­
~¡
www.FreeLibros.me
1f
...-
'iIbi.",..
1(1,
3$ " ¿ ~
I
256
FUNDAMENTOS DE LOS MICROPROCESADORES
Unidad lIritmético-lógicll
I
La ALU está muy relacionada con el acumulador, registro de señalizadores y algunos registros
temporales que son inaccesibles al programador. Las operaciones aritméticas, lógicas y de despla­
zamiento circular son realizadas en la ALU. Los resultados normalmente se depositan en el acu~
mulador.
.I
.
-.
Registro de instrucción y decodificador
j
Durante una búsqueda de instrucción, el primer byte de la instrucción, el código de oP. es
transferido al registro de instrucción de 8 bits. El contenido del registro de instrucción está dispo­
nible al decodificador de inslrucciones. La salida del decodificador, a través de puertas y con
señales de temporización, controla los registros, ALU y buffers de datos y direcciones. Las salidas
del decodificador de instrucciones y del generador de reloj interno producen las señales de tempo­
rización de ciclo y estado de la máquina.
:, ¡
,
¡
l
-1
t1
,
t
1
i
~4~j
Generador interno de reloj
La MPU 8085 incorpora un generador completo de reloj en su pastilla. Requiere solamente la
adición de un cristal de cuarzo para establecer la temporización de su operación. El8085A puede
utilizar un cristal de hasta 6.25 megahertzios (MHz). La versión 8085A-2 del 8085 opera con un
cristal de hasta 10 MHz. La patilla de salida CLK es una salida de reloj con buffer que tiene una
frecuencia una vez y media la frecuencia del cristal. Las entradas de reloj del 8085AH, 8085AH-2
y 8085AH-I tanlbién pueden ser excitadas con cristales de 6, 10 ó 12 MHz.
1ntelT1lpciones
Las cinco entradas de interrupción hardware están listadas por prioridades en la columna
izquierda de la Figura 8.6. La interrupción de más alta prioridad es la de la entrada TRAP. Una
vez que alcanza el nivel ALTO, la entrada TRAP hará que el 8085 guarde en [a pila el contenido
del contador de programa y salte a la posición de memoria 0024H. La entrada TRAP no puede
ser inhabilitada y por tanto se denomina interrupción no enmascarable.
Las tres siguientes interrupciones hardware listadas en la Figura 8.6 se denominan reinicializa­
doras (para reinicializar el programa en una nueva posición de memoria). La interrupción
RST 7.5 hace que el 8085 guarde en la pila el contenido del contador de programa y salte a la
posición de memoria 003CH. La siguiente interrupción de prioridad más elevada es la RST 6.5,
que hace que el 8085 guarde en la pila el contenido del contador de programa y salte a la posición
de memoria 0034H. La interrupción de prioridad más baja RST 5.5 hace que el 8085 guarde en
la pila el contenido del contador de programa y salte a la posición de memoria 002CH.
La interrupción hardware de más baja prioridad es la entrada INTR. que hace que el procesa­
dor busque una instrucción desde una fuente externa especial. Las cuatro últimas interrupciones
pueden ser habilitadas o inhabilitadas por software.
1,
ji
I!
. t.
Un SI
especial
BAJO sa
del dato
(B6 ) del,
LaeJ
general.
1 bit. En
y SIM".
nico RO
que el 1
mask).
Entradll y slIlidll serie
Las patillas de entrada y salida serie del 8085 ayudan a minimizar la cuenta de pastillas en los
pequeños sistemas al proporcionar un puerto de interfaz serie. La instrucción especial RIM del
8085 transfiere datos desde la patilla de entrada serie (SID) al bit 7 del acumulador. Esto se ilustra
en el ejemplo de la Figura 8.7a, donde se transfiere un nivel ALTO desde la entrada SID a la
posición MSB del acumulador.
www.FreeLibros.me
Los I
ra 8.8. E
veces se
El Q(
Figura 8
también
.
",
..
•
L,
EL MICROPROCESADOR INTEL 8080/8085
)
Nombre
Prioridad
espla­
~ acu-
iispo­
~- con
aJidas
mpo­
1
•
"
\
.-~
L.
2
3CH
RST6.5
3
34H
RST5.s
4
2CH
INTR
s
(2)
Figura 8.6.
Una
mido
lUede
- _Jn
=a
la
r6.5,
.~on
'.
en
¡:esa­
ones
.~
."
t­
.);
":
Interrupciones hardware de la MPU 8085.
(Cortesía de Intel Corporation.)
mask).
.
..
Flanco de subida
AND nivel alto
hasta que sea
muestreada
Flanco de subida
(cerrojo)
Nivel alto hasta
que sea
muestreada
Nivel alto hasta
que sea
muestreada
Nivel alto hasta
que sea
muestreada
Un solo bit serie puede sacarse vía la patilla de salida serie (SOD) utilizando la instrucción
especial SIM del 8085. La operación de salida serie está explicada en la Figura 8.7b. Un nivel
BAJO sale a la patilla SOD de la Figura 8.7b vía el cerrojo de salida serie. Observar que la fuente
del dato era el bit 7 del acumulador. Para que se produzca la salida ~rie hay que poner a 1 el bit 6
(B6 ) del acumulador.
La entrada serie (SID) también puede utilizarse como una entrada de TEST de propósito
general, mientras que las patillas de salida serie (SOD) pueden servir como salida de control de
1 bit. En una sección posterior sobre el repertorio de instrucciones del 8085 las instrucciones RIM
y SIM'se explicarán con más detalle. Son instrucciones que tienen varios propósitos. El nemotéc­
nico RIM realmente significa máscara de lectura de interrupción (read interrupt mask), mientras
que el nemotécnico SIM significa máscara de inicialización de interrupción (set interrupt
!L za­
n los
[ del
IStra
a la
RST 7.5
Tipo
de disparo
NOTAS;
(1) En el caso de TRAP y RST 5.5-7.5, el contenido del contador
de programa se introduce en la pila antes de que ocurra la
bifurcación.
(2) Depende de la instrucción que suministra al 8085A, el 8259 u
otro circuito, cuando se tenga conocimiento de la interrupción.
..
"H-2
Dirección (l)
a la que se bifurca
cuando ocurre
la interrupción
24H
TRAP
L,
Dte la
)uede
)n un
e una
257
I
Los registros programables de" unidad microprocesadora 8085 están resumidos en la Figu­
ra 8.8. Estos son los registros de principal interés para el programador. Este tipo de diagrama a
veces se denomina modelo de programación para la MPU 8085.
El acumulador principal de 8 bits se etiqueta con A en el modeló de programación de la
Figura 8.8. Los otros registros de propósito general de 8 bits (etiquetados B, C, D, E, H y L)
también se denominan, comúnmente, acumuladores secundarios/contadores de datos. Este nom­
,­
1
t¡
1
!!
~
~-
www.FreeLibros.me
...
[Q+~$ACWl
x....
i
;;;Ud. 2 "
¡g14i4JiéAJ?·· ­
\
258
\
I
FUNDAMENTOS DE LOS MICROPROCESADORES
MPU
Entrada
8085
serie
---+-1 SID
8.10.
de
Acumulador
Antes de la operación
(a)
RIM
1J
:J
Después de la operación
Instrucción RIM del 8085 para entrada serie
!
j
MPU
8085
8.11.
Cerrojo
SOD
Salida
serie
s.j
_ - - . 1 O f-------l~
j
Acumulador
8.12.
Después de la operación
Antes de la operación
,
A.!
na
SIM
(b)
Ac
(Al
Instrucción SIM del 8085 para salida serie
~
Figura 8.7.
8.13.
~
ca
s.I
bre sugiere su doble uso como acumuladores auxiliares o contadores de datos (o punteros de
dirección). El puntero de pila (SP) de 16 bits y el contador de programa (PC) también se mues­
tran en el modelo de programación de la Figura 8.8.
L~
Lo!
Palabra de status del programa
(señalizado res)
8.14.
Acumu"lador principal
PSW
(8)
A
(8)
B
(8)
C
(8)
D
(8)
E
(8)
H
(8)
L
(8)
Sol
""~
Acumuladores secundarios/contadores de datos
8.15.
Cit
8~
SeI
SP
(16)
Puntero~e pila
PC
(16)
Contador de programa
CCII
am
8.16.
Figura 8.8.
EsI
IU
Modelo de programación del microprocesador 8085.
www.FreeLibros.me
B4
ser.
j
_J P
•
EL MICROPROCESADOR INTEL 8080/8085
259
PROBLEMAS RESUELTOS
8.10.
Acudir a la Figura 8.4. El microprocesador 8085 tiene- un contador de programa
de
(número) - bits que alimenta el cerrojo de direcciones. En el cerrojo de direc­
ciones la dirección es dividida en dos partes y enviada a los periféricos vía el bus
de _ _ y el bus de _ _ / _ _
Solución:
De acuerdo con el diagrama de la Figura 8.4, el microprocesador 8085 tiene un contador de
programa de 16 bits que alimenta el cerrojo de direcciones. En el cerrojo de direcciones la direc­
ción es dividida en dos y enviada a los periféricos vía el bus de direcciones y el bus de direcciones/
datos.
8.11.
Acudir a la Figura 8.4. La línea de control de salida ALE estará en el nivel _ _
(ALTO, BAJO) cuando la MPU envíe una dirección al bus de direcciones/datos.
i
, I
Solución:
La línea de control de salida estará en ALTA cuando la MPU envíe una dirección al bus de
direcciones/datos. Cuando la línea de control ALE alcance el nivel BAJO, el bus de direcciones/
datos se convierte en un bus de datos bidireccional.
8.12.
Acudir a la Figura 8.4. Las patillas SID y SOD del microprocesador 8085 están relacio­
nadas con la sección de control de ___ (interrupciones, E/S serie).
Solución:
De acuerdo con la Figura 8.4, las patillas SID y SOD del microprocesador 8085 están muy
relacionadas con la sección de control de E/S serie.
8.13.
I
fn<;
de
Solución:
Además del acumulador, los seis registros de propósito general de 8 bits son el B. C. D. E, H Y
L. Estos pueden utilizarse como registros pares (registros de 16 bits) durante ciertas operaciones.
Los registros pares son Be, DE Y HL.
~eS-
,
L
Además del acumulador, citar seis registros de propósito general de 8 bits del micropro­
cesador 8085.
8.14.
Este registro de 16 bits siempre contiene una dirección y apunta al tope de la pila de la
RAM.
Solución:
El puntero de pila siempre contiene una dirección y apunta
8.15.
al tope de la pila de la RAM.
Citar cinco indicadores de status del registro de señalizadores del microprocesador
8085.
Solución:
De acuerdo con la Figura 8.5, los cinco señalizadores, <> indicádores de status, del micropro­
cesador 8085 son el señalizador de signo, el de cero, el de arrastre auxiliar, el de paridad y el de
arrastre.
8.16.
El contenido del acumulador (la suma) de la Figura 8.9 despuéS de la operación de suma
será _ _ (8 bits).
www.FreeLibros.me
t
1l'
qi
•
,
•
~ <
260
~
F1JNDAMENTOS DE LOS MICROPROCESADORES
,,"m","w
111"~.~_
j
Antes de la operación
Registro B
_____
,/
0000 1111
I
I
ADD B
8.22.
Acumulador
r-r--r"-....--,--;---r---r--,
? ?
s Z AC P CY
I I I I? I I? I I? I
PI
""
iIII
51
I
Señalizadores
8.23.
~
Solución:
Sumar los binarios 11110000 + 00001111 1000 0111. El contenido del acumulador de la
Figura 8.9 después de la operación de suma será 00000111 (los 8 bits menos significativos de la
suma).
8.18.
El señalizador de arrastre auxiliar (AC) estará a _ _ (0, 1) despuéS de la operación de
suma de la Figura 8.9.
Solución:
Las posiciones B3 del acumulador y' del registro B tienen un 1 en la Figu~a 8.9. En binario
1 + 1 = 102, Esto significa que habrá una salida de arrastre de la posición B3 a la posición B4'
Debido a este arrastre el señalizador de arrastre auxiliar (AC) se pondrá a 1, despUés de la opera­
ción de suma de la Figura 8.9.
8.20.
El señalizador de paridad (P) estará a _ _ (O. 1) después de la operación de suma de la
Figura 8.9.
Solución:
Después de la operación de la Figura 8.9, el acumulador contendrá el binario 00000111. Esta
suma contiene tres 1, que no es paridad par. y por tanto el señalizador de paridad estará a O.
8.21.
JC
8.24.
El señalizador de arrastre (eY) estará a _ _ (0, 1) después de la operación de suma de
la Figura 8.9.
Solución:
Sumar los binarios 11111000 + 00001111 - 100000111. Debido a que el «overflow» (rebose)
sobrepasa el límite de 8 bits del acumulador, hay un arrastre en la posición B7' El señalizador de
arrastre (eY) se pondrá a 1 después de la operación de suma en la Figura 8.9.
www.FreeLibros.me
M
ja
,
~í
~"
El señalizador de cero (Z) estará a _ _ (O, 1) después de la operación de suma de la Fi­
gura 8.9.
Solución:
El contenido del acumulador después de la operación de suma en la Figura 8.9 es 00000 111;
como no es cero, el señalizador de cero estará a O.
8.19.
d
El señalizador de signo (S) estará a _ _ (O, 1) después de la operación de suma de la
Figura 8.9.
Solución:
El bit más significativo (bit 7) del acumulador es el bit de signo. Después de la operación de
suma el acumulador contiene 00000111 en la Figura 8.9. Por tanto el bit de signo estará a O.
Al
gil
Figura 8.9.
8.17.
U
t.
Después de la operación
+ ._
, ••• ,,:;,,,,. ;
8.4.
Me
Como en
Estos sOn:
Di
Di
3. Di
4. Di
5. Di
1.
2.
Direccio.
El mOl
inherente
dor de arr
o posicior
Direccio",
Mucw
zan estas'
ció n de la
(registro (
la instrucc
es habitWI
le Ud, 2,
1¡
EL MICROPROCESADOR INTEL 8080{8085
261
tll l
l'
;,
8.22.
¡
La interrupción hardware de prioridad más elevada en el microprocesador 8085 que no
: !
puede ser inhabilitada es la _ _ (/NTR, TRAP).
Solución:
La interrupción hardware de más alta prioridad en el microprocesador 8085 que no puede ser
inhabilitada se llama TRAP,
8.23.
Acudir a la Figura 8.6. Cuando se activa la interrupción hardware RST 7.5, la CPU
guarda el contenido de ______ en la pila y bifurca a la dirección de memo­
ria _ _ (hex).
,¡
,,
.1
Solución:
De acuerdo con la tabla de la Figura 8.6, cuando se activa la interrupción hardware RST 7.5, la
CPU guarda el contenido del contador de programa en la pila y bifurca a la dirección de memoria
3CH.
la
le la
,
8.24.
r: la
I
Mientras el bus de datos transfiere 8 bits de datos en paralelo, la patilla SID mlilne­
ja _ _ (número) bit(s) cada vez.
Solución:
•
De acuerdo con la Figura 8.7a, la patilla SID (entrada de datos serie) introduce I bit cada
vez.
de
IFt­
8.4. MODOS DE DIRECCIONAMIENTO
Como en el microprocesador genérico, la MPU 8085 utiliza cinco modos de direccionamiento.
Estos son:
l.
,
,
e la
I
Direccionamiento implicado.
2. Direccionamiento de registro.
3. Direccionamiento inmediato.
4.
Direccionamiento directo.
5. Direccionamiento indirecto de registro.
Direccionamiento implicado
El modo de direccionamiento de ciertas instrucciones de la MPU 8085 es implicado por (o
inherente a) la función de la instrucción. Por ejemplo, la instrucción STC (poner a I el señaliza­
dor de arrastre) está relacionada con el señalizador de arrastre solamente y no con otros registros
o posiciones de memoria.
Direccionamiento de registro
de
~)
de
=
Muchas instrucciones de la MPU 8085 utilizan direccionamiento de registro. Cuando se utili­
zan estas instrucciones, se especifican la fuente del operando y la operación. Considerar la ejecu­
ción de la instrucción ADD e de la Figura 8.10. En este ejemplo, el operando del registro fuente
(registro e en este caso) se suma al operando localizado en el acumulador. Una vez que se ejecuta
la instrucción ADD C, la suma (00001111 1 en este ejemplo) se deposita en el acumulador. Como
es habitual, la operación de suma tambiéñ afecta a los señalizadores del registro de status.
www.FreeLibros.me
!
i
11
1\
I¡
¡.t
í
'1
:
I
262
FUNDAMENTOS DE LOS MICROPROCESADORES
Direcciolf
Acumulador
Acumulador
Laso~
utilizand(
El byte \
contiene
contiene
La iD!
instrucci<
ción LOJ
micropro
moria de
entonces
Señalizadores
Z
Figura 8.10.
La instrucción ADD
AC
e (modo direccionamiento de registro).
La instrucción 'ADD e ilustrada en la Figura 8.10 utilizaba el direccionamiento de registros.
Ambos operandos estaban localizados en registros internos de la MPU (registros A y C). Las
instrucciones que utilizan el direccionamiento de registro son muy eficientes ya que solamente
utilizan un espacio de la memoria de programa de 1 byte. También se ejecutan rápidamente
porque no tienen que buscar operandos en memoria. Buscar en memoria es una operación
relativamente lenta.
Direccionamiento inmediato
Las instrucciones que utilizan direccionamiento inmediato tienen los datos inmediatamente a
continuación del código de op en la memoria del programa. A título de ejemplo se ilustra la
instrucción ADI (suma inmediata) del 8085 en la Figura 8.\1. El microprocesador busca el código
de op (C6H en este ejemplo) en la memoria de programa. Después de decodificar, la MPU
determina que ésta es una instrucción de direccionamiento inmediato. Por tanto encuentra el
dato inmediato en la siguiente posición consecutiva de la memoria de programa después del
código de op. Este dato inmediato (0000 1000 2) se suma al contenido del acumulador
(0000 1\ 002 ), Después de la operación, la suma (000 101002 ) se coloca en el acumulador.
t
l
Acumulador
..
Acumulador
,JI
i,
i
'J
~
;;
~
¡
. :"
Señalizadores
Memoria de programa
Dato inmediato
Figura 8.11.
La instrucción ADI (moda de direccionamiento inmediato).
~
Las instrucciones inmediatas del microprocesador 8085 utilizan el acumulador como operan­
do implicado, como en la operación ADI mostrada en la Figura 8.\1. La instrucción MVI (trans­
ferir inmediato) del 8085 puede transferir datos inmediatos a cualquier registro o posición de
memoria. La instrucción LXI (carga registro par inmediato) del 8085 carga un registro par con un
valor de 16 bits y por tanto no afecta al acumulador.
www.FreeLibros.me
~
,
•
!JI
res de
espaCl
MPC
ción 1
~
EL MICROPROCESAOOR INTEL 8080/8085
1­
"
263
11
'1
I!
Direccio1ltlmie1lto directo
Las operaciones que utilizan direccionamiento directo en la MPU del Intel 8085 se especifican
utilizando formatos de instrucción de 3 bytes. Este formato está representado en la Figura 8.12a.
El byte l contiene el código de op para la instrucción de direccionamiento directo. El byte 2
contiene el byte de orden inferior de la dirección del operando. El byte 3 de la instrucción
contiene el byte de orden superior de la dirección del operando.
La instrucción LDA (cargar A directo) del 8085 se está ejecutando en la Figura 8.12b. La
instrucción de 3 bytes se muestra en la parte inferior del diagrama. El código de op de la instruc­
ción LDA es 3AH. Los 2 siguientes bytes de la memoria de programa son ensamblados por el
microprocesador en una dirección de 16 bits (0200H en este ejemplo). Esta dirección de la me­
moria de datos (0200H) es accedida entonces por la MPU y su contenido (1111111 12) es cargado
entonces en el 'acumulador,
LaS./
Dente
Dente
ación
l.
Memoria de programa
=Ole a
b'a la
ódigo
MPU
" el
es del
dador
fa)
ran­
ans­
de
lun
Código de operación
Byte l
Byte de orden inferior
de la dirección
Byte 2
Byte de orden superior
de la dirección
Byte 3
Formato de instrucción para direccionamiento directo
Acumulador
Acumulador
Después de la operación
Antes de la operación
Código de
operación
------"'f
00 l O0000 0000
I
3AH
- t Byte de orde'n
inferior de la dír.
res
1
...
,-­
(b)
00000000
•
Memoria de programa
00000010
La instrucción de cargar A directo
Figura 8.12.
¡
I
t
!
Las instrucciones que utilizan direccionamiento directo a veces son evitadas por los diseñado­
res de microprocesadores y por los programadores, El direccionamiento directo requiere mucho
espacio de la memoria de programa (3 bytes de memoria de programa por una instrucción de la
MPU 8085). Las operaciones de direccionamiento directo también requieren un tiempo de ejecu­
ción relativamente largo, debido a los numerosos accesos a memoria que se necesitan.
www.FreeLibros.me
_­
-----,- ........
I
ji
li
¡
l
I
1
!j
I
.'.
,
1.t
:,:,
1:
".-41
264
6w;
7
1(..
FUNDAMENTOS DE LOS MICROPROCESADORES
8.26.
Direccionamiento indirecto de registro'
Las instrucciones de registro indirecto referencian la memoria utilizando el contenido de un
registro par para señalar la dirección del operando. Un ejemplo de una operación de registro
indirecto se ilustra en la Figura 8.13. La instrucción ADD M (sumar memoria), de la Figura 8.13,
suma el contenido del acumulador con el contenido de la posición de memoria indicado por la
dirección del registro par HL de la MPU. En este ejemplo, el registro par HL señala la posición de
memoria 2050H. El operando en la posición 2050H (0000000 I + 11111111 = I 0000 0000. Los 8
bits menos significativos de la suma se depositan en el acumulador después de la operación
ADD M. Los señalizadores apropiados también se ponen a I y O según el resultado de la opera­
ción de suma y se muestran en la Figura 8.13.
A,.muJado,
11Illl~
Antes de la operación
Memoria de datos
(2550H)
Reg;","
po' HL
____
/'
0000 000 I
.
I
'Q.,OH
I
8.27.
Acumulador
+
8.28.
ADDM
Señalízadores
s z
e
L
Figura 8.13.
Una instrucción de suma indirecta de registro.
i
l
,
'1
Modos de direccionamiento combinados
Algunas instrucciones de la MPU 8085 utilizan una combinación de modos de direcciona­
miento. Una instrucción de CALL (LLAMADA) a subrutina, por ejemplo, combina el direccio­
namiento directo e indirecto de registro. El direccionamiento directo en una instrucción CALL
especifica la dirección de la subrutina deseada. El direccionamiento indirecto de registro es el del
puntero de pila. La instrucción CALL introduce primero el contenido ac;.tual del contador de
programa en la posición de memoria especificada por el puntero de pila. A continuación, el
procesador carga la dirección directa en el contador de programa. Finalmente, la MPU salta a la
subrutina cuya dirección se encuentra ahora en el contador de programa.
PROBLEMAS RESUELTOS
8.25.
Listar los cinco modos de direccionamiento utilizados por el microprocesador Intel
8085.
Solución:
El microprocesador Intel 8085 utiliza los modos de direccionamiento implicado, de registro,
inmediato, directo e indirecto de registro.
www.FreeLibros.me
-
,/
., ¡
···I·····!,!
.
I
8.29.
I
EL MICROPROCESAOOR INTEL 8080/8085
8.26.
de un
gistro
8.13,
por la
ónde
Los8
"ación
>pera­
265
La instrucción CMC (arrastre complementario) del 8085 afecta solamente el señalizador
de arrastre y no a otros registros o posiciones de memoria. Por tanto utiliza el modo de
direccionamiento _ _ (directo, implicado).
Solución:
La instrucción CMC (arrastre complementario) utiliza el modo de direccionamiento implicado
porque afecta solamente el seiíalizador de arrastre y no utiliza otros registros o posiciones de me­
moria.
8.27.
La instrucción MOV B,A del 8085 (transfiere A a B) transfiere el contenido de un regis­
tro a otro. La instrucción MOV B,A por tanto utiliza el modo de direccionamien­
to _ _ (inmediato, de registro).
Solución:
La instrucción MOV B,A del 8085 (transfiere A a B) ejecuta una operación registro a registro y
por tanto utiliza el modo de direccionamiento de registro.
8.28.
La instrucción MVI A del 8085 mostrada en la Figura 8.14 utiliza el modo de direcciona­
miento _ _ (implicado, inmediato).
dores
Solución:
En la Figura 8.14 se determina que el dato es transferido desde el segundo byte de la memoria
del programa al acumulador. Esto significa que la instrucción MVI A (transfiere inmediato) del
8085 utiliza el modo de direccionamiento inmediato.
Acumulador
?
Antes de la operación
CALL
del
:lor de
:l. el
Ita a la
¡ el
Dato
,
Figura 8.14.
8.29.
Una instrucción de transferencia inmediata.
La instrucción SUB M del 8085 de la Figura 8.15 utiliza el modo de direccionamiento
de _
(registro, indirecto de registro).
•
Acumulador
Acumulador
Antes de la operación
.
Memo~~gqdatos
. lntel
~stro,
Después de la operación
Memoria de programa
(2050H)
ICÍOna­
receio-
Acumulador
Registro par HL
)====:::-:-.
~SUBM
10000 1001 I
~L
1
-
2060H
Señalizadores
s z
AC
I
Figura 8.15. La instrucción SUB M.
www.FreeLibros.me
p
C
ce
Ca¡¡;:Z
266
,.~
FUNDAMENTOS DE LOS MICROPROCESADORES
Solución:
A partir de la Figura 8.1, se determina que el sustraendo proviene de la posición de la memoria
de datos señalada por el registro par H L. Esto significa que la instrucción SUB M del 8085 utiliza el
modo de direccionamiento indirecto de registro.
~.30.
•
En la Figura 8.15, el minuendo está localizado en el acumulador mientras que el sus­
traendo se encuentra en la posición ___ (hex) de la memoria de datos.
.
Solución:
'\
En la Figura 8.15, el minuendo está localizado en el acumulador mientras que el sustraendo se
\
encuentra en la posición 2060H de la memoria de datos como señala el registro par H L.
8.5. REPERTORIO DE INSTRUCCIONES DEL 8080/8085
Los microprocesadores lntel 8080 y 8085 son utilizados para formar computad,?ras de programa­
almacenado. Las instrucciones del programa son almacenadas como bytes de 8 bits en un área de
memoria denominada memoria de programa. El microprocesador Intel 8080/8085 utiliza ins­
trucciones de 1,2 y 3 bytes. El primer byte de la instrucción es siempre el código de op (código de
operación), que especifica cuál de las 200 instrucciones del microprocesador debe ejecutarse. La
MPU reconoce estos códigos de op cuando están en forma binaria de 8 bits. El conjunto de
instrucciones a las cuales responderá la MPU 8080 y 8085 está fijado, permanentemente, en el
disefio de las pastillas. El 8085 utiliza los mismos códigos de op que la MPU del 8080. El
repertorio de instrucciones del 8085 también contiene dos instrucciones extra, además de las
utilizadas por la MPU 8080.
Intel Corporation agrupa las instrucciones del microprocesador 8080/8085 en las siguientes
categorías funcionales:
1.
2.
3.
4.
5.
i
,
II··~
. ¡
I
­
Grupo
Grupo
Grupo
Grupo
Grupo
de transferencia de datos.
aritmético. .
lógico.
de bifurcación.
de pila, E/S y de control máquina.
El grupo de instrucciones de transferencia de datos transfiere datos. entre registros o entre
posiciones de memoria y registros. Entre estas instrucciones se encuentran transferencias, cargas,
almacenamientos e intercambios.
El grupo aritmético de instrucciones realiza sumas, restas, incrementos o decrementos en
datos de registros o memoria. El grupo lógico de instrucciones realiza operaciones ANO, OR Y
XOR, comparaciones, desplazamientos circulares o complementaciones de datos en registros o
entre memoria y un registro.
El grupo de instrucciones de bifurcación indica saltos condicionales o incondicionales, llama­
das, vueltas y reinicializaciones. El grupo de pila, E/S y de control de máquina incluye instruccio­
nes para mantener la pila, leer los puertos de entrada, escribir en los puertos de salida, inicializar y
leer máscaras de interrupción e inicializar y borrar sefializadores.
Un resumen del repertorio de instrucciones del microprocesador 8080/8085 se detalla en la
Figura 8.16. Este es un listado alfabético por nemotécnicos. Se utilizan los nemotécnicos con
derecho de copia de Intel junto con los códigos de op únicos del 8080/8085. Los códigos de op
•
www.FreeLibros.me
1
..
..-
- ,-.--~
EL MICROPROCESADOR INTEL 8080/8085
Icmoria
ltiliza el
i
~.
\
t
el sus- .
,
i
t
endo se
I
\
A
';,
IBJ1lma­
área de
J
iza íns­
idigo de
ilf'SC, La
Ilnto de
:e en el
. i). El
s de las
lUientes
J
I
C
I
o entre
• cargas,
I1tO'S
en
). OR Y
Pstros o
" llamaItruccio­
:ializary
.tt
t
"
Da en la
con
de op
ICOS
)S
•'­
D
Nemotécnico
ADDA
ADDB
ADDC
ADDD
ADDE
ADDH
ADDL
ADDM
ADI v
ADCA
ADCB
ADCC
ADCD
ADCE
ADCH
ADCL
ADCM
ACI v
ANAA
ANAB
ANAC
ANAD
ANA E
ANAH
ANAL
ANA M
ANI v
CALLaa
CZaa
CNZaa
CPaa
CM aa
CCaa
CNCaa
CPEaa
CPOaa
CMA
CMC
CMPA
CMPB
CMPC
CMPD
CMPE
CMPH
CMPL
CMPM
CPI v
DAA
DADB
DADD
DADH
DADSP
Código de op
(hex)
87
80
81
82
83
84
85
86
C6
8F
88
89
8A
8B
8C
8D
8E
CE
A7
AO
Al
A2
A3
A4
A5
A6
E6
CD
CC
C4
F4
FC
DD
D4
EC
E4
2F
3F
BF
B8
B9
BA
BB
BC
BD
BE
FE
27
09
19
29
39
Descripción
Suma A a A (doble A)
Suma B aA
Suma CaA
SumaD aA
Suma EaA
Suma HaA
Suma L a A
Suma LOC memoria (H & L) a A
Suma dato inmediato v a A
Suma A a A con arrastre (doble A con arrastre)
Suma B a A con arrastre
Suma C a A con arrastre
Suma D a A con arrastre
Suma E a A con arrastre
Suma H a A con arrastre
Suma L a A con arrastre
Suma LOC memoria (H & L) a A con arrastre
Suma dato inmediato v a A con arrastre
Examina A y borra arrastre
ANDBconA
ANDCconA
ANDD con A
ANDE con A
ANDHconA
ANDL con A
AND LOC memoria (H & L) con A
AND dato inmediato v con A
Call subrutina en dirección aa
Si cero, CALL en dirección aa
Si no cero, CALL en dirección aa
Si más, CALL en dirección aa
Si menos, CALL en dirección aa
Si arrastre, CALL en dirección aa
Si no arrastre, CALL en dirección aa
Si paridad par, CALL en dirección aa
Si paridad impar, CALL en dirección aa
Complementa A
Complementa arrastre •
Pone a I el señalizador de cero
Compara A con B
Compara A con C
Compara A con D
Compara A con E
Compara A con H
Compara A con L
Compara A con LOC memoria (H & L)
Compara A con dato inmediato v
Ajuste decimal A
Suma B & Ca H & L
Suma D & E a H & L
SumaH & L a H & L (doble H & L)
SumaSPa H & L
267
]1
11
11
'1
Figura 8.16. Resumen del repertorio de instrucciones del microprocesador 8080/8085.
(Todos los nemotécnicos tienen derecho de copia © Intel Corporation, 1976,)
,
t
www.FreeLibros.me
--
I
268
FUNDAMENTOS DE LOS MICROPROCESADORES
D
/
E
H
Nemotécnico
OCRA
OCRB
DCRe
OCRD
OCRE
OCRH
OCRL
OCRM
OCXB
OCXD
OCXH
I----ÓCXSP
DI
El
HLT
IN v
INRA
INRB
INRe
INRD
INRE
INRH
INRL
INRM
INXB
INX D
INXH
J
L
M
INXSP
JMPaa
JZaa
JNZaa
JPaa
1M aa
JCaa
JNCaa
lPEaa
lPOaa
LDAaa
LDAXB
LDAXD
LHLDaa
LXI B.vv
LXI D,vv
LXI H,vv
LXI SP.vv
MOVA,B
MOVA.e
MOVA.D
MOVA.E
MOVA,H
MOVA.L
MOVA.M
Código de op
(hex)
3D
05
OD
15
ID
25
2D
35
OB
lB
2B
3B
F3
FB
76
DB
3C
04
OC
14
IC
24
2C
34
03
13
23
33
C3
CA
C2
F2
FA
DA
D2
EA
E2
3A'
OA
lA
2A
01
11
21
31
78
79
7A
7B
7C
7D
7E
-~
Descripción
Decrementa A
Decrementa B
Decrementa e
Decrementa D
Decrementa E
Decrementa H
Decrementa L
Decrementa LOC memoria (H & L)
Decrementa B & e
Decrementa D & E
Decrementa H & L
1----- Decrementa SP
Inhabilita interrupciones
Habilita interrupciones
Alto hasta interrupción
Entrada del dispositivo v
Incrementa A
Incrementa B
Incrementa e
Incrementa D
Incrementa E
Incrementa H
Incrementa L
Incrementa LOC memoria (H & L)
Incrementa B & e
Incrementa D & E
Incrementa H & L
Incrementa SP
Salta a dirección aa
Si cero, 1MP en dirección aa
Si no cero, JMP en dirección aa
Si más, JMP en dirección aa
Si menos, JMP en dirección aa
Si arrastre, JMP en dirección aa
Si no arrastre, 1MP en dirección aa
Si paridad par, JMP en dirección aa
Si paridad impar, JMP en dirección aa
Carga A de dirección aa
Carga A de LOC memoria (B & C)
Carga A de LOC memoria (D & E)
Carga H & L de dirección aa
Carga B & e con dato inmediato vv
Carga D & E con dato inmediato vv
Carga H & L con dato inmediato vv
Carga SP con dato inmediato vv
Transfiere B a A
Transfiere e a A
Transfiere D a A
Transfiere E a A
Transfiere H a A
Transfiere L a A
Transfiere LOC memoria (H & L) a A
Figura 8.16.
4
(continuaci6n).
www.FreeLibros.me
JI
I
~,-~.~_
I ,
'~<,­
~
Nemotécnico
MOV B,A
MOV B,e
MOV B,D
MOV B,E
MOV B,H
MOVB,L
MOV B,M
MOV C,A
MOV C,B
MOV C,D
MOVC,E
MOVC,H
MOV C,L
MOV C,M
MOVD,A
MOV D,B
MOVD,e
MOV D,E
MOVD,H
MOV D,L
MOV D,M
MOV E,A
MOV E,B
MOV E,e
MOV E,D
MOV E,H
MOV E,L
MOV E.M
MOV HA
MOV H,B
MOV H,e
MOV H,D
MOV H,E
MOV H.L
MOV H,M
MOV L.A
MOV L.B
MOV L,e
MOVL,D
MOV L,E
MOV L.H
MOV L.M
MOVM,A
MOVM,B
MOVM,e
MOVM,D
MOVM,E
MOVM,H
MOV M,L
MVIA,v
MVI B,v
MVI e,v
MVID,v
MVIE,v
MVI H.v
MVI L,v
MVI M.v
Código de op
(hex)
47
41
42
43
44
45
46
4F
48
4A
48
4C
40
4E
57
50
51
53
54
55
56
5F
58
59
5A
5e
50
5E
67
60
61
62
63
65
66
6F
68
69
6A
68
6C
6E
77
70
71
72
73
74
75
3E
06
OE
16
lE
26
2E
36
,--~-
269
Descripción
Transfiere A a B
Transfiere e a B
Transfiere D a B
Transfiere E a B
Transfiere H a B
Transfiere L a B
Transfiere LOC memoria (H & L) a B
Transfiere A a e
Transfiere B a e
Transfiere D a e
Transfiere E a e
Transfiere H a e
Transfiere L a e
Transfiere LOC memoria (H & L) a e
Transfiere 4. a D
Transfiere B a D
Transfiere e a D
Transfiere E a D
Transfiere Ha D
Transfiere L a D
Transfiere LOC memoria (H & L) a D
Transfiere A a E
Transfiere B a E
Transfiere e a E
Transfiere D a E
Transfiere H a E
Transfiere L a E
Transfiere Loe memoria (H & L) a E
Transfiere A a H
Transfiere BaH
Transfiere e aH
Transfiere Da H
Transfiere E a H
Transfiere L aH
Transfiere LOC memoria (H & L) a H
Transfiere A a L
Transfiere B a L
Transfiere e a L
Transfiere D a L
Transfiere E a L
Transfiere Ha L
Transfiere Loe memoria (H & L) a L
Transfiere A a LOC memoria (H & L)
Transfiere B a LOC memoria (H & L)
Transfiere e a LOC memoria (H & L)
Transfiere D a Loe memoria (H & L)
Transfiere E a LOC memoria (H & L)
Transfiere H a Loe memoria (H & L)
Transfiere L a LOC memoria (H & L)
Transfiere dato inmediato va A
Transfiere dato inmediato va B
Transfiere dato inmediato v a e
Transfiere dato inmediato v a D
Transfiere dato inmediato v a E
Transfiere dato inmediato v a H
Transfiere dato inmediato vaL
Transfiere dato inmediato va memoria LOC (H &: L)
Figura 8.16.
•
- - - - - - - - - _ ..
ÉL MICROPROCESADOR INTEL 8080/8085
M
·.i.'
.. _~.
"
.
(continuación) •
www.FreeLibros.me
1
..
.. .P-
•
,
«.
§
~,------"-------------------------------------------------------
270
FUNDAMENTOS DE LOS MICROPROCESAOORES
N
O
,
r
I
I
'1
P
R
S
Nemotécnico
NOP
ORAA
ORAB
ORAC
ORAD
ORA E
ORAH
ORAL
ORAM
ORII'
OUT v
PCHL
POPB
POPD
POPH
POPPSW
PUSHB
PUSHD
PUSHH
PUSHPSW
RAL
RAR
RLC
RRC
RIM
RET
RZ
RNZ
RP
RM
RC
RNC
RPE
RPO
RSTO
RST l
RST2
RST3
RST4
RST5
RST6
RST7
SIM
SPHL
SHLDaa
STA aa
STAXB
STAXD
STC
Código de op
(hex)
00
B7
SO
BI
B2
B3
B4
B5
B6
F6
D3
E9
CI
DI
El
Fl
C5
D5
ES
F5
17
IF
07
OF
20
C9
C8
CO
FO
F8
D8
DO
E8
EO
C7
CF
D7
DF
E7
EF
F7
FF
30
F9
22
32
02
12
37
Descripción
No operación
Examina A y borra arrastre
0R Bcon A
OR Ceon A
OR Deon A
OR Feon A
OR HeonA
OR LeonA
OR LOC memoria (H & L) con A
OR dato inmediato v con A
Saca A a dispositivo v
Salta a LOC memoria contenida en (H & L)
Saca B & C de pila
Saca D & E de pila
Saca H & L de pila
Saca A y los señalizadores de pila
Introduce B & C en pila
Introduce D & E en pila
Introduce H & L en pila
Introduce A y los señalizadores en pila
Desplazamiento circular CY + A a la izquierda
Desplazamiento circular CY + A a la derecha
Desplazamiento circular A a la izquierda y arrastre
Desplazamiento circular A a la derecha y arrastre
Lee máscara de interrupción (8085 sólo)
Vuelve de subrutina
Si cero, vuelve de subrutina
Si no cero, vuelve de subrutina
Si más, vuelve de subrutina
Si menos, vuelve de subrutina
Si arrastre, vuelve de subrutina
Si no arrastre, vuelve de subrutina
Si paridad par, vuelve de subrutina
Si paridad impar, vuelve de subrutina
Rearrancar subrutina en dirección OOH
Rearrancar subrutina en dirección 08H
Rearrancar subrutina en dirección IOH
Rearrancar subrutina en dirección 18H
Rearrancar subrutina en direcc1ón 20H
Rearrancar subrutina en dirección 28H
Rearrancar subrutina en dirección 30H
Rearrancar subrutina en dirección 38H
Pone a l máscara de interrupción (8085 sólo)
Carga SP de H & L
Almacena H & L en LOC memoria aa
Almacena A en LOC memoria aa
Almacena A en LOC memoria (B & C)
Almacena A en LOC memoria (D & E)
Pone a l seiializador de arrastre
Figura 8.16.
(continuaci6n).
\
t,
!
¡­,1
! •
l'
la
tiene :...;.
ci0la4
la 1lllI!oll:
apro:u::
UnCSbl
tinuacic
m
www.FreeLibros.me
EL MICROPROCESAOOtt INTEL 8080;8085
I
):
I
I Código
de op
(hex)
Nemotécnico,
SUBA
SUBB
SUBC
SUBD
SUBE
SUBH
SUBL
S
,
\
~\
'.'.
.
"
"
SUBM
SUI v
SBBA
SBBB
SBBC
SBBD
SBBE
SBBH
SBBL
SBBM
X
SBI v
XCHG
XTHL
XRAA
XRAB
XRAC
XRAD
XRAE
XRAH
XRAL
XRAM
XRI v
97
90
91
92
93
94
95
96
D6
9F
98
99
9A
98
9C
90
9E
DE
EB
E3
AF
A8
A9
AA
AB
AC
AD
AE
EE
'.
271
Descripción
Borra A
Resta B de A
Resta Cde A
Resta DdeA
Resta E de A
Resta H deA
Resta L de A
Resta contenido de LOC memoria (H & L) de A
Resta dato inmediato v de A
Pone A con arrastre menos
Resta B de A con préstamo
Resta C de A con préstamo
Resta D de A con préstamo
Resta E de A con préstamo
Resta H de A con préstamo
Resta L de A con préstamo
Resta LOC memoria (H & L) de A con préstamo
Resta dato inmediato v de A con préstamo
Cambia D & E con H & L
Cambia tope de pila con H & L
Borra A
OR exclusiva de B con A
OR exclusiva de C con A
OR exclusiva de D con A
OR exclusiva de E con A
OR exclusiva de H con A
OR exclusiva de L con A
OR exclusiva de LOC memoria (H & L) con A
OR exclusiva de dato inmediato v con A
Figura 8.16.
(continuación).
están representados en notación hexadecimal en la Figura 8.16. También una breve descripción
para cada una de las 239 instrucciones del microprocesador. En la Figura 8.16 se utilizan dos
instrucciones exclusivas de la MPU 8085. Estas son las instrucciones RIM y SIM.
El repertorio de instrucciones del microprocesador genérico (Cap. 6) es un subconjunto del
8080/8085 y por tanto utiliza los mismos nemotécnicos y códigos de operación. Como la MPU
8080/8085 tiene más registros y funciones que el microprocesador genérico, ésta necesitará más
instrucciones. Por ejemplo, el repertorio de instrucciones del microprocesador genérico tiene
cuatro instrucciones de suma (ver Fig. 6.4), mientras que las 18 primeras instrucciones listadas en
la Figura 8.16 para la MPU del 8080/8085 son instrucciones de suma. El 8080/8085 también
tiene cuatro instrucciones más de suma doble (DAD B. DAD D. etc.) para un total de 22 instruc­
ciones de suma. Después de utilizar el repertorio de instrucciones del microprocesador genérico,
la mayoría de los estudiantes tendrá un conocimiento razonable de la función que realizan
aproximadamente la mitad de las instrucciones del 8080/8085 listadas en la Figura 8.16.
Un estudio más detallado del repertorio de instrucciones de la MPU 8080/8085 se dará a con­
tinuación.
www.FreeLibros.me
I
~-
-
.
272
FUNDAMENTOS DE LOS MICROPROCESADORES
PROBLEMAS RESUELTOS
8.31.
Acudir a la Figura 8.16. ¿Cuántas instrucciones lógicas AND hay listadas para el micro­
procesador 8080/8085?
Solución:
El resumen del repertorio de instrucciones del 8080/8085 de la Figura 8.16 listaba nueve opera­
ciones AND diferentes comenzando con ANA A.
8.32.
/
8.33.
Acudir a la Figura 8.16. El repertorio de instrucciones del microprocesador genérico
contiene una instrucción de llamada a subrutina, mientras que la MPU 8080/8085 pue­
de realizar _ _ (número) de operaciones de llamada diferentes.
Solución:
La MPU 8080/8085 puede realizar nueve operaciones de llamada diferentes empezando con la
instrucción CALL aa en la Figura 8.16.
Acudir a la Figura 8.16. El repertorio de instrucciones del 8080/8085 lista _ _ (núme­
ro) de operaciones de resta diferentes.
Solución:
El repertorio de instrucciones del 8080/8085 lista 18 operaciones diferentes de resta empezando
con SUB A en la Figura 8.16. No están incluidas operaciones de comparación que utilizan restas
internas cuando se comparan datos.
8.34.
Acudir a la Figura 8.16. Algunos nemotécnicos del 8080/8085 tienen una X adicional
como, por ejemplo, CDX B, INX B. LXI B Y STAX B. Cada vez que aparece la X en
estas instrucciones, un ______ (registro par, registro simple) es afectado por la
operación.
Solución:
De acuerdo con las descripciones de la Figura 8.16, cada vez que aparece una X adicional en las
instrucciones (como CDX B. INX B, LXI B Y STAX B), un registro par es afectado por la opera­
ción.
t
8.6. INSTRUCCIONES DE TRANSFERENCIA DE DATOS DEL 8080/8085
Un resumen de las instrucciones de transferencia de datos del microprocesador 8080/8085 se
muestra en la Figura 8.17. Estas instrucciones incluyen operaciones de transferir, intercambiar,
cargar y almacenar. La Figura 8.17 da sólo los nemotécnicos y los códigos de op hexadecimales
para estas 84 instrucciones. Las instrucciones de transferencia de datos son de las más utilizadas
del microprocesador.
El grupo de instrucciones de transferencia de datos se detallará en las páginas 275-277 utilizan­
do el formato propio de lntel Corporation. Este grupo de instrucciones transfiere datos a y desde
registros y memoria. Los señalizadores de condición no son afectados por cualquier instrucción
de este grupo. Acudir a la Figura 8.18 para el significado de las abreviaturas (como por ejemplo
rl, DDD, SSS, etc.) utilizadas en las siguientes descripciones del Manual del Usuario de Intel.
www.FreeLibros.me
I
•
·$1
~,
,~~-,-
,,>
,
/
L~
EL MICROPROCESADOR INTEL 8080/8085
micro-
t
~opera-
"
I
MOV
A,A
A,B
A,C
A.D
A.E
A,H
A.L
A.M
7F
78
79
7A
7B
7C
7D
7E
MOV
B,A
B,B
B,e
B,O
B,E
B,H
B,L
B,M
47
40
41
42
43
44
45
46
CA
e,B
CC
CD
CE
CH
e,L
CM
4F
48
49
4A
4B
4C
4D
4E
O,A
O,B
o,e
0,0
O,E
D,H
D,L
D,M
57
50
51
52
53
54
55
56
mérico
15 pue-
Lb
,
/
I
,
1
H
'núme­
I
lóL
~85
MOV
t
i
11 opera­
5F
58
59
5A
5B
5e
50
5E
MOV
H,A
H,B
H,e
H,D
H,E
H,H
H,L
H,M
67
60
61
62
63
64
65
66
L,A
L.B
LC
L,O
L,E
L,H
L,L
L,M
6F
68
69
6A
6B
6C
6D
6E
M,A
M,B
M,e
M,D
M,E
M,H
M,L
77
A,byte
B,byte
Cbyte
O.byte
E,byte
H,byte
L,byte
M,byte
MVI
3E
06
OE
16
lE
26
2E
36
Carga
inmediato
{
LXI
BAb~
01
O,dble 11
H,dble 21
SP,dble 31
earga/Almacena
-~stas
en las
MOV
E,A
E,B
E,C
E,D
E,E
E,H
E,L
E,M
I
!,
t!e'Zando
licional
13 X en
JXlr la
Transfiere
inmediato
Transfiere (cont)
Transfiere
273
,
MOV
MOV
LOAXB
LOAXO
LHLD adr
LOA adr
OA
lA
2A
3A
STAXB
STAXS
SHLO adr
STA adr
02
12
22
32
i
.
MOV
XCHG
;~
l
70
71
72
73
74
75
~
I
EB
adr - dirección de 16 bits (segundo y tercer bytes de instrucciones de 3 bytes)
se
~1 biar,
:cimales
tilizadas
¡atilizan­
y desde
trucción
ejemplo
:le Intel.
Figura 8.17. Resumen de las instrucciones de transferencia de datos del 8080/8085.
(Todos los nemotécnicos tienen derecho de copia © de Intel Corporation, 1976,)
, i
Considerar la instrucción MOV A,B (código de op = 78H) del 8080/8085. MOV A,B puede
representar una instrucción que transfiere datos del registro B al acumulador (registro A), Este
tipo de instrucción está detallada en la página 275 en la sección «transfiere registro» (MOV rl, r2).
Observar que el primer registro (A en este ejemplo) es el destino de la transferencia, mientras que
" ¡
www.FreeLibros.me
l·
214
FUNDAMENTOS DE
tos
MICROPROCESADORES
SIMBOLOS
SIGNIFICAOO
acumulador
addr
dato
16 datos
byte 2
Registro A
Dirección de 16 bits
Cantidad de 8 bits
Datos de 16 bits
El segundo byte de la instrucción
rh
byte 3
El tercer byte de la instrucción
rI
puerto
Dirección de 8 bits de un dispositivo
de E/S
Uno de los registros A.B.C,O.E.H,L
PC
SP
DDD.SSS
rp
,
.'...•.
'
"
RP
REGISTRO
PAR
00
B-C
O-E
01
10
H-L
II
SP
El primer registro (orden superior) de
un registro par designado.
El segundo registro (orden inferior) de
un registro par designado.
El contador de programa de 16 bits
(PCH y PCL son utilizados para refe­
renciar los 8 bits de orden superior e
inferior respectivamente).
Registro puntero de pila de 16 bits
(SPH y SPL son utilizados para refe­
renciar los 8 bits de orden superior e
inferior respectivamente).
Bit m del registro r (los bits están nu­
merados de 7 a O de izquierda a dere­
cha).
Dirección de 16 bits de subrutina.
Los señalizadores de condición:
Cero
Signo
Paridad
Arrastre
Arrastre auxiliar
Contenido de la posición de memoria
o registro encerrado en los paréntesis.
«Es transferido a»
ANO lógica
OR exclusiva
OR inclusiva
Suma
Resta en complemento a dos
Multiplicación
«Se intercambia con,.
El complemento a uno (ej., (A»
Número de O a 7
Representación binaria de 000 a I11
para los núms. O a 7 respectivamente.
RP
El patrón de bits designa uno de los
registros A.B.C,O.E,H.L (000 a des­
tino. SSS a fuente):
DDD o
REGISTRO
NOMBRE
SSS
111
A
000
B
001
C
rm
ETIQUETA
Z
010
O
S
011
E
P
100
H
101
L
Uno de los registros pares:
B representa el par B.C siendo B el re­
gistro de orden superior y C el de orden inferior;
O representa el par D,E siendo O el
registro de orden superior y E el de orden inferior,
H representa el par H,L siendo H el
registro de orden superior y L el de oro
den inferior,
SP representa el registro puntero de
pila de 16 bits.
El patrón de bits designa uno de los
registros pares B,O.H,SP:
CY
AC
( )
<1­
1\
y
V
+
•
_
n
NNN
cua
zad
dat!
fun,
Md
(r'
'·91
Din
.J
MOl
Figura 8.18.
Abreviaturas utilizadas con las descripciones de Intel Corporation.
(Cortesía de ¡mel Corporatíon.)
el segundo registro (B en este ejemplO) es la fuente del dato. El patrón del código de op general
para este tipo de instrucción es OlDDDSSS y puede completarse utilizando la información de la
Figura 8.18. El destino es el acumulador que utiliza el patrón de bits I l 1, mientras que la fuente
es el registro B, que utiliza el patrón de bits 000. El código de op es entonces 01 III 000 2, ó 78 en
la notación hexadecimal. De acuerdo con la información previa de Intella instrucción MOV A,B
utiliza un ciclo máquina para ejecutar la transferencia de datos. El ciclo máquina del 8085 utiliza
www.FreeLibros.me
«1
9
~
fe
EL MICROPROCESADOR rNTEL 8080/8085
cuatro estados T. La instrucción MOV A,B utiliza direccionamiento de registro y ningún sefiali­
zador es afectado durante la ejecución de esta instrucción. Cada instrucción de transferencia de
datos de la Figura 8.17 encaja una de las categorías más generales y puede analizarse como
funciona.
o
I
rior) de
mr)de
16 bits
refe­
perior e
MOV rl, r2 (Transfiere registro)
(rl) +- (r2)
El contenido del registro r2 es transferido
al registro r 1.
Da
16 bits
refe­
¡perior e
IR
Ilán nu­
1a
275
dere­
1I'!'~:1loria
. ~sis.
,
;A 1I
o
1 l
I D.I D
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
1D
IS
1 S 1 S
MOV M, r
1
O
2
1
O
O
S
S
2
7
indirecto de reg.
ninguno
I
O
O
dato
Ciclos:
Estados:
Direccionamiento:
El contenido del registro r es transferido a
la posición de memoria cuya dirección
está en los registros H y L.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
1
indirecto de reg.
nmguno
(Transfiere a memoria)
1 1 1
7
inmediato
ninguno
MVI M, dato (Transfiere a memoria in­
mediata)
«H) (L)) +- (byte 2)
El contenido del byte 2 de la instrucción
es transferido a la posición de memoria
cuya dirección está en los registros H y
L.
O
7
2
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
«H) (L)) +- (r)
o
O
dato
MOV r, M (Transfiere de memoria)
(r) +- «H) (L))
El contenido de la posición de memoria,
cuya dirección está en los registros H y L
es transferido al registro r.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
O
1
4 (8085), 5 (8080)
registro
ninguno
10 a 111
nrnente.
general
)n de la
1 fuente
ó 78 en
DVA,B
5 utiliza
I
MVI r, dato (Transferencia inmediata)
(r) +- (byte 2)
El contenido del byte 2 de la instrucción
es transferido al registro r.,
S
Sefializadores:
3
10
inmed./indirecto de
reg.
ninguno
LXI rp, dato 16 (Carga registro par inme­
diato)
(rh) +- (byte 3),
(rl) +- (byte 2)
El byte 3 de la instrucción es transferido
al registro de orden superior (rh) del regis­
tro par rp. El byte 2 de la instrucción es
www.FreeLibros.me
276
I
,
FUNDAMENTOS DE LOS MICROPROCESADORES
transferido al registro de orden inferior
(rl) del registro par rp.
OIOIRTPlo'O'o' l
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
u
4
13
directo
ninguno
e
dato de orden inferior
dato de orden superior
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
10
inmediato·
ninguno
LDA addr (Carga acumulador directo)
(A) <E- «byte 3)(byte 2»
El contenido de la posición de memoria,
cuya dirección está especificada en los
bytes 2 y 3 de la instrucción, es transferi­
do al registro A.
o
I O I
l
'
1'110'1'0
dir. orden inferior
LULD addr (Carga H y L directo)
(L) <E- «byte 3)(byte 2»
(H) <E- «b)1e 3)(byte 2) + 1)
El contenido de la posición de memoria,
cuya dirección está especificada en los
bytes 2 y 3 de la instrucción, es transferi­
do al registro L. El contenido de la posi­
ción de memoria en la dirección siguiente
es transferido al registro H.
13
directo
ninguno
STA addr (Almacena acumulador directo)
«byte 3)(byte 2» <E- (A)
El contenido del acumulador es transferi­
do a la posición de memoria cuya direc­
ción está especificada en los bytes 2 y 3 de
la instrucción.
dir. orden inferior
]
"
Dir
..;
"l
STA]
dQl
«q
dir. orden superior
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
EI~
all
5
esU
.,.
16
directo
ninguno
SULD addr (Almacena H y L directo)
«byte 3)(byte 2» <E- (L)
«byte 3)(byte 2) + 1) <E- (H)
El contenido del registro L es transferido
a la posición de memoria, cuya dirección
está especificada en los bytes 2 y 3. El
contenido del registro H es transferido a
la posición de memoria siguiente.
J
8.35.
4
i
,.
J
1
O 'O 1 I 'O ' 0 ' 0 1'0
dir. orden inferior
Of O I 1 I l 'O ' O ' 1 I O
dir. orden superior
G
----..o:•
4
dir. orden inferior
g
O ' O ' 1'0'1'0'1'0
dir. orden superior
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
r.
tJ
dir. orden superior
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
www.FreeLibros.me
5
16
directo
ninguno
8.36.
I
j
EL MICROPROCESADOR INTEL 8080/8085
LDAX rp (Carga indirecto el acumulador)
(A) ~ «rp»
El contenido de la posición de memoria,
cuya dirección está en el registro par rp,
es transferido al registro A. Nota: sola­
mente pueden ser especificados los regis­
tros rp = B (registros B y C) o rp = D (re­
gistros D y E).
~
;
:mori~
en los
ansferi­
la posi­
iguiente
1
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
rp = B (registros B y C) o rp = D (registros
D y E).
O I O
7
indirecto de reg.
ninguno
O
STAX rp (Almacena indirecto el acumula­
dor)
«rp» ~(A)
El contenido del registro A es transferido
a la posición de memoria cuya dirección
está en el registro par rp. Nota: solamente
pueden ser especificados los registros
R
p
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
XCHG
2
277
O 1O
O
2
7
reg. indirecto
ninguno
(Intercambia H y L con D y E)
(H) +-> (D)
(L) +-> (E)
Los contenidos de los registros H y L son
intercambiados con los contenidos de los
registros D y E.
1111110
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
10 1 111
1
4
registro
ninguno
PROBLEMAS RESUELTOS
lirecto)
8.35.
~nsferidO
dirección
• 2 Y 3. El
ansferido a
'Ote.
la
Solución:
1 1 I O
o
El código de op para la instrucción MOV A.M es _ _ (hex). Esta operación transfiere
datos _ _ (de una posición de memoria, del registro A) ~_ (a una posición de
memoria, al registro A). La posición de memoria se identifica por el contenido
del _ _ (registro par HL. segundo y tercer bytes de la instrucción). La instrucción
MOV A,M utiliza _ _ (número) ciclos máquina 'i _ _ (número) estados T. La ins­
trucción MOV A,M utiliza direccionamiento _ _ (directo, indirecto de registro).
,
8.36.
"
De acuerdo con la Figura 8.11 y la descripción de Intel «transfiere de memoria» el código de op
para la instrucción MOV A.M es 1EH. Esta operación transfiere datos de una posición de memoria
al registro A. La posición de memoria está identificada por el contenido del registro par HL. La
instrucción MOV A.M utiliza dos ciclos máquina y siete estados T para su ejecución. La instruc­
ción MOV A,M utiliza direccionamiento indirecto de registro.
El código de op para la instrucción MOV M,e es _ _ (binario). Esta operación trans­
fiere datos desde _ _ (una posición de memoria, el registro C). La posición de memer
ria está identificada por el contenido del _ _ (registro par HL. segundo y tercer byteS
de la instrucción). La instrucción MOV M.e utiliza ___ (número) ciclos máquina
y _ _ (número) estados T. La instrucción MOV M,e utiliza direccionamien­
to _ _ (inmediato, indirecto de registro).
www.FreeLibros.me
•
278
FUNDAMENTOS DE LOS MICROPROCESADORES
Solución:
De acuerdo con la Figura 8.17 y la descripción de Intel «transfiere a memoria», el código de op
para la instrucción MOV M,e es 01110001 2, Esta operación transfiere datos desde el registro e a
una posición de memoria. La posición de memoria está identificada por el contenido del registro
par HL. La instrucción MOV M,e utiliza dos ciclos máquina y siete estados T durante la ejecu­
ción. La Ínstrucción MOV M.e utiliza direccionamiento indirecto de registro.
8.37.
El código de op del 8085 para la instrucción MVI H esbozada en la Figura 8.19
es _ _ (binario).
M
Solución:
De acuerdo con la Figura 8.17, el código de op del 8085 para la instrucción MVI H esbozada en
la Figura 8.19 es 00 100 1102 Ó 26H.
Registro H
¡
1:;
11111 0000
I
I?
~
Antes de la operación
"
Código de operación
"
,
,
,.
ir.
;~
Memoria de programa
~
~
8.4
Registro H
Después de la 'operación
MVIH
Datos
Figura 8.19.
8.7.
8.38.
El contenido del registro H después de la operación MVI H mostrada en la Figura 8.19
es _ _ (8 bits).
Solución:
La instrucción MVI H utiliza el modo de direccionamiento inmediato. El dato inmediato
0000000 I de la memoria del programa es transferido al registro H durante esta operación de trans­
ferencia.
!tr
8.39.
I
La instrucción MVI H mostrada en la Figura 8.19 utiliza _ _ (número) ciclos máqui­
na y ___ (número) estados T para ejecutar la transferencia de datos.
Solución:
De acuerdo con la descripción de Intel «transferencia inmediata». la instrucción MVI H mos­
trada en la Figura 8.19 utiliza dos ciclos máquina y siete estados T para ejecutar la transferencia de
datos.
r
8.40.
La instrucción SHLD mostrada en la Figura 8.20 utiliza el modo de direccionamien­
to _ _ (directo, inmediato).
Solución:
De acuerdo con la descripción de Intel, la instrucción SHLD mostrada en la Figura 8.20 utiliza
direccionamiento directo.
www.FreeLibros.me
Un
Fqp
con
P
I
..=
prq
de,
pr6
guir
AD
'f'-
<7
•
¡ "D, , ',' " ' '
EL MICROPROCESADOR INTEL 8080/8085
.Ca
1
pstro
1
leop
Registro H
1111 0000
1010 1010
?
Registro L
1010 1010
?
3103H
t
;;ecu-
Antes de la operación
Ida en
Memoria de datos
Después de la operación
Código de operación
Memoria de programa
279
200AH
22H
200BH
02H
200cH
31H
SHLD
Figura 8.20.
8.41.
~
l
Después de la operación de almacenar ilustrada en la Figura 8.20, la posición de la
memoria de datos _ _ (hex) contiene 10 10 10 10 2, mientras que la posición 3103H
contiene _ _ (8 bits).
Solución:
La instrucción SHLD utiliza direccionamiento indirecto, así que la dirección de 16 bits es
ensamblada con el segundo y tercer bytes de la memoria de programa. Por tanto, después de la
operación de almacenar ilustrada en la Figura 8.20, la posición 3103H de la memoria de datos
contiene 111100002, mientras que la posición 3102H contiene 101010102,
•
8.7. INSTRUCCIONES ARITMETICAS DEL 8080/8085
t
Un resumen de las instrucciones aritméticas del microprocesador 8080/8085 se muestra en la
Figura 8.21. Estas instrucciones incluyen las operaciones de suma, suma con arrastre, resta, resta
con préstamo, incrementación, decrementación y ajuste decimal. Sólo los nemotécnicos y códi­
gos de operación de las instrucciones aritméticas se dan en la Figura 8.21 en la página 283.
Como en la sección anterior, el grupo aritmético de instrucciones se detallará utilizando el
propio formato de Inte! Corporation. Este grupo de instrucciones realiza operaciones aritméticas
sobre datos en registros y memoria. A menos que se indique otra cosa, todas las instrucciones de
este grupo afectan a los sefializadores de cero (Z), de signo (S), de paridad (P), de arrastre (eY) y
de arrastre auxiliar (AC). Todas las operaciones de resta son realizadas vía aritmética de comple­
mento a 2 y ponen el sefializador de arrastre a 1 para indicar un préstamo y a O para indicar no
préstamo. Acudir a la Figura 8.18 para los significados de las abreviaturas utilizadas en las si­
guientes descripciones del Manual del Usuario de lntel.
n8.19
mediato
de trnns­
.máqui­
¡Hm~
rencia de
...
namien­
.20 utiliza
ADD r (Suma registros)
(A) <E- (A) + (r)
El contenido del registro r es sumado al
contenido del acumulador. El resultado
se coloca en el acumulador.
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
1
4
registro
Z,S,P,CY,AC
ADD M (Suma memoria)
(A) <E- (A) + «H) (L»
El contenido de la posición de memoria
www.FreeLibros.me
I
f
I
280
FUNDAMENTOS DE LOS MICROPROCESÁDORES
cuya dirección está contenida en los regis­
tros H y L es sumado al contenido del
acumulador. El resultado se coloca en el
acumulador
/
2
7
indirecto de res.
Z,S,P,CY,AC
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
El contenido del segundo byte de la ins­
trucción es sumado al contenido del acu­
mulador. El resultado se coloca en el acu­
mulador.
Aa dato
(A) _ (A) + (r) + (CY)
Dil
(Suma inmediata con arrastre)
El contenido del segundo byte de la ins­
trucción y el contenido del señalizador
CY son sumados al contenido del acumu­
lador. El resultado se coloca en el acumu­
lador.
f
2
7
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
ET
tru
mi
mi
E
Dim
f
inmediato
Z,S,P,CY,AC
I
SUB r (Resta registro)
(A) _ (A) - (r)
El contenido del registro r es restado del
contenido del acumulador. El resultado
se coloca en el acumulador.
[
1
4
registro
Z,S,P,CY,AC
SUJ
(A
• ..1
El contenido del registro r y el contenido
del bit de arrastre son sumados al conte­
nido del acumulador. El resultado se co­
loca en el acumulador.
I
G
(A) _ (A) + (byte 2) + (CY)
AOC r (Suma registro con arrastre)
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
(
t
a
a
2
7
indirecto de reg.
Z,S,P,CY,AC
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
O
2
7
inmediato
Z,S,P,CY,AC
Ciclos:
Estados:
Direccionamiento:
Señalízadores:
Sl
(A) _ (A) + «H) (L» + (CY)
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L y el contenido del señalizador
CY son sumados al acumulador. El resul­
tado se coloca en el acumulador
{:
ADI dato (Suma inmediata)
(A) _ (A) + (byte 2)
I
AOC M (Suma memoria con arrastre)
l
I
I
O I O
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
I~
I
S
I
S
1
4
registro
Z,S,P,CY,AC
I
S
SBDI
(A)
El,
del
del
eh
c=
.~
Din
,
www.FreeLibros.me
~
,
'.i:
-''Ir
r
'\ f~ ­
. . . ;tU
o_
ji•.,"
'1',
,oc
44= 41V"
,;q;:
,'1 i:
1
281
EL MICROPROCESADOR INTEL 8080/8085
moria
regis­
izador
resul­
SUB M (Resta memoria)
(A) +- (A) «H) (L»
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L es restado del contenido del
acumulador. El resultado se coloca en el
acumulador
SBB M (Resta memoria con préstamo)
(A) +- (A) - «H) (L» - (CY)
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L y el contenido del señalizador
CY son ambos restados del acumulador.
El resultado se coloca en el acumulador
1'0'0'1'1'1'1'0
Ciclos:
Estados:
Oireccionamiento:
Señalizadores:
t la ¡ns­
alizador
acumu­
,acumu-
SUI dato (Resta inmediata)
(A) +- (A) (byte 2)
El contenido del segundo byte de la ins­
trucción es restado del contenido del acu­
mulador. El resultado se coloca en el acu­
mulador.
: I
dato
Ciclos:
Estados:
Oireccionamiento:
Señalizadores:
I
:stado del
resultado
Ciclos:
Estados:
Oireccionamiento:
Señalizadores:
2
7
indirecto de reg.
Z,S,P,CY,AC
I
O
2
7
indirecto de reg.
Z,S,P,CY,AC
SBI dato (Resta inmediata con préstamo)
(A) +- (A) - (byte 2) (CY)
El contenido del segundo byte de la ins­
trucción y el contenido del señalizador
CY son ambos restados del acumulador.
El resultado se coloca en el acumulador.
I
2
7
inmediato
Z,S,P,CY,AC
SBB r (Resta registro con préstamo)
(A) +- (A) - (r) (CY)
El contenido del registro r y el contenido
del señalizador CY son ambos restados
del acumulador. El resultado se coloca en
el acumulador,
t-1-__I_o_I_~_~_1_1_1_1_1
Ciclos:
Estados:
Oireccionamiento:
Señalizadores:
_'_0-1
2
7
inmediato
Z,S,P,CY,AC
INR r (Incrementa registro)
(r) +- (r) + 1
El contenido del registro r es incrementa­
do en uno. Nota: Todos los señalizadores
de condición excepto CY están afectados.
0101010101110101
Ciclos:
Estados:
Oireccionamiento:
Señalizadores:
1
4
registro
Z,S,P,CY,AC
Ciclos:
Estados:
'Direccionamiento:
Señalizadores: .
www.FreeLibros.me
1
4 (8085), 5(8080)
registro
Z,S,P,AC
:
282
I
FUNDAMENTOS DE LOS MICROPROCESADORES
INR M (Incrementa memoria)
«H) (L) _ «H) (L» + I
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L es incrementado en uno. Nota:
Todos los señalizadores de condición ex­
cepto CY son afectados.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
(Decrementa registro)
(r)_(r)- l
El contenido del registro r es decrementa­
do en uno. Nota: Todos los señalizadores
de condición excepto CY son afectados.
oloIDIDIDIIIO~ll
1 1 1
1
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
mentado en uno. Nota: Ningún seitaliza­
dor de condición es afectado.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
4 (8085), 5 (8080)
registro
Z,S,P,AC
lO I
I
lO 1: 1
3
10
indirecto de reg.
Z,S,P,AC
INX rp (Incrementa registro par)
(rh) (rl) _ (rh) (rI) + l
El contenido del registro par rp es incre­
l
6 (8085), 5 (8080)
registro
ninguno
OCX rp (Decrementa registro par)
(rh) (rJ) _ (rh) (rl) - l
El contenido del registro par rp es decre­
mentado en uno. Nota: Ningún seitaliza­
dor de condición es afectado.
'.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
1
6 (8085), 5 (8080)
registro
ninguno
.
"~
I
DAD rp (Suma registro par a H y L)
(H) (L) _ (H) (L) + (rh) (rl)
El contenido del registro par rp es suma­
do al contenido del registro par H y L. El
resultado es colocado en el registro par H
y L. Nota: Sólo es afectado el seitalizador
CY. Se pone a 1 si hay un arrastre en la
suma en doble precisión; en cualquier
otro caso está en reinicialización.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
10
registro
CY
---...
bJe­
DAA (Ajuste decimal acumulador)
El número de ocho bits del acumulador
es ajustado para formar dos dígitos Deci­
males Codificados en Binario de cuatro
bits, por el siguiente proceso:
www.FreeLibros.me
m
1
l
DCR M (Decrementa memoria)
«H) (L» _ «H) (L» - l
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L es decrementado en uno. Nota:
Todos los señalizadores de condición ex­
cepto CY son afectados.
o 10
\
"'.
3
10
indirecto de reg.
Z,S,P,AC
DcR r
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
,
t ....
T--.
-
I
Suma*
eilaliza-
~
AOO
87
80
81
82
83
84
85
86
AOC
A
8
C
O
E
H
L
M
8F
88
89
8A
88
8C
80
8E
J
t
es decre­
señaliza-
~
i (8080)
Incrementa**
A
8
C
O
E
H
L
M
(8080)
INR
A
8
C
O
E
H
L
M
INX {
8
O
H
SP
\
. es suma­
H y L. El
lrO par H
l'ializador
t5'!re en la
Jalquier
SUB
A
8
C
O
E
H
L
M
97
90
91
92
93
94
95
96
A
8
C
O
9F
98
99
9A
98
9C
90
9E
E
H
L
M
11.
Doble sumat
OAO{ ~
SP
3C
04
OC
14
IC
24
2C
34
03
13
23
33
Decrementa**
OCR
A
8
C
O
E
H
L
M
30
05
00
15
ID
25
2D
35
OB
INX {
8
O
H
SP
Resta*
SUB
or)
umulador
~tos Deci­
EL MICROPROCESADOR INTEL 8080;8085
18
28
38
Especial
DAA* 27
Inmediato
ADI byte
ACI byte
SUI byte
S81 byte
C6
CE
D6
OE
09
19
29
39
byte - expresión constante o lógica/aritmética que evalúa un dato de 8 bits (segundo byte de instrucciones de 2 bytes)
• - todos los sei\alizadores le. z. S. p. AC) afectados
•• ­ todos los sei\alizadores excepto el de ARRASTRE son afectados (excepción: INX y DXC no afectan a los sei\alizadores)
t - sólo CY (ARRASTRE) afectado
Todos los nemotécnicos tienen derecho de copia de Intel Corporation 1976
de cuatro
Figura 8.21.
Resumen de las instrucciones aritméticas del 8080/8085.
www.FreeLibros.me
283
.-7--­
r
284
FUNDAMENTOS DE LOS MICROPROCESADORES
2. Si el valor de los 4 bits más significati­
Ciclos:
Estados:
Señalizadores:
vos del acumulador es ahora mayor
que 9, se suma 6 a los 4 bits más
significativos del acumulador.
Intel
1
del C(
conte
ejecU'
que II
y siet
Z,S,P,CY,AC
u
(A) +- (A) + (r) + (Cn
Esto significa que el contenido de r (registro B en este ejemplo) y el contenido del bit de arrastre
(CY) son sumados al contenido del acumulador (registro A). La suma es depositada en el acumu­
lador. La descripción de Intel muestra que esta operación utiliza una instrucción de 1 byte. La
descripción también muestra que la instrucción ADC B es ejecutada en un ciclo máquina y
cuatro estados T. Se utiliza el modo de direccionamiento de registro, y todos los señalizadores (2, r.
S, P, CY Y AC) son afectados por la ejecución de esta instrucción.
I
La instrucción ADC B (suma registro B con arrastre) está ejecutándose en la Figura 8.22. El !
contenido del registro A (10000000 en este ejemplo) se suma al del registro B (10000000) y al del/'
bit de arrastre (puesto a I en este ejemplo). El problema puede ser el siguiente:
.
.
.
1000 0000
1000 0000
+
1
registro A
registro B
bit de arrastre
I 0000 000 1
suma
100000001
.
.
I
Acumulador
Después de la operación
I
'--'---I~---L--I.--I--J..-I
AC
P
Figura 8.22.
I
s z
p
Registro de status
C
La instrucción suma con arrastre (ADC 8).
La suma es igual a 1 0000 000 l. Los 8 bits menos significativos (0000 000 1) son depositados en el
acumulador. Esto se muestra en la Figura 8.22. El overflow (rebose) del acumulador (el bit más
significativo de la suma) pone el seftalizador de arrastre (CY) a 1 despuéS de la operación. Los bits
de signo, cero, arrastre auxiliar y de paridad par son puestos a O después que se ejecuta la
instrucción AOC B en la Figura 8.22.
www.FreeLibros.me
~
Esto I
4
Considerar la instrucción AOC B (sumar registro B con arrastre) listada en la Figura 8.21. Su
funcionamiento se detalla en la sección ADC r (sumar registro con arrastre). lntel Corporation
describe esta instrucción en forma simbólica como
.
.,
cJ
NOTA: Todos los señalizadores son afec­
tados.
l. Si el valor de los 4 bits menos signifi­
cativos del acumulador es mayor
que 9 o si el señalizador AC está a 1,
se suma 6 al acumulador.
~--~
acum
señal;
datos
(OOOC
.'.
asa
,~
i
,;~
EL MICROPROCESADOR INTEL 8080/8085
~
285
A continuación considerar la utilización de la instrucción del 8085 SBB M (resta memoria
con préstamo) del listado de la Figura 8.21. Su funcionamiento se detalla en la sección SBB M.
Intel describe esta instrucción en forma simbólica como
son afec­
~
"
~:
;1···.·····
(A) +- (A) - «H)(L» - (Cn
\
I
~-
Esto significa que el contenido de la posición de memoria sefialada por el registro HL es restado
del contenido del acumulador. El bit de arrastre (Cn del registro de status es también restado del
contenido del acumulador. La diferencia es depositada en el acumulador despuéS de que se
ejecuta la instrucción. Intel Corporation también nota que SBB M es una instrucción de 1 byte
que utiliza direccionamiento indirecto de registro. Para su ejecución necesita dos ciclos máquina
y siete estados T. Todos los señalizado res son afectados por la instrucción SBB M.
La instrucción SBB M (resta memoria con préstamo) se está ejecutando en la Figura 8.23b. El
acumulador contiene 00000 l 00, el bit de arrastre es 1, Y la posición de la memoria de datos
señalada por el registro HL contiene 00000010. La operación de la instrucción SBB M con los
datos está detallada en la Figura 8.23a. Los dos sustraendos son sumados primero
(00000010 + l = 00000011). El nuevo sustraendo combinado de 000000 11 se convierte entonces
a su forma en complemento a 2 (1111110 1). El minuendo (00000 100) se suma entonces al
r.AC
Ha 8.21. Su
:orporation
~~=~
• el acumu­
~ I byte. La
máquina y
zadores (Z,
+
e
ara 8.22. El
00) yal del
r;:;l
000000 I o
I
000000 I I
00000 100
+ 1 I I I I JOI
Inyiene
Memoria de datos (2080H)
Bit de arrastre
Nuevo sustraendo
Acumulador (minuendo)
Complemento a dos del sustraendo
~ ....- - - - (1:'0000000 I
CY
«no préstamo»
Overflow Diferencia
Solución para el problema de resta con préstamo
(a)
Acumulador
Acumulador
mdóa
Registro de status
I...I-_-_-_­ _ __
-
....I-....J
AC
Lde status
Memoria de datos
,
J.
(l880H)
~L
lados en el
(el bit más
11. Los bits
ejecuta la
Registro HL
~
(b)
Instrucción de resta con préstamo (SBB M)
Figura 8.23.
t
O Registro de status
r.......1......I.........---L--L-..I._....I
www.FreeLibros.me
CY
--"""-­
286
FUNDAMENTOS DE LOS MICROPROCESADORES
complemento a 2 del sustraendo (1111110 1), dando 1 0000 000 1. Los 8 bits menos significativos
forman la diferencia (00000001 en este ejemplo), mientras que el «overflow» de 1 es invertido por
el microprocesador poniendo a O el señalizador de arrastre (el'). El señalizador de reinicializa­
ción significa «no préstamo» o que el minuendo era mayor que los sustraendos combinados en
este problema.
Las instrucciones de suma con arrastre y resta con préstamo no son utilizadas con la suma o
resta regular de un solo byte. Estas son instrucciones especiales utilizadas cuando se suman o
restan 2 o más bytes de datos. La forma en que se utilizan estas instrucciones en la programación
real se demostrará en el capítulo sobre programación.
PROBLEMAS RESUELTOS
8.47.
8.42.
El código de op para la instrucción ADD e es _ _ (hex). Esta operación suma el
contenido del registro _ _ (letra) al contenido del acumulador. La instrucción ADD e
utiliza direccionamiento ___ (de registro, indirecto de registro).
Solución:
De acuerdo con la Figura 8.21 y la descripción de Intel de <<suma registro», el código de op para
la instrucción ADD es 81 H. Esta operación suma el contenido del registro al contenido del
acumulador. La instrucción ADD utíliza direccionamiento de registro.
e
8.43.
e
e
El código de op para la instrucción INX Hes _ _ (hex). Esta operación _ _ (decre­
menta, incrementa) el registro par _ _ (Be, HL). La instrucción INX H afecta
a _ _ (todos, ninguno de los) señalizado res.
Solución:
De acuerdo con la Figura 8.21 y la descripción de Intel de «incrementa registro par», el código
de op para la instrucción INX Hes 23H. Esta operación incrementa el registro par HL. La instruc­
ción INX H no afecta a los señalizadores.
. 8.44.
El código de op del 8085 para la instrucción DAD B, esbozada en la Figura 8.24,
es _ _ (hex).
Solución:
De acuerdo con la Figura 8.21, el código de op para la instrucción DAD B esbozada en la
Figura 8.24 es 09H.
8.45.
La instrucción DAD B de la Figura 8.24 suma el contenido de _ _ (8, 16) bits del
registro par H L al contenido del registro par _ _ (dos letras).
Solución:
De acuerdo con la descripción de Intel,la instrucción DAD B utilizada en la Figura 8.24 suma
. el contenido de 16 bits del registro par HL al contenido del registro par Be.
8.46.
8.48.
DespuéS de la operación DAD B de la Figura 8.24, el registro par HL contendrá _ _
(hex).
Solución:
Sumar el hexadecimal FFFF + 000 1 .. I OOOOH. Por tanto después de la operación DAD B de
la Figura 8.24, el registro par HL contendrá OOOOH.
www.FreeLibros.me
ACI
J
1
'1"~"'·
EL MICROPROCESADOR INTEL 8080/8085
5 significativos
s invertido por
:le reinicializa­
ombinados en
287
Registro HL
Después de la operación
,,
con la! suma o
lo se suman o
programación
?
FFFFH
Registro de status
s
Z
AC
P
CY
Figura 8.24.
8.47.
ción suma el
cciónADDC
,
Listar la condición de los señalizadores del registro de status después que se haya ejecuta­
do la instrucción DAD B en la Figura 8.24.
Solución:
Sólo es afectado el señalizador de arrastre por la operación DAD B. Por tanto, las condiciones
de los señalízadores de signo, cero, arrastre auxiliar y paridad par de la Figura 8.24 no son predeci­
bles. El señalizador de arrastre (eY) se pondrá a 1 a causa del «overflow» o arrastre durante la
suma (FFFF + 000 I ". 1OOOOH).
ligo de op para
contenido del
8.48.
(decre­
IilX H afecta
Acudir a la Figura 8.25. ¿Es el número del acumulador antes de la operación DAA un
número «legal» BCD (decimal codificado binario 8421)?
Solución:
El número
0000 1110
no es un número BCD «legal» porque el 1110 no tiene equivalente
BCD.
1III.f'»,
rL
el código
La ínstruc­
Acumulador
~
I~"~
---,
FIgura 8.24,
lazada en la
Acumulador
Registro de
status
I
L,_ _---1..--1._
Registro de
status
'
_ _---1
s
16) bits del
Z
AC
P
CY
Figura 8.25.
lS.24 suma
8.49.
lt
DADBde
El contenido del acumulador de la Figura 8.25 después de la operación DAA se­
rá _ _ (BCD), que es igual a _ _ en decimal.
Solución:
De acuerdo con la descripción lntel de la instrucción DAA (ajuste decimal del acumulador), el
contenido del acumulador de la Figura 8.25 después de la operación DAA será 0001 OIOOoco' que
es igual a 14 en decimal. Como lllO es mayor que 9, OlIO (6 10) se sumó a este número BCD
«ilegai», dando 0001 OIOOoco (14 10),
www.FreeLibros.me
•
288
'~
FUNDAMENTOS DE LOS MICROPROCESADORES
•.......
~'
8.50.
Listar la condición de los señalizadores' del registro de status después de la operación
DAA mosi.¡ada en la Figura 8.25.
1
Solución:
En la Figura 8.25 la operación DAA hacía que 0110 se sumase a 0000 1110, dando 00010100.
Durante esta operación los señalizadores se afectaron de la siguiente manera:
Señalizador de signo (S) ~ O
Señalizador de arrastre auxiliar (AC) .. 1
Señalizador de arrastre (eY) ~ O
Señalizador de cero (Z) = O
Señalizador de paridad par (P) .. l
8.51.
La instrucción SUB E de la Figura 8.26 resta el contenido del registro _ _ (letra) del
contenido del acumulador.
Solucióo:
La instrucción SUB E de la Figura 8.26 resta el contenido del registro E del contenido del acu­
mulador.
Acumulador
1aa
Después de la operación
SUBE
Registro de status
s
Z
AC
P
CY
Figura 8.26.
....
(01'1
sol!
8.52.
Después de que se ha ejecutado la instrucción SUB E en la Figura 8.26, el contenido del
acumulador será _ _ (8 bits).
Solución:
La MPU cambia el sustraendo (00000010 en el registro E) a su forma en complemento a 2
(11111110) Ysuma como sigue:
00000001
+ 11111110
O 1111 1111
AJIj
(
t
I
minuendo
sustraendo en complemento a 2
diferencia
Los 8 bits menos significativos de la diferencia (1111 1111) se depositan en el acumulador. En
forma decimal, el problema es 1 - 2 = -l. El -1 10 es igual a 1111 Illt en notación de complemen­
to a 2.
8.53.
Acudir a la Figura 8.26. Listar la condición de los señalizadores del registro de status
después que se haya ejecutado la instrucción SUB E.
Solución:
DespuéS de la operación SUB E de la Figura 8.26, los señalizadores están en las siguientes con­
diciones:
Señalizador de signo (S) - 1
Señalizador de arrastre auxiliar (AC) .. 1
www.FreeLibros.me
[
1
EL MICROPROCESADOR INTEL 8080/8085
lCión
Señalizador de arrastre (CY) - I
Señalizador de cero (Z) = O
Señalizador de paridad par (P) = I
La MPU cambia el sustraendo (000000 100 en el registro E) a su forma en complemento a 2
(11111110) Y suma como sigue:
1>100.
\
del
L!·
L
Den­
:orl.
-
m
CY
. En
289
invierte
0000 000 1 minuendo
+ 1111 1110 sustraendo en complemento a 2
O 1111 llll diferencia
Notar que el bit de overflow (bit más significativo) en la diferencia es un O que está invertido y
colocad0 en el señalizador de arrastre (eY) del registro de status. Un señalizador de arrastre puesto
a 1 despuéS de la operación de resta significa que la diferencia es un número en complemento a 2 y
que el sustraendo era mayor que el minuendo.
8.8. INSTRUCCIONES LOGICAS DEL 8080/8085
Un resumen de las instrucciones lógicas del microprocesador 8080/8085 se muestra en la Figu­
ra 8.27. Estas incluyen las instrucciones AND, OR, XOR, comparar, desplazamiento circular y
complementación. Solamente los códigos de op y nemotécnicos de Intel están listados para cada
instrucción en la Figura 8.27.
Como en la sección anterior, el grupo de instrucciones lógicas se detallará utilizando el propio
formato de Intel Corporation. Este grupo de instrucciones realiza operaciones lógicas (booleanas)
sobre los datos de los registros, memoria y señalizadores. Acudir a la Figura 8.18 para los sig­
nificados de las abreviaturas utilizadas en las siguientes descripciones del Manual del Usuario
dellntel.
A."iA r (ANO registro)
lA) +- (A) A (r)
El contenido del registro r realiza la ope­
ración lógica AND con el contenido del
acumulador. El resultado se coloca en el
acumulador. El señalizador CY es puesto
al)" AC al (8085). El señalizador CY es
JIIRSlo a O y el AC a 1 para la operación
OR. los bits 3 de los operandos (8080).
ANA M
(ANO memoria)
(A) +- (A) A «H) (L»
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L realiza la operación lógica
AND con el contenido del acumulador.
El resultado se coloca en el acumulador.
El señalizador CY es puesto a O y AC a 1
(8085). El señalizador CY es puesto a O y
AC a 1 para la operación OR de los bits 3
de los operandos (8080).
r
--
..
Ciclos:
1
Estados:
DiII: lX",miento:
;:. - ilizadores:
4
registro
Z,S,P,CY,AC
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
www.FreeLibros.me
2
7
indirecto de reg.
Z,S,P,CY,AC
290
FUNDAMENTOS DE LOS MICROPROCESADORES
ANI dato (AND inmediato)
(A) +- (A) /\ (byte 2)
El contenido del segundo byte de la ins­
trucción realiza la operación lógica AND
con el contenido del acumulador. El re­
sultado se coloca en el acumulador. El se­
. ñalizador CY es puesto a O y AC a 1
(8085). El señalizador CY es puesto a O y
AC a 1 para la OR de los bits 3 de los
operandos (8080).
dato
<
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
2
7
inmediato
Z,S,P,CY,AC
o
O
1
, O
2
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
7
indirecto de reg.
Z,S,P,CY,AC
XRI dato (OR exclusiva inmediata)
(A) +- (A) V (byte 2)
El contenido del segundo byte de la ins­
trucción realiza la operación OR exclusi­
va con el contenido del acumulador. El
resultado se coloca en el acumulador. Los
señalizadores CY y AC son puestos a O.
.'.'.'0 ' .'1 ' .'0
dato
XRA r
(OR exclusivo registro)
(A) +- (A) V (r)
El contenido del registro r realiza la ope­
ración OR exclusiva con el contenido del
acumulador. El resultado se coloca en el
acumulador. Los señalizadores CY y AC
son puestos a O.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
XRA M
•
4
registro
Z,S,P,CY,AC
(OR exclusiva memoria)
(A) +- (A) V «H) (L»
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L realiza la operación OR exclu­
siva con el contenido del acumulador. El
resultado se coloca en el acumulador. Los
señalizadores CY y AC son puestos a O.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
2
7
inmediato
Z,S,P,CY,AC
ORA r (OR registro)
(A) +- (A) V (r)
El contenido del registro r realiza la ope­
ración OR ind1usiva con el contenido del
acumulador. El resultado se coloca en el
acumulador. Los señalizadores CY y AC
son puestos a O.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
•
4
registro
Z,S,P,CY,AC
ORA M (OR memoria)
(A) +- (A) V «H) (L»
El contenido de la posición de memoria
cuya dirección está contenida en los regís­
www.FreeLibros.me
(
EL MICROPROCESADOR lNTEL 8080/8085
tros H YL realiza la operación OR inclu­
siva con el contenido del acumulador. El
resultado se coloca en el acumulador. Los
señalizadores CY y AC son puestos a O.
1
1 0'1 1 1'0
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
1110
2
7
indirecto de reg.
Z,S,P,CY,AC
ORI dato (OR inmediato)
(A) +- (A) v (byte 2)
El contenido del segundo byte de la ins­
trucción realiza la operación OR inclusi­
va con el del contenido del acumulador.
El resultado se coloca en el acumulador.
Los señalizadores CY y AC son puestos
a O.
dato
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
2
7
inmediato
Z,S,P,CY,AC
CMP r (Compara registro)
(A) - (r)
El contenido del registro r es restado del
acumulador. El acumulador permanece
inalterado. Los señalizadores de condi­
ción son inicializados según el resultado
de la sustracción. El señalizador Z se
pone a 1 si (A) = (r). El señalizador CY se
JIOIIe a 1 si (A) < (r).
Ciclos:
Estados:
Din:ccionamiento:
Señalizadores:
l
4
registro
Z,S,P,CY,AC
CMP M
291
(Compara memoria)
(A) - «H) (L»
El contenido de la posición de memoria
cuya dirección está contenida en los regis­
tros H y L es restado del acumulador. El
resultado permanece inalterado. Los se­
ñalizadores de condición se ponen a 1 se­
gún el resultado de la resta. El señalizador
Z se pone a 1 si (A) =«H) (L». El señali­
zador CY se pone a 1 si (A) < «H) (L».
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
2
7
indirecto de reg.
Z,S,P,CY,AC
CPI dato (Comparación inmediata)
(A) - (byte 2)
El contenido del segundo byte de la ins­
trucción es restado del acumulador. Los
señalizadores de condición se ponen a 1
según el resultado de la resta. El señaliza­
dor Z se pone a 1 si (A) =(byte 2). El
señalizador CY se pone a 1 si (A) < (byte
2).
, l
'
1 ' l
, l 1O
dato
#
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
2
7
inmediato
Z,S,P,CY,AC
RLC (Desplazamiento circular a la IZ­
quierda)
(An + 1) +- (A n); (A o) +- (A 7)
(CY) +-(A 7)
El contenido del acumulador es desplaza­
do a la izquierda una posición. El bit de
orden inferior y el señalizador CY contie­
nen ahora el valor del bit de orden más
elevado antes de la operación de despla­
www.FreeLibros.me
292
FUNDAMENTOS DE LOS MICROPROCESADORES
zamiento. Sólo es afectado el seílalizador
CY.
[o
I
O
I
O
I
Ciclos:
Estados:
Señalizadores:
O
I
O
I
1
I
1
I
1
1
4
CY
RRC (Desplazamiento circular a la dere­
cha)
(Ah) +- (A n + 1); (A 7) +- (Ao)
(CY)+-(Ao)
El contenido del acumulador es desplaza­
do una posición a la derecha. El bit de
\ orden superior y el señalizador CY con­
tienen ahora el bit de orden inferior del
acumulador antes de realizar la operación
de desplazamiento. Solamente está afec­
tado el señalizador CY.
RAR (Desplazamiento circular a la dere­
cha a través del arrastre)
(Ah) +- (A n + ); (CY) +- (Ao)
(A 7)+-(CY)
El contenido del acumulador es desplaza.;
do, circularmente, a la derecha una posi­
ción a través del señalizador CY. El bit de
orden superior toma el valor del señaliza­
dor de arrastre y el señalizador de arrastre
toma el valor del bit de orden inferior del
acumulador antes de realizar la operación
de desplazamiento. Solamente es afecta­
do el seílalizador CY.
Ciclos:
Estados:
Señalizadores:
1
4
CY
CMA (Complementa el acumulador)
Ciclos:
Estados:
Señalizadores:
(A)+-(A)
El contenido del acumulador es comple­
mentado (los bits cero se hacen 1, los bits
uno se hacen O). Ningún señalizador está
afectado.
1
4
CY
RAL (Desplazamiento circular a la iz­
quierda a través del arrastre)
(An + ) +- (An); (CY) +- (A 7)
(Ao) +-(CY)
El contenido del acumulador es desplaza­
do a la izquierda una posición, circular­
mente, a través del señalizador CY. El bit
de orden inferior toma el valor que tenía
el bit de orden superior del acumulador
antes de la operación de desplazamiento.
Solamente es afectado el señalizador CY.
•
Ciclos:
Estados:
Señalizadores:
1
4
ninguno
CMe (Complementa arrastre)
(CY)+-(CY)
El señalizador CY es complementado.
Ningún otro seílalizador es afectado.
O I O
Ciclos:
Estados:
Seftalizadores:
l
4
CY
Ciclos:
Estados:
Señalizadores:
www.FreeLibros.me
1
4
CY
EL MICROPROCESADOR INTEL 8080/8085
ere­
src
(Pone a l el arrastre)
(CY) +- l
El señalizador CY se pone a l. Los demás
señalizadores no son afectados.
1
Ciclos:
Estados:
Señalizadores:
.aza­
;K'Sl­
,it de
lliza­
astre
Ir del
293
1
l
4
CY
Inmediato
A
8
C
iletÓn
ANA
recta­
o
E
H
L
M
A
8
C
XRA
o
E
H
L
M
A
8
C
>:':Tlple­
;: bits
Ior está
ORA
o
E
H
L
M
A
B
C
CMP
o
E
H
L
M
A7
AO
Al
A2
A3
A4
A5
A6
AF
A8
A9
AA
A8
AC
AO
AE
ANI byte
XRI byte
ORI byte
CPI byte
E6
EE
F6
FE
Desplazamiento
circular
RLC
RRC
RAL
RAR
07
OF
17
lF
Especiales
CMA
STC
CMC
2F
37
3F
87
BO
81
82
83
B4
85
B6
8F
88
89
BA
BB
Be
BO
BE
I
mentado.
!Ido.
~
~
Figura 8.27.
Resumen de las instrucciones lógicas del 8080/8085. (Todos los nemotécnicos
tienen derecho de copia © Intel Corporation. 1976.)
Notar el uso por Intel del símbolo A para simbolizar la operación lógica AND en las descrip­
ciones de datos ANA r, ANA M Y ANI. De igual forma, lotel utiliza el símbolo V para denotar la
operación lógica OR en las descripciones de datos ORA r, ORA M Y ORI. Además, lotel utiliza
www.FreeLibros.me
294
FUNDAMENTOS DE LOS MICROPROCESADORES
el símbolo "rj para indicar la operación lógica XOR (OR exclusiva) en las descripciones de datos
XRA r, XRA M, y XRI.
Considerar las cuatro instrucciones de desplazamiento del 8085 de la Figura 8.28. La acción
de desplazamiento circular a la izquierda y a la derecha a través del arrastre (RAL, RAR) está
esquematizada en la Figura 8.28a y b. Este desplazamiento circular a través del arrastre se ob­
servó cuando se utilizaron las instrucciones de desplazamiento circular en el microprocesador
genérico.
La acción de las instrucciones de desplazamiento circular a la izquierda ya la derecha (RLC,
RRC) está indicada en la Figura 8.28c y d. Esta acción es algo diferente de la observada antes, a
causa de que el dato no es desplazado circularmente a través de la posición de arrastre.
!
(Instrucción de desplazamiento circular a la
¡-.;- --JrJ
~I
izqui~ a travéS del arrastre) ~1..-.
CY
(a)
___
Acumulador
Funcionamiento de la instrucción de desplazamiento circular a la izquierda a través del arrastre
¡-.: __ ~í
(Instrucción de desplazamiento circular a la
der!~:a través del arrastre) L...Q--1____.. . . .~
CY
(b)
Acumulador
Funcionamiento de la instrucción de desplazamiento circular a la derecha a travéS del arrastre
RLC
(Desplazamiento circular a la izquierda del acumulador)
CY
b7
bo
Acumulador
(e) Funcionamiento de la instrucción de desplazamiento circular a la izquierda del acumulador
b7
bo
Acumulador
(d) Funcionamiento de la instrucción de desplazamiento circular a la derecha del acumulador
Figura 8.28.
PROBLEMAS RESUELTOS
8.54.
El código de op para la instrucción ANA M es _ _ (hex). Esta operación realiza la
operación ANO del contenido del acumulador con el contenido de la posición de la
memoria de _ _ (datos, programa) señalada por el registro par _ _ (letras). Se trata
de una instrucción de ___ (número) bytes.
www.FreeLibros.me
•
EL MICROPROCESAOOR INTEL 8080/8085
Solución:
De acuerdo con la Figura 8~27 y la descripción «ANO memoria» de Intel, el código de op para
la instrucción ANA M es A6H. Esta operación realiza la operación ANO del contenido del acumu­
lador con el contenido de una posición de la memoria de datos señalada por el registro par HL. Se
trata de una instrucción de 1 byte.
: datos
acción
R) está
se ob­
:esador
295
8.55.
(RLC,
antes, a
I
El código de op para la instrucción ORI es _ _ (hex). Se trata de una instrucción
de ___ (número) bytes que utiliza direccionamiento ___ (directo, inmediato). El
contenido del acumulador realiza la operación OR con el contenido de la memoria
de _ _ (datos, programa).
Solución:
De acuerdo con la Figura 8.27 y la descripción de Inte) de «OR inmediato», el código de op
para la instrucción ORI es F6H. Se trata de una instrucción de 2 bytes que utiliza direccionamiento
inmediato. El contenido del acumulador realiza la operación OR con el contenido de memoria del
programa.
8.56.
El contenido del acumulador de Ía Figura 8.29 después de la oper.ación RLC se­
rá _ _ (8 bits).
Solución:
Según el diagrama de la Figura 8.28c, el contenido del acumulador de la Figura 8.29 después de
la operación RLC será 00000001.
Acumulador
Acumulador
Antes de la operación
Registro de statús
ío!
I ----.Io~
Registro de status
Cy
Cy
KUmulador
Figura 8.29.
1.57.
I
~ .cumulador
El señalizador de arrastre estará a _ _ (O, 1) despuéS de la operación de desplazamien­
to circular a la izquierda (RLC) mostrado en la Figura 8.29.
Solución:
El señalizador de arrastre estará a 1 despUés de la operación de desplazamiento circular a la
izquierda (RLC) mostrada en la Figura 8.29.
1..9. NSTRUCCIONES DE BIFURCACION DEL 8080/8085
l'Jn realiza la
)5ióón de la
traS). Se trata
- "- ft.!!IUJIIen de las instrucciones de bifurcación del microprocesador 8080/8085 se muestra en la
__ ~ 8.30. Estas incluyen instrucciones de salto, llamada, vuelta y reinicialización. Solamente se
_- para cada instrucción los códigos de op y nemotécnicos de Intel en la Figura 8.30. Una
www.FreeLibros.me
296
FUNDAMENTOS DE LOS MICROPROCESADORES
Vuelta
Salto
'1
JMP adr
JNZ adr
JZ adr
JNC adr
JC adr
JPO adr
JPE adr
JP adr
JM adr
PCHL
C3
C2
CA
D2
DA
E2
EA
F2
FA
E9
Llamada
RET
RNZ
RZ
RNC
RC
RPO
RPE
RP
RM
.
C9
CO
C8
.~
DO
D8
EO
E8
FO
F8
J
[1
~,.
Reinicialización
,,~
",
CALLadr
O
C7
CD
CF
CNZadr
C4
1
D7
CZadr
2
CC
DF
CNC adr
D4
3
RST
E7
CC adr
OC
4
CPOadr
E4
EF
S
CPE adr
EC
6
F7
CPadr
F4
7
FF
CM adr
FC
adr = dirección de 16 bits (segundo y tercer bytes de
instrucciones de 3 bytes)
..
_
Figura 8.30. Resumen de las instrucciones de bifurcación 8080/8085.
(Todos los nemotécnicos tienen derecho de copia © Intel Corporation, 1976.)
breve descripción de los nemotécnicos se da en el resumen del repertorio de instrucciones de
la Figura 8.16.
Como en las secciones anteriores, el grupo de instrucciones de bifurcaci6n se detallará utilizan­
do el formato propio de Intel Corporation. Este grupo de instrucciones altera el flujo secuencial
normal del programa. Los dos tipos de instrucciones de bifurcación son la incondicional y la
condicional. La incondicional simplemente realiza la operación especificada en el contador de
programa. Las transferencias condicionales examinan el status de uno de los cuatro señalizadores
de la MPU para determinar si se va a ejecutar la bifurcación especificada. Las condiciones que
pueden ser especificadas aparecen en el Manual del Usuario de Intel como sigue:
cee
CONDIOON
NZ ZNC CPO PE PM-
no cero (Z .. O)
cero(Z= 1)
no arrastre (CY = O)
arrastre (CY = 1)
paridad par (P = O ) . '
paridad impar (P = 1) .
más (S=O)
menos (S = 1)
000
001
010
011
100
JMP addr (Salto)
(PC) ~ «byte 3)(byte 2»
El control es transferido a la instrucción
cuya dirección está especificada en los
bytes 3 y 2 de la instrucción actual.
ro 1
1 ' 1 '0'0'0'0'111
110
111
dir. orden inferior
dir. orden superior
www.FreeLibros.me
.
d
EL MICROPROCESADOR INTEL8080/8085
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
10
inmediato
ninguno
1
1 1110 lO 111110
1
dir. orden inferior
Jcondition addr (Salto condicional)
Ir (CCC),
(PC) +- «byte 3)(byte 2))
Si la condición especificada es cierta, el
control es transferido a la instrucción
cuya dirección está especificada en los
bytes 3 y 2 de la instrucción actual; en
cualquier otro caso, el control continúa
secuencialmente.
airo orden inferior
dir. orden superior
Ciclos:
Estados:
t.
16.)
bcciones de
tallará utilizan­
, secuencial
trD<úcional y la
el contador de
"" señalizadores
. jtciones que
f
~
..
la la instrucClon
. ;;cada en los
actual.
1100
TO
erior
I 1 I
Direccionamiento:
Señalizadores:
297
2/3 (8085), 3 (8080)
7/ l O (8085),
10 (8080)
inmediato
ninguno
dir. orden superior
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
18 (8085),
17 (8080)
inmediato/indirec­
to de reg.
ninguno
Ccondition addr (Llamada condicional)
Ir (CCC),
«SP) - 1) +- (PCH)
«SP) - 2) +- (PCL)
(SP) +- (SP) 2
(PC) +- (byte 3)(byte 2)
Si la condición especificada es cierta, las
acciones especificadas en la instrucción
CALL (ver anterior) son realizadas; en
cualquier otro caso, el control continúa
secuencialmente.
l
CALL addr (Llamada)
(SP) 1) +- (PCH)
(SP) - 2) +- (PCL)
(SP) +- (SP) 2
(PC) +- (byte 3)(byte 2)
Los ocho bits de orden superior de la di­
rección de la siguiente instrucción son
uasnferidos a la posición de memoria
cuya dirección es una unidad menor que
el contenido del registro SP. Los ocho bits
de orden inferior de la direcCión de la si­
guiente instrucción son transferidos a la
posiCión de memoria cuya dirección es
dos unidades menor que el contenido del
registro SP. El contenido del registro SP
es decrementado en 2. El control es trans­
ferido a la instrucción cuya dirección está
especificada en los bytes 3 y 2 de la ins­
b'Ucción actual.
5
I
llclClclllOIO
.
dir. orden inferior
dir. orden superior
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
2/5 (8085),
3/5 (8080)
9/18 (8085),
11/17 (8080)
inmediato/indirec­
to de reg.
ninguno
RET .~elta)
(PCL) +- «SP));
(PCH) +- «SP) + 1);
(SP) +- (SP) + 2;
El contenido de la posición de memoria
cuya dirección está especificada en el re­
www.FreeLibros.me
298
FUNDAMENTOS DE LOS MICROPROCESADORES
gistro SP es transferido a los ocho bits de
orden inferior del registro PC. El conteni­
do de la posición de memoria cuya direc­
ción es una unidad superior al contenido
del registro SP es transferido a los ocho
bits de orden superior del registro PC. El
contenido del registro SP es incrementa­
do en 2.
I OI O
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
3
10
indirecto de reg.
ninguno
Rcondition (Vuelta condicional)
(CCC),
(PCL) ~ «SP»
(PCH) ~ «SP) + 1)
(SP) ~ (SP) + 2
Si la condición especificada es verdadera,
se realiza la acción especificada en la ins­
trucción RET (ver anterior); en cualquier
otro caso, el control continúa secuencial­
mente.
1
I
C
IC IC
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
.transferidos a la posición de memoria
cuya dirección es una unidad menor que
el contenido del registro SP. Los ocho bits
de orden inferior de la dirección de la si­
guiente instrucción son transferidos a la
posición de memoria cuya dirección es
dos unidades menor que el contenido del
registro SP. El contenido del registro SP
es decrementado en dos. El control es
transferido a la instrucción cuya direc­
ción es ocho veces el contenido de NNN.
I
O
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
12 (8085),
11 (8080)
indirecto de reg.
ninguno
1514131211109 8 7 6 5 4 3 2 1 O
lololololololololololNININlololol
Contador de programa despuéS
de La instrucción rearrancar
I OI O
1/3
6/12 (8085),
5/11 (8080)
indirecto de reg.
ninguno
RST n (Rearrancar)
«SP) 1) ~ (PCH)
«SP) 2) ~ (PCL)
(SP) <E-\ (SP) - 2
(PC) ~\8 • (NNN)
Los ocho bits de orden superior de la di­
rección de la siguiente instrucción son
PCHL (Salta indirecto H y L - transfiere
HyLaPC)
(PCH)~(H)
(PCL) ~(L)
El contenido del registro H es transferido
a los ocho bits de orden superior del regis­
tro pc. El contenido del registro L es
transferido a los ocho bits de orden infe­
rior del registro pc.
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
www.FreeLibros.me
1
6 (8085), 5 (8080)
registro
ninguno
EL MICROPROCESADOR INTEL 8080/8085
l.
299
Considerar el uso de la instrucción de salto condicional de la Figura 8.31. El código de op se
lista como 110010 lOen la Figura 8.31 para la instrucción JZ. La parte 001 del código de op (bits
bs' b4 y b3) especifica que la condición para la bifurcación es que el sefializador de cero debe estar
a 1 (Z = 1). El sefializador de cero es igual a 1 en la Figura 8.31; por tanto una nueva dirección de
16 bits es transferida al contador de programa (PC). La dirección de orden inferior (00000000) es
transferida, seguida por la dirección de orden superior (00 l 0000 1). La nueva dirección del conta­
dor de programa entonces hace que la MPU salte a una nueva posición del programa.
)na
Que
bits
l si­
a la
11 es
, del
) SP
.tes
Código de
operacíón
irec­
..¡s.
1100
Memoria de programa
10\0
Contador
de programa
00000000
00100001
Antes de la operación
Después de la operación
JZ
Registro de status
~~~~~~~~~
s
1 O
~
LdO
el regis­
roLes
en infe­
(8080)
I
P
CY
Figura 8.31.
sfiere
~
AC
~
."
~
J
t
Instrucción salta si cero.
La instrucción CALL es una operación especial de bifurcación utilizada para saltar desde el
programa principal a una subrutina. La instrucción CALL combina las operaciones de salto e
introducción de datos en la pila. Como en el microprocesador genérico, la instrucción CALL del
8080/8085 introduce primero el contenido de 16 bits del contador de programa (PC) en la pila;
después hace que la dirección de 16 bits de la subrutina sea transferida al contador de programa.
El microprocesador entonces salta a la subrutina.
De forma distinta al microprocesador genérico, los procesadores 8080 y 8085 también tienen
instrucciones de llamada condicional. La operación de llamada como se describió antes se ejecu­
tará solamente si se cumple la condición especificada.
Como con el microprocesador genérico, las MPU 8080 y 8085 utilizan instrucciones de vuel­
ta Las instrucciones de vuelta indican al procesador la posición correcta de la memoria del
programa principal una vez que finaliza una subrutina. De forma distinta al microprocesador
genérico, las MPU 8080 y 8085 también tienen instrucciones de vuelta condicional. La operación
de vuelta de subrutina se ejecutará solamente si se cumple la condición especificada.
Las instrucciones de rearranque son instrucciones de llamada de propósito especial, disefiadas
principalmente para utilizarlas con interrupciones. Igual que CALL, la instrucción de rearranque
introduce el contenido del contador de programa en la pila y salta a una de ocho direcciones
predeterminadas. Esto es diferente porque una instrucción CALL especifica inmediatamente la
dirección del salto. Un código de 3 bits (bits bs' b4 y b3) en el código de op de la instrucción RST
especifica la dirección del salto. Por ejemplo, una instrucción RST 2 tiene el código de op
1I,OJO,11 1 (D7H). El código de dirección OJO (decimal 2) es multiplicado por 8, dando 16 10, Ó
100002' Esta es la dirección del salto (000000000001 0000 2 en este ejemplo).
www.FreeLibros.me
298
FUNDAMENTOS DE LOS MICROPROCESADORES
gistro SP es transferido a los ocho bits de
orden inferior del registro Pe. El conteni­
do de la posición de memoria cuya direc­
ción es una unidad superior al contenido
del registro SP es transferido a los ocho
bits de orden superior del registro PC. El
contenido del registro SP es incrementa­
do en 2.
I
°~ °
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
10
indirecto de reg.
ninguno
Rcondition (Vuelta condicional)
(CCC),
(PCL) .... «SP»
(PCH) .... «SP) + I)
(SP) .... (SP) + 2
Si la condición especificada es verdadera,
se realiza la acción especificada en la ins­
trucción RET (ver anterior); en cualquier
otro caso, el control continúa secuencial­
mente.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
1/3
6/12 (8085),
5/11 (8080)
indirecto de reg.
ninguno
RST n (Rearrancar)
«SP) - 1) .... (PCH)
«SP) - 2) .... (PCL)
(SP) .... (SP) - 2
(PC) .... 8 ... (NNN)
Los ocho bits de orden superior de la di­
rección de la siguiente instrucción son
transferidos a la posición de memoria
cuya dirección es una unidad menor que
el contenido del registro SP. Los ocho bits
de orden inferior de la dirección de la si­
guiente instrucción son transferidos a la
posición de memoria cuya dirección es
dos unidades menor que el contenido del
registro SP. El contenido del registro SP
es decrementado en dos. El control es
transferido a la instrucción cuya direc­
ción es ocho veces el contenido de NNN.
1
I
1
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
12 (8085),
11 (8080)
indirecto de reg...
ninguno
151413121110 9 8 7 6 5 4 3 2 1 O
10101010101010lolololNININlol0loI
Contador de programa después
de la instrucción rearrancar
PCHL (Salta indirecto H y L - transfiere
HyLaPC)
(PCH) .... ~H)
(PCL) .... (L)
El contenido del registro H es transferido
a los ocho bits de orden superior del regis­
tro Pe. El contenido del registro L es
transferido a los ocho bits de orden infe­
rior del registro Pe.
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
www.FreeLibros.me
I
6 (8085), 5 (8080)
registro
ninguno
EL MICROPROCESAOOR INTEL 8080/8085
299
Considerar el uso de la instrucción de salto condicional de la Figura 8.31. El código de op se
lista como 1100 10 10 en la Figura 8.31 para la instrucción JZ. La parte 001 del código de op (bits
bs' b4 y b) especifica que la condición para la bifurcación es que el sefializador de cero debe estar
a I (Z = 1). El sefializador de cero es igual a 1 en la Figura 8.31; por tanto una nueva dirección de
16 bits es transferida al contador de programa (Pe). La dirección de orden inferior (00000000) es
transferida, seguida por la dirección de orden superior (00100001). La nueva dirección del conta­
dor de programa entonces hace que la MPU salte a una nueva posición del programa.
;a
ue
,its
51­
la
es
del
SP
,es
Código de
operación
rec­
~,
1100 1010
Memoria de programa
Contador
de programa
00000000
00100001
Antes de la operación
Después de la operaclÓft
JZ
Registro de status
~~~~~~~~~
s
Z
AC
P
CY
Figura 8.31.
nsfiere
LSferido
~1 regís­
oLes
ro infe­
(8080)
/
Instrucción salta si cero.
La instrucción CALL es una operación especial de bifurcación utilizada para sahar desde el
programa principal a una subrutina. La instrucción CALL combina las operaciones de salto e
introducción de datos en la pila. Como en el microprocesador genérico, la instrucción CALL del
8080/8085 introduce primero el contenido de 16 bits del contador de programa (Pe) en la pila;
después hace que la dirección de 16 bits de la subrutina sea transferida al contador de programa.
El microprocesador entonces salta a la subrutina.
De forma distinta al microprocesador genérico, los procesadores 8080 y 8085 también tienen
instrucciones de llamada condicional. La operación de llamada como se describió antes se ejecu­
tará solamente si se cumple la condición especificada.
..
Como con el microprocesador genérico, las MPU 8080 y 8085 utilizan instrucciones de vuel­
ta. Las instrucciones de vuelta indican al procesador la posición correcta de la memoria del
programa principal una vez que finaliza una subrutina. De forma distinta al microprocesador
genérico, las MPU 8080 y 8085 también tienen instrucciones de vuelta condicional. La operación
de vuelta de subrutina se ejecutará solamente si se cumple la condición especificada.
Las instrucciones de rearranque son instrucciones de llamada de propósito especial, disefiadas
principalmente para utilizarlas con interrupciones. Igual que CALL, la instrucción de rearranque
introduce el contenido del contador de programa en la pila y salta a una de ocho direcciones
predeterminadas. Esto es diferente porque una instrucción CALL especifica inmediatamente la
dirección del salto. Un código de 3 bits (bits bs' b4 y b3 ) en el código de op de la instrucción RST
especifica la dirección del salto. Por ejemplo, una instrucción RST 2 tiene el código de op
11.010,111 (D7H). El código de dirección 010 (decimal 2) es multiplicado por 8, dando 16'0' Ó
100002, Esta es la dirección del salto (00000000 00010000 2 en este ejemplo).
/
www.FreeLibros.me
300
FUNDAMENTOS DE LOS MICROPROCESAOORES
Considerar el problema ejemplo mostrado en la Figura 8.32 utilizando la instrucción RST 7.
Observar que el puntero de pila contiene 2089H antes de la operación RST 7. La instrucción
RST 7 introduce la cuenta del programa actual en la pila. Entonces la dirección predeterminada .
(8 x 7 = 56 10 == 38H) es transferida al contador de programa (PC). Esto hace que la MPU salte o
rearranque en la nueva posición 000000000011 1000 (0038H).
La instrucción de rearranque es única, porque rara vez aparece en código fuente en los progra­
mas de aplicación. Con más frecuencia los dispositivos periféricos que buscan servicios de inte­
rrupCión pasan esta instrucción de 1 byte al procesador. Los rearranques se denominan por tanto,
a veces, interrupciones software.
Pila
Puntero de pila
2087H
2088H
...:2~08~9~H..JI·­
......::2089H:
LI
Contador de programa
Pila
Puntero de pila
I
' - - _ _--L_ _ _-1
Figura 8.32.
2087H
1
......----"--_..... Contador de programa
Instrucci6n de rearranque (RST 7).
PROBLEMAS RESUELTOS
8.58.
La instrucción JMP utiliza una instrucción de _ _ (número) byte y direccionamien­
to _ _ (directo, inmediato). Durante la ejecución de la instrucción JMP, 2 bytes de la
memoria de programa son transferidos al ______ (contador de programa, puntero
de pila).
Solución:
De acuerdo con la descripción de lntel, la instrucción JMP utiliza una instrucción de 3 bytes y
direccionamiento inmediato. Durante la ejecución de la instrucción JMP, 2 bytes de la memoria
del programa son transferidos al contador de programa.
8.59.
Las instrucciones de llamada y _ _ (reinicialización; vuelta) son utilizadas en pares
para localizar y volver de las subrutinas.
Solución:
Las instrucciones de llamada y vuelta son utilizadas en pares para localizar y volver de las su­
brutinas.
8.60.
La operación de _ _ (reinicialización, vuelta) es una forma especial de instrucción de
llamada utilizada principalmente con interrupciones.
Solución:
La operación de reinicialización es una forma especial de instrucción de llamada usada princi­
palmente con interrupciones.
www.FreeLibros.me
EL MICROPROCESADOR INTEL 8080/8085
8.61.
lST7.
Kclón
.ada
salte o
La instrucción JNC del 8080/8085 es una instrucción de salto _ _ (condicional, ¡n­
condicional) cuyo código de op es ___ en binario. El salto, si no hay operación de
arrastre, se especifica con una instrucción de ___ (número) byte(s). La instrucción
JNC utiliza el modo de direccionamiento ___ (directo, inmediato).
Solución:
De acuerdo con la descripción de lntel de «Salto condicional», la instrucción JNC es una
.
~
instrucción de salto condicional cuyo código de op es 110 lOO 10 en binario. El salto, si no hay
arrastre, se especifica con una instrucción de 3 bytes. La instrucción JNC utiliza el modo de
direccionamiento inmediato.
.nte­
r tanto,
8.62.
10
301
de pila
El nemotécnico para la instrucción de 1 byte del grupo de bifurcación del 8080/8085 que
hace que la MPU salte a la posición de memoria OOOOH es _ _ .
Solución:
ill
El nemotécnico para la instrucción de 1 byte del grupo de bifurcación del 8080/8085 que hace
que la MPU salte a la posición de memoria OOOOH es RST O.
..
8.63.
El nemotécnico para la instrucción del grupo de bifurcación del 8080/8085 que hace que
la MPU salte al contenido de la dirección del registro par HL es _ _ .
Solución:
El nemotécnico para la instrucción del grupo de bifurcación del 8080/8085 que hace que la
MPU salte a la dirección contenida en el registro par HL es PCHL.
rprograma
8.64.
r
El nemotécnico del 8080/8085 para la operación de salto condicional mostrada en la
Figura 8.33 es _ _ .
Solución:
El nemotécnico del 8080/8085 para la operación de salto condicional mostrada en la Figu­
ra 8.33 es JP, que significa saltar si más.
ionamien­
~les de la
a. puntero
Código de
operación
2000H
~
de 3 bytes y
la memoria
1111 0010
200IH
00000000
2002H
OOllOOOO
Contador de
programa
t
lIS en pares
L ~as
de
Figura 8.33.
su-
tIlTUCclon
" de
t
usada princí­
8.65.
Según el registro de status de la Figura 8.33, _ _ (se cumplen, no se cumplen) las
condiciones para que ocurra el salto condicional.
Solución:
El señalizadorde signo es igual a 1 en la Figura 8.33, lo que significa que el núme~o anterior del
acumulador es negativo. No existe la condición positivo (más), y por tanto no se realiza el salto a
una nueva dirección.
www.FreeLibros.me
302
F1JNDAMENTOS DE LOS MICROPROCESADORES
8.66.
El contenido del contador de programa después de que se ha ejecutado la instrucción de
salto condicional en la Figura 8.33 es _ _ (16 bits).
Solución:
La condición más no se cumplía (S = 1); por tanto el contador de programa incrementa a la
siguiente instrucción secuencial en 2oo3H, ó 0010 0000 0000 0011 2 ,
8.67.
El código de op para la instrucción de rearranque utilizada en la Figura 8.34 se­
rá ___ en binario.
Solución:
El código de op para la instrucción RST 4 utilizada en la Figura 8.34 será 11100111 en binario,
(E7 en hexadecimal).
Puntero de pila
Puntero de pila
2185H
I
_-;1
1--..!-_~18::3H~••
2183H
2184H
- - ...l.:_ _--1
185 H
?
184H
/--.-.pL-
Después de la operación
Antes de la operación
r---~.......- . . 3 L - -..... Contador
de
programa
Figura 8.34.
8.68.
1I
Listar el contenido de las posiciones de la pila 2183H y 2184H después de la operación
de reinicialización mostrada en la Figura 8.34.
Solución:
El contenido del contador de programa es transferido a la pila de la siguiente fonna: Primero, la
posición de la pila 2l84H recibe el byte de orden inferior del contador de programa; la posición de
la pila 2184H entonces contiene 00000o 10. Segundo, la posición de la pila 2183H recibe el byte de
orden inferior del contador de programa; la posición de la pila 2183H entonces contiene
11110000.
8.69.
Listar el contenido del contador de programa (Pe) despuéS de la operación de reiniciali­
zación mostrada en la Figura 8.34.
Solución:
La MPU multiplica el número de reinicialización (decimal 4 en este ejemplo) por 8, dando la
dirección de 32 10 (o 20H). El binario 0000 0000 0010 0000 (0020H) es la nueva dirección del
contador de programa. La MPU entonces realiza el salto a la posición de memoria oo20H.
8.10. INSTRUCCIONES DE PILA, E/S Y CONTROL DE MAQUINA
DEL 8080/8085
Un resumen de la pila, E/S e instrucciones de control máquina del microprocesador 8080/8085
se muestra en la Figura 8.35. Donde se incluyen instrucciones de introducir y sacar, entrar y salir,
intercambiar, habilitación e inhabilitación de interrupciones, no operación y alto y lectura multi­
www.FreeLibros.me
EL MIeROPROCESAOOR INTEL 8080/8085
Ops depila
B
D
PUSH {
~.34
se­
POP{
~
-=o binario
I
L
~de
ma
t Primero, la
de
be el byte de
~ contiene
..
E3
F9
~
r 8. dando la
d:irección del
J020H.
r 8080/8085
:ntrar y salir,
:dura multi-
OUT byte
IN byte
D3
DB
PS
el
DI
El
FI
Control
DI
F3
El
FB
00
76
NOP
HLT
Nuevas instrucciones
RIM 20
SIM 30
Figura 8.35. Resumen de las instrucciones de control de máquina, E/S, pila del 8080/8085.
(Todos los nemotécnicos tienen derecho de copia © Intel Corporation, 1976.)
propósito e inicialización de máscaras de interrupción. Solamente los nemotécnicos y códigos
de op de Intel están listados para cada instrucción en la Figura 8.35.
Corno en las secciones anteriores, la pila. E/S y grupo de instrucciones de control máquina se
detallarán utilizando el fonnato propio de Intel Corporation. Este grupo de instrucciones realiza
entradas y salidas, manipula la pila y altera los señalizadores de control interno. Acudir a la
Figura 8.18 para los significados de las abreviaturas utilizadas en las siguientes descripciones del
J/anual del Usuario de Intel.
1 posición
~ reiniciali­
es
(8085 sólo)
XTHL
SPHL
.tero de pila
=?
Entrada/salida
H
ES
PSW FS
B
D
H
PSW
303
PUSH rp (Introducir)
«SP) - 1) <E- (rh)
«SP) - 2) <E- (rl)
«SP) <E- (SP) - 2
El contenido del registro de orden supe­
rior del registro par rp es transferido a la
posición de memoria cuya dirección es
una unidad menor que el contenido del
registro SP. El contenido del registro de
orden inferior del registro par rp es trans­
ferido a la posición de memoria cuya di­
rección es dos unidades menor que el
contenido del registro SP. El contenido
del registro SP es decrementado en 2.
Nota: El registro par rp = SP no puede
ser especificado.
1
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
12 (8085),
11 (8080)
indirecto de reg.
ninguno
PUSH PSW (Introducir palabra de status
del procesador)
«SP) - 1) <E- (A)
«SP) - 2)0 <E- (CY), «Si» - 2)1 <E- X
«SP) - 2)2 <E- (P), «SP) - 2)3 <E- X
«SP) - 2)4 <E- (AC), «SP) - 2)s <E- X
«SP) - 2)6 <E- (Z), «SP) - 2)7 <E- (S)
X: Indefinido.
(SP) <E- (SP) - 2
El contenido del registro A es transferido
a la posición de memoria cuya dirección
es una unidad menor que el registro SP.
El contenido de los señalizadores de con­
www.FreeLibros.me
304
FUNDAMENTOS DE LOS MICROPROCESADORES
dición son ensamblados en una palabra
de status de procesador y la palabra es
transferida a la posición de memoria cuya
dirección es dos unidades menor que el
contenido del registro SP. El contenido
del registro SP es decrementado en dos.
111111110
Ciclos:
Estados:
11
0
1
I
3
12 (8085),
11 (8080)
Direccionamiento:
Sefializadores:
indirecto de reg.
ninguno
PALABRA SEÑALIZAOORA
D7
D6
D5
D4
D3
O2 DI
Do
I I Ixl Ixl Ixl I
S
Z
AC
P
procesador)
(CY) <E- «SP»o
(P) <E- «SP»2
(AC) <E- «SP»4
(Z) <E- «SP»/;
(S) <E- «SP»1
(A) <E- «SP) + 1)
(SP) <E- (SP) + 2
El contenido de la posición de memoria
cuya dirección está especificada por el
contenido del registro SP es utilizado para
restaurar los sefializadores de condición.
El contenido de la posición de memoria
cuya dirección es una unidad más que el
contenido del registro SP es transferido al
registro A. El contenido del registro SP es
incrementado en 2.
CY
X: indefinido
POP rp (Sacar)
(rl) <E- «SP»
(rh) <E- «SP) + 1)
(SP) <E- (SP) + 2
El contenido de la posición de memoria,
cuya dirección está especificada por el
contenido del registro SP, es transferido
al registro de orden inferior del registro
par rp. El contenido de la posición de me­
moria, cuya dirección es una unidad ma­
yor que el contenido del registro SP, es
transferido al registro rp. El contenido del
registro SP es incrementado en 2. Nota:
El registro par rp =SP no puede ser espe­
cificado.
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
pop PSW (Sacar palabra de status del
3
JO
indirecto de reg.
ninguno
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
3
JO
indirecto de reg.
Z,S,P,CY,AC
XTHL (Intercambia tope de la pila con H
y L)
(L) +-+ «SP»
(H) +-+ «SP) + 1)
El contenido del registro L es intercam­
biado con el contenido de la posición de
memoria cuya dirección está especificada
por el contenido del registro SP. El conte­
nido del registro H es intercambiado con
el contenido de la posición de memoria
cuya dirección es una unidad más que el
contenido del registro SP.
Ciclos:
Estados:
Direccionamiento:
Sefializadores:
www.FreeLibros.me
5
16 (8085),
18 (8080)
indirecto de reg.
ninguno
EL MICROPROCESADOR INTEL 8080/8085
SPHL (Transferir HL a SP)
(SP) ~ (H) (L)
El contenido de los registros H y L (16
bits) es transferido al registro SP.
oria
por el
do para
!Kiición.
!lemoria
IS que el
rendo al
!rO SP es
Ciclos:
Estados:
1>ireccionamiento:
Señalizadores:
lila con H
L:C:m­
osición de
¡¡pecificada
t. El conte­
abiado con
e memoria
más que el
El (Habilita interrupciones)
El sistema de interrupción es habilitado
después de la ejecución de la siguiente
instrucción. Las interrupciones no son re­
conocidas durante la instrucción El.
Ciclos:
Estados:
Señalizadores:
1
4
ninguno
NOTA: Está prohibido colocar una instruc­
ción El en el bus en respuesta a INTA du­
rante un ciclo INA (8085).
N puerto (Entrar)
(A) ~(dato)
El dato colocado en el bus de datos bidi­
reccional de 8 bits, por el puerto especifi­
cado es transferido al registro A.
puerto
le reg.
,,"e
l
6 (8085), 5 (8080)
registro
ninguno
305
Ciclos:
Estados:
Direccionamiento:
Señalizadores:
3
10
Ciclos:
Estados:
Señalizadores:
directo
ninguno
Ol"T puerto (Salir)
¡dato) ~(A)
El contenido del registro A es colocado en
el bus de datos bidireccional de ocho bits
para que se transmita al puerto especifi­
.:ado.
I
I O
1
DI (Inhabilita interrupclones)
El sistema de interrupciones se habilita
inmediatamente después de la ejecución
de la instrucción DI. Las interrupciones
no son reconocidas durante la instrucción
DI.
OI O
1
1
1
4
ninguno
NOTA: Está prohibido colocar una instruc­
ción DI en el bus en respuesta a INTA du­
rante un ciclo INA (8085).
HLT (Alto)
El procesador se detiene. Los registros y
señalizadores no se afectan. (8080) Un se­
gundo ALE es generado durante la ejecu­
ción de HLT para dar información del
status del ciclo Hall. (8085)
puerto
Do
~
D
de reg.
Ciclos:
Estados:
Ilirarionamiento:
Señalizadores:
3
10
directo
ninguno
Ciclos:
Estados:
Señalizadores:
www.FreeLibros.me
1 + (8085), 1 (8080)
5 (8085), 7 (8080)
ninguno
306
FUNDAMENTOS DE LOS· MICROPROCESADORES
NOP (No operación)
No se realiza ninguna operación. Los re­
gistros y señalizadores no están afectados.
O lO lO lO 10 1 0 1 0 1 0
Ciclos:
Estados:
Señalizadores:
1
4
ninguno
RIM (Lectura de máscaras de interrup­
ción) (solamente 8085)
La instrucción RIM carga datos en el acu­
mulador relativos a interrupciones y en­
tradas serie. Este dato contiene la siguien­
te información:
• Status actual de la máscara de inte­
rrupción para las interrupciones
hardware RST 5.5, 6.5 y 7.5
(1 = máscara inhabilitada).
• Status actual del señalizador de habi­
litación de interrupciones (1 = inte­
rrupciones habilitadas) excepto in­
mediatamente despuéS de una
interrupción TRAP. (Ver más aba­
jo.)
• Interrupciones hardware pendienteS
(por ejemplo, señal recibida pero to­
davía no servida), en las líneas RST
5.5, 6.5 y 7.5.
• Datos de entrada serie.
Inmediatamente después de una interrup­
ción TRAP, debe ser ejecutada la instruc­
ción RIM como parte de la rutina de servi­
cio si se necesita reClíperar más tarde el
status de interrupción actual. El bit 3 del
acumulador está (solamente en este caso es­
pecial) cargado con el status del señalizador
de habilitación de interrupción (lE) que
existía antes de la interrupción RST 5.5,
6.5, 7.5 o INTR, el flip-flop del señalizador
de interrupciones refleja el status actual de
habilitación de interrupción. El bit 6 del
acumulador (17.5) es cargado con el status
del flip-flop de RST 7.5, que está siempre en
set (disparado por flanco) por una entrada
en la línea de entrada RST 7.5, aun cuando
esa interrupción haya sido previamente en­
mascarada. (Ver instrucción SIM.)
o
7
Código de op.
o
O
O
O
O
O
O
Contenido del
acumulador
después de RIM
Máscaras de
interrupción
SeñaJizador de
habilitación
de interrupción
Interrupciones pendientes
1...-------DalO5 entrada serie
Ciclos:
Estados:
Señalizadores:
1
4
ninguno
SIM (Pone a 1 las máscaras de las inte­
rrupciones) (solamente 8085)
La ejecución de la instrucción SIM utiliza
el contenido del acumulador (que debe
ser cargado previamente) para realizar las
siguientes funciones:
• Programar las máscaras de interrup­
ciones para las interrupciones hard­
ware RST 5.5, 6.5 y 7.5.
• Poner a O el cerrojo de entrada RST
7.5 disparado por flanco.
• Cargar el cerrojo de salida SOD.
Para programar las máscaras de interrupcio­
nes, primero poner a 1 el bit 3 del acumula­
dor y poner a 1 cualquiera de los bits O, 1 y
2, que inhabilitan las interrupciones RST
5.5, 6.5 y 7.5, respectivamente, Ejecutar en­
tonces una instrucción SIM. Si el bit 3 del
acumulador está a O cuando se ejecuta la
www.FreeLibros.me
entrada
cuando
rote en­
E1 j
65 M5
,
.J
~t3SCaras de
- :errupción
zador de
!Í'liltación
I interrupción
15 pendientes
I
307
EL MICROPROCESADOR INTEL 8080/8085
J
cnuada serie
le las inte-
SIM utiliza
¡que debe
realizar las
le interrup­
iones hard­
bdaRST
aSOD.
interrupcio­
el acumula­
lIS bits O, 1 Y
ciones RST
Ejecutar enel bit 3 del
;e ejecuta la
instrucción SIM, el registro de máscaras de
interrupciones no cambiará. Si el bit 4 del
acumulador está a 1 cuando se ejecuta la
instrucción SIM, el cerrojo RST 7.5 está en­
tonces en reinicialización. RST 7.5 se distin­
gue por el hecho de que su cerrojo está
siempre en set por un flanco de subida en la
patilla de entrada de RST 7.5. aunque el sal­
to a la rutina de servicio esté inhibido por
enmascaramiento. Este cerrojo permanece
en alta hasta que sea borrado por un REINI­
dALIZACION IN, por una instrucción
SIM con el bit 4 del acumulador en alto, o
por un conocimiento interno del procesador
de una interrupción RST 7.5 posterior a la
eliminación de la máscara (por una instruc­
ción SIM). La sefial REINIOALIZACION
fS" siempre pone a 1 los tres bits de máscara
RST.
Si el bit 6 del acumulador está en el nivel 1
cuando se ejecuta la instrucción SIM, el es­
tado del bit 7 del acumulador se carga en el
cerrojo SOD y, por tanto, está disponible
para conectarse a un dispositivo externo. El
cerrojo SOD no es afectado por la instruc-
ción SIM si el bit 6 está a O. SOD está siem­
pre en reinicialización por la señal REINI­
CIALIZACION IN.
O
7
Código de op.1 O
O
7
6
Contenido del
acumulador
antes de RIM
5
4
O
O
3
2
O
O
O
' - - - - Habilitar colocación
de máscara
Io------Poner a Oflip-flop
RST 7.5
'-------lndefinido
' - - - - - - - - - Habilitar SOD
L . . . - - - - - - - - - - D a t o salida serie
Ciclos:
Estados:
Sefializadores:
1
4
ninguno
Este grupo contiene instrucciones para introducir o sacar datos de la pila. Como en el micro­
procesador genérico, la pila del 8080/8085 se localiza fuera del microprocesador yen la RAM. La
parte superior de la pila está definida poniendo el puntero de pila del 8080/8085 en una dirección
seleccionada por el programador. Todas las instrucciones PUSH y POP del 8080/8085 transfieren
: b~1es de datos a o desde la pila utilizando una sola instrucción. Las instrucciones PUSH PSWy
POP PSW transfieren datos entre la palabra de status del procesador y la pila. La palabra de
status del procesador se define cómo la combinación del registro de status de la MPU (sefializado­
:-es) y acumulador.
Las instrucciones IN y OUT del 8080/8085 funcionan de forma similar a las del microproce­
-SOr genérico. La operación IN introduce un byte de datos desde el puerto especificado por el
:;egundo byte de la instrucción. De forma análoga, la operación OUT transfiere un byte de datos
.lesde el acumulador al puerto de salida especificado en el segundo byte de la instrucción. Como
!D el microprocesador genérico, estas instrucciones son utilizadas con una técnica de E/S.
La operación XTHL es una instrucción de 1 byte para intercambiar el tope de la pila con el
~ntenido del registro par HL. La operación SPHL es una instrucción de transferencia de datos.
Transfiere el contenido del registro HL al puntero de pila del microprocesador. Esta instrucción
puede utilizarse para inicializar el puntero de pila, definiendo así el tope de la pila de la RAM.
La instrucción NOP no realiza ninguna operación, como en el microprocesador genérico. La
mstrucción NOP es útil como un retardo de tiempo en un ciclo de temporización.
La instrucción HLT detiene el procesador. El contador de programa contiene la dirección de
la siguiente instrucción secuencial. Los demás sefializadores y registros no cambian. Una vez en el
www.FreeLibros.me
308
FUNDAMENTOS DE LOS MICROPROCESAOORES
estado de alto, el microprocesador puede ser reinicializado solamente por un evento externo,
típicamente una interrupción. La operación HLT se utiliza para detener la MPU cuando está
esperando que un dispositivo periférico termine su tarea e interrumpa al procesador.
Las acciones del microprocesador pueden ser iniciadas de dos formas. Primero, la acción del
microprocesador puede ser iniciada por una instrucción de la memoria del programa. Un segun­
do método de iniciación de la acción de la MPU es utilizar una interrupción externa. Las inte­
rrupciones hardware de la MPU 8080 u 8085 pueden ser controladas por dos instrucciones. Estas
son las de habilitación de interrupciones (E/) e inhabilitación de interrupciones (D/). Cuando se
ejecuta la intrucción El, se pondrá a 1 un flip-flop de habilitación de interrupción en la CPU.
Cuando el flip-flop de habilitación de interrupción está a 1 o habilitado, la MPU 8085 reconocerá
y responderá a cualquiera de las cinco posibles interrupciones hardware.
La instrucción DI (inhabilitación de interrupciones) hará que el señalizador de habilitación de
interrupciones (o flip-flop) se ponga a O. Cuando el señalizador de habilitación de interrupciones
está a O, la MPU del 8085 ignorará todas las interrupciones excepto la interrupción TRAP. Esta
interrupción no puede ser inhabilitada por ninguna instrucción de programa del 8085.
La instrucción El se utiliza frecuentemente como parte de una secuencia de arranque. Cuando
se conecta la alimentación, la MPU comienza a intentar ejecutar instrucciones desde algunas
direcciones desconocidas. Habitualmente, se aplica una entrada de REINICIALIZAC/ON, for­
zando a que el contador de programa contenga OOOOH. La entrada de REINICIAUZACION
también hace que el señalizador de habilitación de interrupciones se ponga a O, inhabilitando
todas las interrupciones del 8085 excepto la TRAP. Una de las primeras instrucciones después de
la reinicialización es El para habilitar las interrupciones.
Las interrupciones, a veces, se referencian como enmascarables o no enmascarables. Una
interrupción no enmascarable es la que no puede inhabilitar el sistema. Una interrupción enmas­
carable es la que puede inhabilitar el sistema. En el microprocesador 8085, la interrupción TRAP
se considera no enmascarable mientras que las restantes son enmascarables.
Las instrucciones El y DI habilitan e inhabilitan todas las interrupciones enmascarables como
un grupo. Las interrupciones RST 7.5, RST 6.5 y RST 5.5 pueden ser habilitadas e inhabilitadas
individualmente. El mecanismo real para habilitar e inhabilitar selectivamente las interrupciones
se denomina máscara de interrupción. Si una interrupción es enmascarada. no es reconocida por
el procesador (esto es análogo a un ladrón de bancos enmascarado y por tanto no reconocible).
Sin embargo, si se elimina la máscara, la interrupción será reconocida por el procesador.
Considerar el ejemplo simplificado de interrupción mostrado en la Figura 8.36. Seguir las
acciones de la MPU por los números inscritos en los círculos de la Figura 8.36.
t
I
1. La entrada RST 5.5 (patilla 9) a la pastilla 8085 se activa con una sefial en ALTA.
2. Para simplificar el ejemplo, se suponen tres cosas. Estas son:
(a) No se activa la interrupción de más alta prioridad TRAP.
(b) No se activa o enmascara la interrupción de alta prioridad RST 7.5.
'(e) No se activa o enmascara la interrupción de alta prioridad RST 6.5.
3. Se comprueba el bit de la máscara de interrupción (Bo) del registro de status de interrup­
ción. Está en reinicialización (a O), o no enmascarado, lo cual satisface la primera condi­
ción para que la interrupción RST 5.5 sea reconocida por la MPU.
4. Se comprueba el señalizador de habilitación de interrupción (BJ) del registro de status de
interrupción. Está a 1, 10 que significa que todas las interrupciones están habilitadas.
5. La interrupción RST 5.5 es reconocida por la MPU. El procesador entonces termina su
instrucción actual y almacena el contenido del contador de programa en la pila.
www.FreeLibros.me
I
EL MICROPROCESADOR INTEL 8080/8085
'é'\temo,
~0 está
lIC\.;ón del
Jn segun­
, Las Ínte­
lIDes, Estas
Cuando se
• la CPU.
reconocerá
309
MPU8085
ALTO
RST5,5
BAJO
Sí
No
.. .::;:iÓn de
_pciones
. ~-lP. Esta
S.
Je.
,
~.o
Cuando
algunas
~'. for­
Seilalizador El
;' 4CION
~llitando
r.despuésde
o
!J'3t>les. Una
,; enmas­
p.,ón TRAP
Interrupción
RST5.5
no reconocida
como
Jbilitadas
-:Ilpciones
oonocida por
~;:onocible ).
!~t-les
Continúa con
las instrucciones
en el orden
secuencial normal
~0r.
Seguir las
ALTA.
de interrup­
rrimera condi­
LS
de status de
labilitadas.
:es termina su
a pila.
:'O
Interrupción RST5.5
reconocida
Figura 8.36.
..
(2)
Salto a la posición
de memoria 002CH
Pasos en el tratamiento de una interrupción no enmascarada
RST 5.5 de la MPU 8085.
6. La pastilla microprocesadora 8085 facilita una señal de conocimiento de interrupción
(TNTA) a los periféricos.
7. La MPU entonces bifurca a la posición de memoria 002CH. El cálculo de la posición de
memoria de reinicialización es 5.5 x 8 = 4410 = 2C 1ó '
La MPU examinaba la condición de los bits 2 con el registro de status de interrupción de la
FIgUra 8.36. Primero durante el paso 3, se comprobó el bit de máscara 5.5 (M 5.5). El bit M 5.5
www.FreeLibros.me
310
RJNDAMENTOS DE LOS MICROPROCESADORES
estaba a o, o no enmascarado, lo que significaba que la MPU podía reconocer esta interrupción':
Segundo, durante el paso 4, se comprobó el señalizador de habilitación de interrupción (señaliza­
dor lE). El señalizador lE de la Figura 8.36 estaba a l (habilitado), lo que significa que la MPU
podía reconocer esta interrupción.
Algunos de los bits del registro de status de interrupción pueden ser cambiados utilizando la
instrucción SIM única del 8085. La instrucción SIM (inicialización de las máscaras de interrup­
ción) colocará el contenido del acumulador en el registro l. Anteriormente se aprendió que la
instrucción SIM también se utiliza para sacar un bit de datos al cerrojo SOD (salida de datos
serie) de la MPU 8085 (ver Fig. 8.7b).
El registro de máscaras de interrupción como lo utiliza la instrucción SIM está esbozado en la
Figura 8.37. Los bits de las máscaras de RST 5.5, RST 6.5 y RST 7.5 pueden ser puestos a 1
(enmascarados) o a O (no enmascarados) si el bit 3 (habilitación de la máscara) está habilitado con
un l lógico. Un l lógico en la posición del bit 4 pondrá a O el flip-flop de RST 7.5. El bit 5 de la
Figura 8.37 no está definido. Los bits 6 y 7 del registro de máscaras de interrupción de la Figu­
ra 8.37 están asociados a la salida serie del procesador (la patilla SOD de la MPU 8085). Habilitar
el bit 6 con l permite una transferencia de datos del bit 7 del registro I al cerrojo SOD en la patilla
4 de la pastilla 8085.
.
I
.,
"
SOD
I
SOE
I
X
I
R7,5
I
MSE
I
M7,5
I
M6.5
i
I
M5,5
I
L
Máscara RST 5,5
Máscara RST6,5
Máscara RST 7,5
}
o- no enmascarado
I
~
enmascarado
, 4.·1'
'1 "
Habilitación de
máscara
I - habilitada
O- inhabilitada
(No cambio en B2• BI' Bo)
Flip-tlop de reset
RST7.5
Indefinido
1 - reset del
f1ip-flop RST 7,5
O- no teset
Habilitación de
salida en serie
I - salida en serie de 8 7
al cerrojo SOD
O- no hay salida serie
Datos de salida en serie
Figura 8.37. Organización del registro de interrupción como lo utiliza la instrucción SIM del 8085,
El registro de status de interrupción como lo lee la instrucción RIM está esbozado en la
Figura 8.38. La instrucción RIM transfiere el contenido de los cerrojos internos de la Figura 8.38
al acumulador. La instrucción RIM se utilizó anteriormente en la Figura 8.7 a para entrar datos
serie desde la patilla SID de la MPU 8085 al bit 7 del acumulador. El status de otros diversos
cerrojos también es visualizado en el acumulador junto con la entrada de datos serie.
www.FreeLibros.me
EL MICROPROCESADOR INTEL 8080;8085
1
:1ón;
Jiza­
riPU
l
SlD
I
17.5
I
16.5
I
15.5
l
lE
t
do la
rrup­
ue la
datos
I
M7.5
l
M6.5
I
M5.5
L
I
Máscara de status RST 5.5
Máscara de status RST 6.5
Máscara de status RST 7.5
Status del señalizador de habilitación
de interru pciones
len la
)S
o-
no enmascarada
1 - enmascarada
I - interrupciones
habilitadas
O - interrupciones
inhabilitadas
5.511 -pendiente
la interrupción está
a 1
lo con
¡ de la
, Figu­
Ibilitar
patilla
311
Interrupción pendiente RST
Inle rrupción pendiente RST 6.5
Interr upción pendiente RST 7.5
2 - la interrupción no
está pendiente
Dato de entrada en serie de la patilla SID
Figura 8.38.
Organización del registro de intemJpCión cuando lee por la instrucción RIM del 8085.
.'
PROBLEMAS RESUELTOS
8.70.
Listar las instrucciones de la Figura 8.35 asociadas a la pila.
Solución:
Todas las instrucciones PUSH y POP listadas en la Figura 8.35 utilizan la pila. Las instruccio­
nes XTHL y SPHL también están asociadas a la pila ya que cambian los contenidos del puntero
de pila.
t
~. 8 1, 8 0)
8.71.
b7.5
Solución:
Las operaciones RIM y SIM son solamente nuevas instrucciones utilizadas por la MPU 8085
que no fueron utilizadas por el procesador más antiguo 8080.
0#
•cric de 8 7
oSOD
¡alKla serie
8.72.
El contenido del registro par HL después de la operación XTHL de la Figura 8.39
es _ _ (hex).
Solución:
le' 8085.
ado en la
¡gura 8.38
Itrar datos
1$ diversos
Listar las instrucciones de la Figura 8.35 que son utilizadas solamente por el microproce­
sador 8085 y no por la MPU más antigua 8080.
Según la descripción de Intel de la instrucción «intercambiar tope de pila con H y Ü), el
contenido del registro par HL después de la operación XTHL de la Figura 8.39 es 2000H.
!."'3.
¿Cuál es el contenido de las posiciones de la pila 2080H y 2081 H después de la operación
XTHL de la Figura 8.391
Solución:
Los contenidos de la pila después de la operación XTHL de la Figura 8.39 son 21 H para la
posición de la pila 2080H y 20H para la posición de la pila 2081 H.
www.FreeLibros.me
310
FUNDAMENTOS DE LOS MICROPROCESADORES
estaba a o, o no enmascarado, lo que significaba que la MPU podía reconocer esta interrupción',
Segundo, durante el paso 4, se comprobó el sefializador de habilitación de interrupción (sefializa­
dor lE). El sefializador lE de la Figura 8.36 estaba a 1 (habilitado), lo que significa que la MPU
podía reconocer esta interrupción.
Algunos de los bits del registro de status de interrupción pueden ser cambiados utilizando la
instrucción SIM única del 8085. La instrucción SIM (inicialización de las máscaras de interrup­
ción) colocará el contenido del acumulador en el registro l. Anteriormente se aprendió que la
instrucción SIM también se utiliza para sacar un bit de datos al cerrojo SOD (salida de datos
serie) de la MPU 8085 (ver Fig. 8.7b).
El registro de máscaras de interrupción como lo utiliza la instrucción SIM está esbozado en la
Figura 8.37. Los bits de las máscaras de RST 5.5, RST6.5 y RST 7.5 pueden ser puestos a 1
(enmascarados) o a O(no enmascarados) si el bit 3 (habilitación de la máscara) está habilitado con
un 1 lógico. Un I lógico en la posición del bit 4 pondrá a O el flip-flop de RST 7.5. El bit 5 de la
Figura 8.37 no está definido. Los bits 6 y 7 del registro de máscaras de interrupción de la Figu­
ra 8.37 están asociados a la salida serie del procesador (la patilla SOD de la MPU 8085). Habilitar
el bit 6 con 1 permite una transferencia de datos del bit 7 del registro I al cerrojo SOD en la patilla
4 de la pastilla 8085.
I
SOD
I
SOE
I
x
I
R7.5
I
MSE
I
M7.5
I
M6,5
I
M5.5
I
r L
Máscara RST 5.5
Máscara RST65
Máscara RST 7.5
Habilitación de
máscara
..
}
o- no enmascarado
I - enmascarado
I - habilitada
O - inhabilitada
(No cambio en B 2• BI' BO)
Flip-f1op de reset
RST 7.5
Indefinido
1 - reset del
llip-f1op RST 7.5
O- no reset
Habilitación de
salida en serie
1 - salida en serie de B7
al cerrojo SOD
O - no hay salida serie
Datos de salida en serie
Figura 8.37. Organización del registro de interrupción como lo utiliza la instrucción SIM del 8085.
El registro de status de interrupción como lo lee la instrucción RIM está esbozado en la
Figura 8.38. La instrucción RIM transfiere el contenido de los cerrojos internos de la Figura 8.38
al acumulador. La instrucción RIM se utilizó anteriormente en la Figura 8.7a para entrar datos
serie desde la patilla SID de la MPU 8085 al bit 7 del acumulador. El status de otros diversos
cerrojos también es visualizado en el acumulador junto con la entrada de datos serie.
www.FreeLibros.me
EL MICROPROCESADOR INTEL 8080/8085
..
!nupción~
tseñaliza­
e la MPU
I
SID
I
17.5
/6.5
I
/5.5
I lE
1 M7.5
I
M6.5
I
M5.5
L
•
lizando la
: interrup­
dió que la
a de datos
I
Máscara de status RST 5.5
Máscara de status RST 6.5
Máscara de status RST 7.5
Status del señalizador de habilitación
de interru pclOnes
~doenla
a l
·.ado con
101t 5 de la
de la Figu­
1). Habilitar
en la patilla
I
. 311
o - no enmascarada
I - enmascarada
I - interrupciones
habilitadas
O- interrupciones
I
inhabilitadas
5.5)1 -la interrupción está
6.5 pendiente
Interrupción pendiente RST
loterrupción pendiente RST
lnte rrupción pendiente RST 7.5
. -lOS
2 - la interrupción no
está pendiente
Dato de entrada en serie de la patilla SID
Figura 8.38.
Organización del registro de interrupción cuando lee por la instrucción RIM del 8085.
PROBLEMAS RESUELTOS
8.70.
Solución:
Todas las instrucciones PUSH y POP listadas en la Figura 8.35 utilizan la pila. Las instruccio­
nes XTHL y SPHL también están asociadas a la pila ya que cambian los contenidos del puntero
de pila.
~do
.-anOO
•
:!'.t-=.
:~ B2• BI' Bol
1.71.
del
p ..ilop RST 7.5
El
<'10
SOD
serie
1..72.
~ del 8085.
I
sbozado en la
lb Figura 8.38
la entrar datos
: otrOS diversos
lerie.
Listar las instrucciones de la Figura 8.35 que son utilizadas solamente por el microproce­
sador 8085 y no por la MPU más antigua 8080.
Solución:,
Las operaciones RIM y SIM son solamente nuevas instrucciones utilizadas por la MPU 8085
que no fueron utilizadas por el procesador más antiguo 8080.
• reset
,.~ en serie de B1
• :..7' 'salida
Listar las instrucciones de la Figura 8.35 asociadas a la pila.
.;~
i. "13.
El contenido del registro par HL después de la operación XTHL de la Figura 8.39
es _ _ (hex).
Solución:
Según la descripción de Intel de la instrucción «intercambiar tope de pila con H y ü>, el
contenido del registro par HL después de la operación XTHL de la Figura 8.39 es 2000H.
¿Cuál es el contenido de las posiciones de la pila 2080H y 2081 H después de la operación
XTHL de la Figura 8.39?
Solución:
Los contenidos de la pila después de la operación XTHL de la Figura 8.39 son 21H para la
posición de la pila 2080H y 20H para la posición de la pila 2081 H.
www.FreeLibros.me
312
FUNDAMENTOS DE LOS MICROPROCESADORES
Pila
2080H
Figura 8.39.
8.74.
La instrucción El afectará ¿a qué bit del registro de status de interrupción mostrado en la
Figura 8.38?
Solución:
La instrucción El (habilita interrupciones) pondrá B3 a 1 (el señalizador de habilitación de inte­
rrupciones).
8.1S.
La instrucción HLT tiene un código de op de _ _ (hex). Afecta _ _ (a todos, a
ningún} (los) sefializador(es). Una vez en el estado alto, el procesador puede rearrancar
sólo por un evento tal como _ _ (interrupción, instrucción NOP).
Solución:
La instrucción HLT tiene un código de op de 76H. No afecta a los señalizadores. Una vez que
está en el estado alto, el procesador puede rearrancar sólo por un acontecimiento externo como por
ejemplo una interrupción.
i
!
8.76.
La instrucción OUT utiJiza el modo de direccionamiento _ _ (directo, de registro).
La dirección del puerto de salida se encuentra en la memoria de _ _ (datos, progra­
ma).
Solución:
La instrucción OUT utiliza el modo de direccionimiento directo. La dirección del puerto de
salida se encuentra en la memoria de programa.
8.77.
La instrucción RIM puede ser utilizada para _ _ (recibir, enviar) datos serie vía la
patilla _ _ (SID. SOD) del microprocesador 8085. Este simple bit de datos finaliza en
el bit _ _ (número) del acumulador.
Solución:
Según la descripción Intel de la operación «leer máscaras de interrupción», la instrucción RIM
puede ser utilizada para recibir datos serie vía la patilla SID del microprocesador 8085. Este bit de
datos finaliza en el bit 7 del acumulador.
8.78.
Si una entrada tal como la interrupción RST 6.5 está enmascarada, está _ _. (inhabili­
tada, habilitada).
Solución:
Si una entrada tal como la interrupción RST 6.5 está enmascarada, está inhabilitada.
www.FreeLibros.me
EL MICROPROCESADOR INTEL 8080/8085
f
de pita
~~
8.79.
::080H ]
313
Acudir a la Figura 8.40. Después de la operación SIM, listar el contenido de la posición
de cada bit del registro l.
•
~
.UiIeI de la operación
Después de la operación '
SIM
I I I )(
?
?
SOD SOE
I .,
I
?
I .,
1.,
?
I Registro 1
R7.5 MSE M7.5 M6.5 M5.5
Figura 8.40.
do en la
',ti
ilación de inte­
_ (a todos, a
de rearrancar
tuna,."
que
i"'
Solución:
El registro 1 de la Figura 8.40 contendrá lo siguiente después de la operación SIM:
SOD (datos salida serie) - I
SOE (habilitación salida serie) - O
R 7.5 (tlip-flop RST 7.5 en reinicialización) = O
MSE (habilitación de máscara) - 1
M 7.5 (máscara RST 7.5) = O
M 6.5 (máscara de RST 6.5) = O
M 5.5 (máscara RST 5.5) = O
como por
Acudir a la Figura 8.40. ¿Estará la salida de datos serie encerrada en el cerrojo SOD de la
MPU del 8085?
l(datos,
de registro).
progra­
Solución:
El bit de habilitación de salida serie del registro 1 de la Figura 8.40 está inhabilitado. Por tanto
los datos de la salida serie no serán transferidos y encerrados en el cerrojo SOD de la MPU
8085.
I.'IrmO
....
8..81.
00 del puerto de
•
Listar las interrupciones que quedarán no enmascaradas después de la instrucción SIM
de la Figura 8.40.
Solución:
Las interrupciones RST 7.5. RST 6.5 y RST 5.5 Quedarán no enmascaradas después de la
instrucción SIM de la Figura 8.40.
I
¡tos serie vía la
latos finaliza en
PROBLEMAS SUPLEMENTARIOS
mstrucción RIM
• )85. Este bit de
i.n.
Res.
---'- (inhabili-
abilitada.
lntel Corporation introdujo el primer microprocesador, el 4004 de 4 bits, en _ _ (año).
l.IJ.
1971.
Acudir a la Figura 8.2. Las patillas 12 a 19 de! 8085 tienen el doble propósito de líneas del bus
de _ _ / _ .
Res. direcciones/datos.
www.FreeLibros.me
/
314
FUNDAMENTOS DE LOS MICROPROCESADORES
8.84.
Acudir a la Figura 8.2. La entrada READYa la MPU 8085 está más asociada con el estado
de _ _ (alto, espera) del procesador.
Res. espera.
8.85.
Acudir a la Figura 8.2. ¿Qué dos patillas en la MPU 8085 (una de entrada y otra de salida) están
más relacionadas con un acceso directo a memoria?
Res. entrada HOW, salida HLDA (conocimiento de mantenimiento).
8.86.
Acudir a la Figura 8.3. Las señales de control del 8085 son /O/M = O, SI = I Y S2 = O. Esto significa
que el microprocesador está realizando ¿qué tipo de ciclo máquina?
Res. lectura de memoria (ver Fig. 8.3).
8.87.
Este registro de 16 bits siempre contiene una dirección y señala a la siguiente instrucción que va a
ser ejecutada.
Res. contador de programa (PC).
8.88.
El señalizador de signo en reinicialización (O) después de una operación aritmética en el 8085
significa que el resultado del acumulador es _ _ (negativo, positivo).
Res. positivo.
8.89.
El señalizador de cero en reinicialización (O) después de una operación aritmética en el microproce­
sador 8085 significa que el resultado del acumulador es _ _ (no cero, cero).
Res. no cero.
.
8.90.
La entrada TRAP del 8085 es una interrupcióD _ _ (enmascarable, no enmascarable) y por tanto
no puede ser inhabilitada.
Res. no enmascarable.
8.91.
Acudir a la Figura 8.6. Cuando se activa la interrupción hardware RST 6.5 del 8085, la CPU guarda
el contenido del__ _ _ en la pila y bifurca a la dirección de memoria _ _ (hex).
Res. contador de programa (PC), 34H.
8.92.
Los acumuladores secundarios (BC, DE y. HL) del 8085 pueden utilizarse como acumuladores o
como _ _ _ _ .
Res.
contadores de datos (punteros de dirección).
8.93.
El microprocesador 8085 utiliza _ _ (número) señalizadores que contienen información de
status.
Res. cinco.
8.94.
La instrucción MOV A,L del 8085 (transfiere L a A) transfiere el contenido de un registro a otro.
Por tanto utiliza el modo de direccionamiento de _ _ .
Res. registro.
8.95.
La instrucción MVI L del 8085 transfiere datos del segundo byte de la instrucción al regis­
tro _ _ (letra). Utiliza el modo de direccionamiento _ _ .
Res. L. inmediato.
www.FreeLibros.me
1
EL MICROPROCESADOR INTEL 8080;8085
315
estado
8.96.
Cada una de las instrucciones de direccionamiento indirecto de registro del 8085 utiliza _ _
(1, 3) byte(s) de la memoria de programa.
Res. 1.
están
8.97.
Cada una de las instrucciones de direccionamiento directo del 8085 utiliza _ _ (1, 2 ó 3) bytes de
la memoria de programa.
Res. 2 Ó 3.
; '<
L)
l
¡¡jgnifica
f
.
que va a
I
I
icroproce-
, por tanto
::pu guarda
bex).
Duladores o
Lación de
i
I
listro a otro.
:ión al regis-
8.91.
Intel clasifica la operación del 8080/8085 «almacenar A en memoria» como una instrucción
de _ _ (bifurcación, transferencia de datos).
Res. transferencia de datos.
...".
Intel clasifica la operación de «desplazamiento circular» del 8080/8085 como una instruc­
ción _ _ (de transferencia de datos, lógica).
Res. lógica.
1.100. Intel clasifica una operación de «llamada» del 8080/8085 como una instrucción _ _ (de bifurca­
ción, lógica).
Res. bifurcación.
8.101. Acudir a la Figura 8. 16. Algunos nemotécnicos del 8080/8085 contienen una I adicional como
ADI v, ANI v, y MVI A, v. Cada vez que aparece la 1 adicional en estas instrucciones, se especifica el
modo de direccionamiento _ _ .
Res. inmediato.
I.J02. Acudir a la Figura 8.16. Listar los nemotécnicos para dos instrucciones utilizadas por el 8085 pero
no por el microprocesador 8080.
Res. RIM, SIM.
1.103. En la instrucción MOV D,E del 8080/8085, el registro _ _ (letra) es la fuente de datos mientras
que el registro _ _ (letra) es el destino.
Res. E, D.
1.184. En la instrucción MVI A del 8080/8085. la fuente del dato es __
' _.
Res. el segundo byte de la instrucción encontrada en la mem0ria de programa.
1.115. La instrucción MOV R,M del 8080/8085 utiliza direccionamiento _ _ •
Res. indirecto de registro,
1.116. La instrucción STA del 8080/8085 utiliza direccionamiento _ _ .
Res. directo.
1..17. La instrucción MOV A,L del 8080/8085 utiliza direccionamiento _ _ .
Res. de registro.
1..1.. La instrucción ADD M del 8080/8085 suma el contenido de la posición de memoria señalada por el
registro par _ _ (dos letras) al contenido del registro _ _ (letra). La suma se deposita en el re­
gistro _ _ (letra).
Res. HL, A, A.
www.FreeLibros.me
- 316
8.109.
8.110.
FUNDAMENTOS DE LOS MICROPROCESADORES'
El código de op para la instrucción INX H mostrado en la Figura 8.41 es _ _ (hex).
Res. 23H.
Puntero,
I
208C
La instrucción INX H de la Figura 8.41 utiliza direccionamiento _ _ .
Res. de registro.
8.111. Listar el contenido de los registros H y L desputs de la operación de incrementación mostrada en la
Figura 8.41.
Res. registro H == 00000oo 1, registro L == 00000000.
Contadl
Registro H
00000000
Registro H
Registro L
IIII IIII
Registro L
'. .Des,. de
ADtes de la operación
J>fOII
la operación
INXH
8.119.
I
.~
. Figura 8.41.
lUlO. '
¡
8.112. El símbolo V es usado por Intel para describir la operación lógica _ _ (ANO, ORlo
Res. ORo
8.113.
Las instrucciones CALL están más relacionadas con las subrutinas, mientras que las instrucciones
de reinicialización están más próximas a las _
.
Res. interrupciones.
8.114. La instrucción JPE del 8080/8085 es una operación de salto _ _ (condicional, incondicional).
Res. condicional.
8.115.
La instrucción RNZ del 8080/8085 comprueba el status del señalizador de _ _ antes de ejecutar
la operación de vuelta.
Res. cero (2).
8.116.
La instrucción RP del 8080/8085, mostrada en la Figura 8.42, es una instrucción de _ _ (núme­
ro) byte(s) con un código de op _ _ (hex).
Res. 1, FO.
8.117. El contador de programa del 8080/8085 contendrá _ _ (hex) después de la operación «vuelta de
subrutina si más» ilustrada en la Figura 8.42.
Res. 2004H.
8.118. El puntero de pila del 8080/8085 contendrá _
la Figura 8.42.
Res. 2082H.
(hex) después de la operación RP mostrada en
www.FreeLibros.me
.~
•.121.
j
..
~
1.122. •
iones
t
nal).
EL MICROPROCESADOR INTEL 8080/8085
317
Puntero de pila
Después ele la operachSn
Registro de r-""=r-..,.-..,--,--r-,-....,.-..,
status '--"'---'--.......0-1--'----'----'----'
Contador
de '---_ _ _
20A_
1H_ _ _-'
programa
?
Contador del
programa
Figura 8.42.
1.119. Las operaciones PUSH y POP del 8080/8085 están especificadas con instrucciones de _ _ (1, 3)
bytes y utilizan el direccionamiento _ _ .
Res. 1, indirecto de registro.
1.111. Las operaciones IN y OUT del 8080/8085 están especificadas con instrucciones de _ _ (l, 2)
bytes y utilizan direccionamiento _ _ .
Res. 2, directo.
U21. Al ejecutar la instruCción DI del 8085 ¿qué interrupciones se inhabilitarán?
Res. INTR, RST 5.5. RST 6.5 y RST 7.5.
un.
¿Qué tres funciones pueden ser realizadas por la instrucción SIM del 8085?
Res, programar la máscara de interrupciones para las interrupciones hardware RST 5.5, 6.5 Y 7.5;
poner a O (reinicialización) el cerrojo de la interrupción disparada por flanco RST 7.5 y
cargar el cerrojo de salida SOD.
~'
ecutar
,
núme­
1
¡elta de
~.
rada en
www.FreeLibros.me
I
-
-~
--~-
Capítulo 9
PROGRAMACION DEL
MICROPROCESADOR 8080/8085
9.1. INTRODUCaON
Para el programador, la microcomputadora básada: en el 8080/8085 consta del repertorio de
instrucciones, memoria, registro de propósito general, contador de programa, puertos de entrada/
salida, sefializadores, puntero de pila y pila. Todo ésto, excepto la memoria y entradas y salidas
paralelo, forman parte del microprocesador.
Por conveniencia, el resumen del repertorio de instrucciones del microprocesador 8080/8085
se reimprime en la Figura 9.1. El repertorio de instrucciones se detalló en el Capítulo 8.
El modelo de programación del 8080/8085 se reproduce en la Figura 9.2a. Lista los registros
que conciernen al programador. El registro de status se muestra con mayor detalle en la Figu­
ra 9.2b. Una breve descripción de cada uno de los cinco sefializadores del registro de status
también se da en la Figura 9.2b.
Los programas fuente se escribirán en lenguaje ensamblador. El formato utilizado por lntel
divide cada línea del lenguaje ensamblador en los siguientes campos:
Etiqueta
Código de op
Operando
Comentarios
Estos campos son similares a los utilizados en la programación en lenguaje ensamblador del
Capítulo 6. La entrada del campo de etiqueta es opcional y representa el «nombre» de la línea.
Generalmente las líneas que son el destino de saltos o bifurcaciones tendrán entradas en el campo
de etiqueta. El campo de código de op contiene el nemotécnico del código de operación de la
instrucción del 8080/8085 que se va a ejecutar. El campo de operando da el dato con el que va a
operar el código de operación especificado. El campo de operando a veces se denomina argumen­
to. El campo de comentarios puede contener información útil para explicar la función de la
instrucción. Los comentarios son opcionales, pero su uso es extremadamente importante para
documentar el programa.
Una línea de programa en lenguaje ensamblador para el 8080/8085 podría ser:
DATA
MOV
A,M
; Entrar dato al acumulador
Cada uno de los cuatro campos tiene una entrada en este ejemplo. Se explican como sigue:
l.
Campo de etiqueta: Contiene la entrada DATA. Este es el «nombre» de esta línea. Proba­
blemente es el destino de una instrucción de bifurcación posterior (o anterior).
318
www.FreeLibros.me
.-A___·~_,,'____
_ _ _ _ _ _7_ _
PROORAMACION DEL MICROPROCESADOR 8080/8085
ulo9
-
\
A
repertorio de
de entrada/
Idas y salidas
lIS
DI' 8080/8085
llo 8.
a los registros
le en la Figu­
5trO de status
!arlo por lntel
Lblador del
.,. de la línea.
IS en el campo
peración de la
UD el que va a
C
I
a argumen­
¡ción de la
:1ante para
~: ~
L
sigue:
111 linea. Proba­
rior).
O
Nemotécnico
ADDA
ADDB
ADDC
ADDD
ADDE
ADDH
ADDL
ADDM
ADlv
AOCA
AOCB
AOCC
AOCD
AOCE
AOCH
AOCL
AOCM
ACI v
ANA A
ANAB
ANAC
ANAD
ANA E
ANAH
ANAL
ANA M
ANI v
CALLaa
CZaa
CNZaa
CPaa
CM aa
CCaa
CNCaa
CPEaa
CPOaa
CMA
CMC
CMPA
CMPB
CMPC
CMPD
CMPE
CMPH
CMPL
CMPM
CPh
DAA
DADB
DADD
DADH
DADSP
Código de op
(hex)
87
80
81
82
83
84
85
86
C6
8F
88
89
8A
8B
8C
80
8E
CE
A7
AO
Al
A2
A3
A4
AS
A6
E6
CD
CC
C4
F4
FC
DO
04
EC
E4
2F
3F
BF
B8
B9
BA
BB
se
BD
BE
FE
27
09
19
29
39
319
Descripción
Suma A a A (doble A)
Suma B a A
Suma CaA
Suma DaA
Suma E aA
Suma HaA
Suma L aA
Suma LOC memoria (H & L) a A
Suma dato inmediato v a A
Suma A a A con arrastre (doble A con arrastre)
Suma B a A con arrastre
Suma C a A con arrastre
Suma D a A con arrastre
Suma E a A con arrastre
Suma H a A con arrastre
Suma L a A con arrastre
Suma LOC memoria (H & L) a A con arrastre
Suma dato inmediato v a A con arrastre
Examina A y borra arrastre
ANDB conA
ANDCconA
ANDD con A
ANO E con A
ANDHconA
ANDL con A
ANO LOC memoria (H & L) con A
ANO dato inmediato v con A
CaJl subrutina en dirección aa
Sí cero, CALL en dirección aa
Si no cero, CALL en dirección aa
Si más, CALL en dirección aa
Si menos. CALL en dirección aa
Si arrastre. CALL en dirección aa
Si no arrastre, CALL en dirección aa
Si paridad par, CALL en dirección aa
Si paridad impar, CALL en dirección aa
Complementa A
Complementa arrasve
Pone a 1 el señalizador de cero
Compara A con B
Compara A con C
Compara A con D
Compara A con E
Compara A con H
Compara A con L
Compara A con LOC memoria (H & L)
Compara A con dato inmediato v
Ajuste decimal A
Suma B & Ca H & L
Suma D & E a H & L
Suma H & L a H & L (doble H & L)
SumaSPa H&L
l.
"
Figura 9.1. Resumen del repertorio de instrucciones para el microprocesador
8080/8085. (Todos los nemotécnicos tienen derecho de copia © de
www.FreeLibros.me
Jii
Intel Corporation, 1976.)
)
""
320
)
,
FUNDAMENTOS DE LOS MICROPROCESADORES
O
E
H
I
J
L
M
Nemoté:-nico
OCRA
OCRB
OCRe
OCRD
OCRE
OCRH
OCRL
OCRM
OCXB
OCXD
OCXH
OCXSP
DI
El
HLT
IN v
INRA
INRB
INRe
INRD
INRE
INRH
INRL
INRM
INXB
INXD
INXH
INXSP
JMPaa
JZaa
JNZaa
JPaa
JMaa
JCaa
JNCaa
JPEaa
JPOaa
LOA aa
LOAXB
LOAXD
LHLOaa
LXI B,vv
LXID,vv
LXIH,vv
LXI SP,vv
MOVA,B
MOVA,e
MOVA,D
MOVA,E
MOVA,H
MOVA,L
MOVA,M
Código de op
(hex)
3D
05
00
15
ID
25
20
35
OB
lB
2B
3B
F3
FB
76
OB
3C
04
OC
14
IC
24
2C
34
03
13
23
33
C3
CA
C2
F2
FA
DA
02
EA
E2
3A
OA
lA
2A
01
11
21
31
78
79
7A
78
7C
7D
7E
Descripción
Decrementa A
Decrementa B
Decrementa e
Decrementa D
Decrementa E
Decrementa H
Decrementa L
Decrementa LOC memoria (H & L)
Decrementa B & e
Decrementa D & E
Decrementa H & L
Decrementa SP
Inhabilita interrupciones
Habilita interrupciones
Alto hasta interrupción
Entrada del dispositivo v
Incrementa A
Incrementa B
Incrementa e
Incrementa D
Incrementa E
Incrementa H
Incrementa L
Incrementa LOC memoria (H & L)
Incrementa B & e
Incrementa D & E
Incrementa H & L
Incrementa SP
Salta a dirección aa
Si cero, JMP en dirección aa
Si no cero. JMP en dirección aa
Si más, JMP en dirección aa
Si menos, JMP en dirección aa
Si arrastre, JMP en dirección aa
Si no arrastre, JMP en dirección aa
Si paridad par, JMP en dirección aa
Si paridad impar, JMP en dirección aa
Carga A de dirección aa
Carga A de LOC memoria (B & C)
Carga A de LOC memoria (D & E)
Carga H & L de dirección aa
Carga B & e con dato inmediato vv
Carga D & E con dato inmediato vv
Carga H & L con dato inmediato vv
Carga SP con dato inmediato vv
Transfiere B a A
Transfiere e a A
Transfiere D a A
Transfiere E a A
Transfiere H a A
Transfiere L a A
Transfiere LOC memoria (H & L) a A
Figura 9.1.
(continuaCión).
www.FreeLibros.me
~~-
'SS'
I
PROGRAMACION OEL MICROPROCESADOR 8080/8085
M
Nemotécnico
MOV B,A
MOV B,e
MOV B,D
MOV B,E
MOVB,H
MOV B,L
MOV B,M
MOVe,A
Move,B
MOVC,D
Move,E
Move,H
Move,L
Move,M
MOV D,A
MOVD,B
MOVD,e
MOVD,E
MOVD,H
MOVD,L
MOVD,M
MOVE,A
MOVE,B
MOVE,e
MOVE,D
MOVE,H
MOV E,L
MOVE,M
MOVH,A
MOVH,B
MOVH,e
MOVH,D
MOVH,E
MOVH,L
MOVH,M
MOV L,A
MOV L,B
MOV L,e
MOV L,D
MOV L,E
MOVL,H
VL,M
MOV M.A
MOVM,B
MOVM,e
MOVM,D
MOVM,E
MOVM,H
MOVM,L
MVIA,v
MVIB,v
MVI C,v
MVID,V
MVIE,v
MVIH,v
MVIL,v
~
Código de op
(hex)
47
41
42
43
Descripción
Transfiere A a B
Transfiere e a B
Transfiere D a B
Transfiere E a B
Transfiere Ha B
Transfiere L a B
Transfiere LOC memoria (H & L) a B
Transfiere A a e
Transfiere B a e
Transfiere D a e
Transfiere E a e
Transfiere H a e
Transfiere L a e
Transfiere Loe memoria (H & L) a e
Transfiere A a D
Transfiere B a D
Transfiere e a D
Transfiere E a D
Transfiere H a D
Transfiere L a D
Transfiere Loe memoria (H & L) a D
Transfiere A a E
Transfiere B a E
Transfiere e a E
Transfiere D a E
Transfiere H a E
Transfiere L a E
Transfiere LOC memoria (H & L) a E
Transfiere A a H
Transfiere BaH
Transfiere e a H
Transfiere D a H
Transfiere E a H
Transfiere L a H
Transfiere LOC memoria (H & L) a H
Transfiere A a L
Transfiere B a L
11
Transfiere e a L
Transfiere Da L
Transfiere E aL
Transfiere Ha L
Transfiere LOC memoria (H & L) a L
Transfiere A a LOC memoria (H & L)
Transfiere B a Loe memoria (H & L)
Transfiere e a Loe memoria (H & L)
Transfiere D a Loe memoria (H & L)
Transfiere E a Loe memoria (H & L)
Transfiere H a LOC memoria (H & L)
Transfiere L a Loe memoria (H & L)
Transfiere dato inmediato v a A
Transfiere dato inmediato va B
Transfiere dato inmediato va e
Transfiere dato inmediato v a D
Transfiere dato inmediato v a E
Transfiere dato inmediato va H
Transfiere dato inmediato vaL
44
45
46
4F
48
4A
48
4C
40
4E
57
50
51
53
54
55
56
5F
58
59
5A
5e
50
5E
67
321
}
60
61
62
63
65
66
6F
68
69
6A
68
6C
6E
77
70
71
72
73
74
75
3E
06
OE
16
lE
26
2E
Ñgura 9.1.
(continuación).
www.FreeLibros.me
i
.~
~.'---------=~-'~-~"--~-----"-'_.------------._!~------------~
322
FUNDAMENTOS DE
M
N
O
t
:f
ORAH
ORAL
ORA M
ORI v
OUT v
PCHL
POPB
POPD
1.
,f
Nemotécnico
MVIM,v
NOP
ORA A
ORAB
ORAC
ORAD
ORA E
POPH
P
: 't.,'
i ~
ti
;~
R
S
POPPSW
PUSHB
PUSHD
PUSHH
PUSHPSW
RAL
RAR
RLC
RRC
RIM
RET
RZ
RNZ
RP
RM
RC
RNC
RPE
RPO
RSTO
RST I
RST2
RST3
RST4
RST5
RST6
RST7
SIM
SPHL
SHLDaa
STA aa
STAXB
STAXD
STC
­
LOS MICROPROCESADORES
Código de op
(hex)
36
00
87
BO
81
82
83
54
85
86
F6
D3
E9
CI
DI
El
FI
C5
D5
E5
F5
17
IF
07
OF
20
C9
C8
CO
FO
F8
D8
DO
E8
EO
C7
CF
D7
DF
E7
EF
F7
FF
30
F9
22
32
02
12
37
Figura 9.1.
Descripción
Transfiere dato inmediato va memoria LOC (H & L)
No operación
Examina A y borra arrastre
OR Bcon A
OR Ccon A
OR DconA
OR EconA
OR H con A
OR LconA
OR LOC memoria (H & L) con A
OR dato inmediato v con A
Saca A a dispositivo v
Salta a LOC memoria contenida en (H & L)
Saca B & C de pila
Saca D & E de pila
Saca H & L de pila
Saca A y los señalizadores de pila
Introduce B & C en pila
Introduce D & E en pila
Introduce H & L en pila
Introduce A y los señalizadores en pila
Desplazamiento circular CY + A a la izquierda
Desplazamiento circular CY + A a la derecha
Desplazamiento circular A a la izquierda y arrastre
Desplazamiento circular A a la derecha y arrastre
Lee máscara de interrupción (8085 sólo)
Vuelve de subrutina
Si cero, vuelve de subrutina
Si no cero, vuelve de subrutina
Si más, vuelve de subrutina
Si menos, vuelve de subrutina
Si arrastre, vuelve de subrutina
Si no arrastre, vuelve de subrutina
Si paridad par, vuelve de subrutina
Si paridad impar, vuelve de subrutina
Rearrancar subrutina en dirección OOH
Rearrancar subrutina en dirección 08H
Rearrancar subrutina en dirección IOH
Rearrancar subrutina en dirección 18H
Rearrancar subrutina en dirección 20H
Rearrancar subrutina en dirección 28H
Rearrancar subrutina en dirección 30H
Rearrancar subrutina en dirección 38H
Pone a I máscara de interrupción (8085 sólo)
Carga SP de H & L
Almacena H & L en LOC memoria aa
Almacena A en LOC memoria aa
Almacena A en LOC memoria (B & C)
Almacena A en LOC memoria (D & E)
Pone a I señalizador de arrastre
.
"
(continuaciÓn).
www.FreeLibros.me
,
1­
m
,
PROGRAMACION DEL MICROPROCESADOR 8080/8085
Nemotécnico
I
S
X
SUBA
SUBB
SUBC
SUBD
SUBE
SUBH
SUBL
SUBM
SU! v
SBBA
SBBB
SBBC
SBBD
SBBE
SBBH
SBBL
SBBM
SBIv
XCHG
XTHL
XRAA
XRAB
XRAC
XRAD
XRAE
XRAH
XRAL
XRAM
XRIv
Código de op
(hex)
97
90
91
92
93
94
95
96
D6
9F
98
99
9A
9B
9C
90
9E
DE
EB
E3
AF
A8
A9
AA
AB
AC
AD
AE
EE
323
Descripción
Borra A
Resta B deA
Resta CdeA
Resta D de A
Resta E de A
Resta H deA
Resta L de A
Resta contenido de LOC memoria (H & L) de A
Resta dato inmediato v de A
Pone A con arrastre menos
Resta B de A con préstamo
Resta C de A con préstamo
Resta D de A con préstamo
Resta E de A con préstamo
Resta H de A con préstamo
Resta L de A con préstamo
Resta LOC memoria (H & L) de A con préstamo
Resta dato inmediato v de A con préstamo
Cambia D & E con H & L
Cambia tope de pila con H & L
Borra A
OR exclusiva de B con A
,
OR exclusiva de C con A
OR exclusiva de D con A
OR exclusiva de E con A
OR exclusiva de H con A
OR exclusiva de L con A
OR exclusiva de LOC memoria (H & L) con A
OR exclusiva de dato inmediato v con A
Figura 9.1.
(continuación).
2. Campo código de op: Contiene la entrada MOV. Esta dice a la CPU que es una instruc­
ción de transferencia de datos. La CPU entonces busca el siguiente campo de operando
para encontrar la fuente y destino de la transferencia del dato.
3. Campo de operando: Contiene la entrada A,M. A (acumulador) es el destino del dato
mientras que la memoria (Al) es la fuente. La posición de memoria está indicada por el
registro par HL en esta instrucción de registro indirecto.
4. Campo comentario: Contiene la entrada «; Entrar datos al acumulador». Este campo
describe qué ocurre cuando se ejecuta la instrucción. En este caso, el dato es introducido
en el acumulador desde una posición de memoria señalada por el registro par HL. El
punto y coma (;) se utiliza como delimitador para separar el campo del operando del
campo de comentario.
Los campos de código de op y operando deben rellenarse, pero los campos'de etiqueta y comenta­
rio son opcionales. Algunas instrucciones inherentes requieren una entrada en el campo de códi­
go de op y ninguna en el campo de operando.
Recordar del Capítulo 6 que los diagramas de flujo, programas fuente en lenguaje ensambla­
dor y ensambladores son todos ayudas en la programación de un sistema basado en microproce­
sador. El listado del programa objeto ensamblado es el resultado final deseado utilizado por la mi­
crocomputadora.
www.FreeLibros.me
324
FUNDAMENTOS DE LOS MICROPR()CESAOORES
Señalizadores
(8)
A
(8)
B
(8)
C
(8)
D
(8)
E
(8)
H
(8)
L
(8)
Registro de status
S
I
z
I
I
} "'"m"rodo",
~,_rio~oon_ d, d,..
SP
(16)
Puntero de pila
PC
(16)
Contador de programa
Modelo de programación para el microprocesador 8080
(a)
I
Acumulador principal
AC
I
I
p
I
I
Cy
I
L
Registro de status
CY - I si hay arrastre
P - 1 si la paridad es par
AC - I si hay arrastre auxiliar del bit 3 al bit 4
Z - I si el resultado es O
s- MSB
(bit más significativos) del resultado
igual al bit del signo
si S - O, el numero es positivo
si S - 1, el numero es negativo
(b)
Señalizadores del registro de status del 8080/8085
Figura 9.2.
9.2. PROGRAMAS LINEALES
Considerar el diagrama de flujo funcional de la Figura 9.3a. Representa un programa lineal ya
que no contiene bifurcaciones. El diagrama de flujo también representa un programa que carga
un número binario, lo convierte a su forma en complemento a 2 y finalmente almacena la
representación en complemento a 2 en memoria. Recordar que los diagramas funcionales como
el de la Figura 9.3a son una descripción general de la solución del problema.
Un diagrama detallado para el mismo problema se muestra en la Figura 9.3b. Este diagrama
se completó con las funciones de un microprocesador espeCífico -la MPU 8080(8085 en este
caso-o Del diagrama detallado de la Figura 9.3b, puede obtenerse un programa en lenguaje
ensamblador, el cual aparece en la Figura 9.4a. Observar que cada instrucción del programa tiene
www.FreeLibros.me
1,'
......
* ..
::a~
I
a •
PROORAMACION DEL MICROPROCESADOR 8080/8085
C
Inicio
)
Inicia el programa
+
Cargar el registro HL
con 2020H
_de datos
(
Inicio
t
)
t
Cargar número binario
de memoria
+
Complementar número
binario a la forma de
complemento a uno
Cargar el registro B
con OIH
Cargar el acumulador
desde la posición de
memoria 2020H
td bit 3 al bit 4
t~
.0
del resulta~o
(
t
Alto
Complementar el
acumulador
Sumar BaI
acumulador
Forma el complemento a dos
t
)
(
Diagrama para el programa binario
-a-complemento-a-2
Forma él complemento a uno
t
Almacenar el
acumulador en la
posición de memoria
2020H
(a)
Carga el número binario
t
+
Almacenar el resultado
del complemento a dos
en memoria
Inicializa el registro B
t
+
Sumar + I a la forma de
complemento a uno para
formar el complemento
a dos
Inicializa el registro HL
(h)
+
Alto
)
Almacena el complemento a dos
Fin del programa
Diagrania detallado para el programa binario
-a-complemento-a-2
Figura 9.3.
a lineal ya
-:a que carga
!le almacena la
lCÍonales como
Este diagrama
"085 en este
Da en lenguaje
programa tiene
un bloque rectangular comparable en la Figura 9.3b. Como ejemplo, el primer bloque rectangular
de la Figura 9.3b, que dice «cargar el registro par HL con 2020H», se corresponde con la senten­
cia del programa ensamblador «LXI H, 2020H» en la Figura 9.4.
El siguiente paso será traducir el programa fuente en lenguaje ensamblador de la Figura 9.4a a
su equivalente en lenguaje máquina. Este «ensamblamiento» o proceso de traducción puede
hacerse utilizando un programa especial de computadora denominado ensamblador o puede
hacerse manualmente. El repertorio de instrucciones de la Figura 9.1 puede ser utilizado para
/
www.FreeLibros.me
326
FUNDAMENTOS DE LOS MICROPROCESADORES
Etiqueta
Código op
LXI
Comentarios
Operando
H,2020H
~
MVI
B,Om
MOV
A,M
tradu.
lasdiJ
cadai
; Inicializa registro par HL con 2020H
el coo
; Inicializa registro B con 01H
¡nstru
01
etiquc
tanto
; Transfiere número binario de posición de memoria 2020H
al acumulador
; Complementa acumulador
CMA
9.1.
ADD
B
MOV
M,A
; Transfiere número complemento a 2 del acumulador a
posición de memoria 2020H
9.2.
; Detiene la MPU
HLT
(a)
; Suma B a A para fonnar complemento a 2
Programa en lenguaje ensamblador para el problema binario-a-complemento-a-2
'.
Dirección
(hex)
Contenido
(hex)
Etiqueta
2000
2001
2002
2003
2004
2005
21
20
20
06
01
7E
t;.,
2006
2007
2F
80
t'
2008
77
..
Código op
Operando
Comentarios
LXI
H.2020H
; Inicializa registro par HL con 2020H
MVI
B,OIH
MOV
A,M
CMA
ADD
MOV
M,A
:t
2009
76
HLT
; Inicializa registro B con 01 H
.
; Transfiere número binario de posición
de memoria 2020H al acumulador
; Complementa acumulador
; Suma B a A para fonnar
complemento a 2
; Transfiere número complemento a 2
de acumulador a posición de
memoria 2020H
; Detiene la MPU
.
(b)
Programa objeto para el problema binario-a-complemento-a-2
Figura 9.4.
www.FreeLibros.me
,.3.
.~
I
fA.
•
"W
I
•
sr
I
,1
PROORAMAClON DEL MICROPROCESADOR 8080/8085
327
traducir manualmente el programa en lenguaje ensamblador. El programa de la Figura 9.4b tiene
las direcciones de la memoria de programa y el listado del código máquina hexadecimal para
cada instrucción y operando. La sección no sombreada a la izquierda de la Figura 9.4b representa
el código máquina tal como puede aparecer en la memoria de programa.
Observar que el programa listado en la Figura 9.4b no contiene entradas en el campo de
etiqueta. Esto es porque las etiquetas se utilizan habitualmente para mostrar el destino de una
instrucción de bifurcación. El programa de la Figura 9.4 representa un programa lineal y por
tanto no contiene saltos.
(
[)20H
PROBLEMAS RESUELTOS
9.1.
El listado de la Figura 9.4 es un ejemplo de programa _ _ (de bifurcación, lineal).
Solución:
El listado de la Figura 9.4 es un ejemplo de programa lineal.
9.2.
Acudir a la Figura 9.5. El resultado encontrado en la memoria de datos después de correr
el programa listado en la Figura 9.4 será _ _ (8 bits). Este resultado será la representa­
ción en complemento a _ _ (1, 2) de 00000o 102,
Solución:
El resultado que se encuentre en la memoria de datos de la Figura 9.5 después de correr el
programa será 11111110. Este resultado es la representación en complemento a 2 de 00000o 102,
f
Después de la operación
Antes de la operación
20:!OH
L-_ _....I.-Direcci-·--·ó-n...l
I
Memoria de datos
Rgura9.5.
:posición
9.3.
Acudir a la Figura 9.5. La dirección de la memoria de datos donde se depositará el resulta­
do despuéS de la ejecución del programa será _ _ (hex).
Solución:
El registro par HL apuntará todavía a la posición 2020H después del programa. Por tanto la
dirección en la memoria de datos de la Figura 9.5 donde el resultado se depositará después de la
ejecución del programa será 2020H.
9.4.
El diagrama de la Figura 9.6 representa un segmento de programa que introduce un
número ASCII y enmascara los 4 bits ___ (menos, más) significativos. El resultado es el
equivalente _ _ (BCD, binario) del número ASCII.
www.FreeLibros.me
,11
t:!____
m._;q_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~_. . . . . .~
,
328
'\
ruNDAMENTOS DE LOS MICROPROCFSAOORES
(
Inicio
)
Comienzo del programa
t
Entrar desde el puerto
número OIH
Entra número ASCII
t
Enmascara los 4 bits más
significativos. El resultado es el
equivalente BCD de los números
AND del acumulador
con la máscara
I
0000 1111
ASCII (0-9)
+
Almacenar acumulador
en posición de memoria
2040H
.~
I
l'
"
j
+
C
~
Alto
)
Figura 9.6.
"
, ~'
Almacena número BCD en
memoria
Operación de alto
Diagrama detallado del problema.
,1
I
;
Solución:
~ '
,
El diagrama de la Figura 9.6 representa un segmento de programa que introduce un número
ASCII y enmascara los 4 bits más significativos. El resultado es el equivalente BCD del número
ASCII.
;~
J!,
~'::
,
9.5.
I'j
Basándose en el diagrama detallado en la Figura 9.6, completar las líneas 2 y 3 del seg­
mento de programa del 8080/8085 mostrado más abajo.
1.;
Etiqueta
~
LINEA
LINEA
LINEA
LINEA
n~
I,
,",
,1
,
4
()
!,
,1
;1
~ ~~
'1
01H
4
HLT
; Entrada número ASCII desde puerto 01 H
; AND acum. con 00001111 (OFH)
; Almacenar acum. en posición 2040H
; Parar MPU
9.6.
.
~
.E;!Ii
mL~
r
Un posible segmento de programa que realice la tarea detallada en la Figura 9.6 es el siguiente:
"
;~,
IN
2
3
Comentarios
Solución:
,l
1
1
Código de op Operando
Etiqueta
Código de op
LINEA
LINEA
LINEA
LINEA
IN
ANI
1
2
3
4
STA
HLT
Operando
OIH
OFH
2040H
Comentarios
; Entrada número ASCII desde puerto 01 H
; AND acum. con 00001111 (OFH)
; Almacenar acum. en posición 2040H
; Parar MPU
Listar el código máquina hexadecimal del 8080/8085 requerido para ejecutar el programa
del Problema 9.5. El programa comenzará en la posición de memoria 2000H como
sigue:
t,
www.FreeLibros.me
e:­
...
.".
~
~"'"
u
a~
~ él VII
PROORAMACION DEL MICROPROCESADOR 8080/8085
Posición de memoria (hex)
2000
2001
2002
2003
2004
329
Contenido (hex)
BD
1 } instrucción de entrada
O
Soludón:
Acudir al repertorio de instrucciones de la Figura 9.1 para los códigos de op. Lo que sigue es un
listado en código máquina 8080/8085 que ejecutará el programa del Problema 9.5:
Posición de memoria (hex)
Contenido (hex)
BO
01
E6
2000
2001
2002
2003
2004
2005
OF
32
40
2006
20
76
2007
un número
D del número
9.3. PROGRAMAS CICLICOS
~
y 3 del seg­
l ..
puerto 01H
¡:u)
_ . .+OH
L"
,
",,"cnte:
Ide puerto 01 H
'FH)
,,:.2040H
~ el programa
2000H como
Considerar el diagrama de bloques de la Figura 9.7a de un sistema microcomputador basado en
el 8080/8085. Suponer que el visualizador de 8 bits binario cuenta de forma ascendente empezan­
do en OOOOOOOOr La Figura 9.7b muestra un diagrama detallado que resuelve el problema de
cuenta binaria. Un segmento del programa en el lenguaje ensamblador 8080/8085 que realizará
la función de cuenta binaria está en la Figura 9.7c.
El primer bloque rectangular del diagrama de la Figura 9.7b muestra que el acumulador se
inicializa con OOH. El segundo bloque representa la transferencia de la cuenta del acumulador al
puerto de salida 02H. El tercer bloque muestra que la cuenta se incrementa en l por el acumula­
dor. A continuación el programa vuelve a enlazar al bloque de salida. El programa visualizará a
gran velocidad, en binario, la salida de la cuenta ascendente.
El programa en el lenguaje ensamblador 8080/8085 de la Figura 9.7c realizará la función de
cuenta binaria representada en el diagrama anterior. La instrucción XRA A borra el acumulador.
La instrucción OUT transfiere el contenido del acumulador al puerto de salida 02H. La cuenta en
el acumulador es incrementada en l utilizando la instrucción INR A. La instrucción JMP hace
que la MPU bifurque, hacia atrás, a la instrucción con la etiqueta simbólica LOOP. El programa
entonces está en un ciclo continuo a través de la secuencia OUT, INR A Y JMP.
En la práctica actual, el programa representado en la Figura 9.7 contará mucho más rápido de
lo que una persona pueda observar. Debido al rápido secuenciamiento, las lámparas de visualiza­
ción de la salida binaria parecerán que están luciendo continuamente. Para ralentizar el proceso
de cuenta, es habitual afiadir un retardo de tiempo en el programa. El diagrama de la Figura 9.8a
representa un programa de cuenta binaria que incluye un retardo de tiempo.
www.FreeLibros.me
<lrmmIZ;;!; In Uti"
~~~~--------------------~--------------------------330
1
FUNDAMENTOS DE LOS MICROPROCESADORES
J
(
Borrar el acumulador
OOH
Microcomputadora
basada en el 8080/8085
1--- Puerto 02H
B,
O
Inicializa acumulador
+
. ".
....
./
-1
)
+
,­
/""
/
Inicio
Saca cuenta al puerto
Sacar el acumulador
al puerto 02H
02H
./
B6
O
B5
O
128 64
B4
O
BJ
O
B2 BI
O O
32
16
8
4
t
Ciclo
Do
O
2
Incrementar
acumulador
1
Visualizador de salida binario
Incrementa cuenta
I
(a)
Diagrama de bloque simplificado del sistema
para visualizar una cuenta bancaria
Etiqueta
LOOP
Código op
Operando
XRA
A
OUT
02H
INR
A
JMP
LOOP
(e)
(b)
Diagrama detallado para el problema de cuenta binaria
Comentarios
; Borra el acumulador
; Saca el acumulador al puerto 02H
; Incrementa acumulador
; Salta hacia atrás al comienzo del...ciclo (dirección
simbólica - LOOP)
Programa en lenguaje ensamblador para el problema de cuenta binaria
Figura 9.7.
I
El diagrama detallado de la Figura 9.8b representa el programa de cuenta binaria con un
retardo de tiempo. Los cinco bloques de la parte inferior del diagrama representan el segmento de
retardo de tiempo del programa. El retardo de tiempo se genera al repetir el lazo de retardo
65.535 (FFFFH) veces.
El programa en lenguaje ensamblador para el programa de cuenta con el retardo de tiempo se
muestra en la Figura 9.8c. Observar que cada bloque en el diagrama de flujo detallado (Fig. 9.8b)
se implementa con una simple instrucción de lenguaje ensamblador. El ciclo del retardo lo da la
www.FreeLibros.me
~
......., ·If,
'J":
! '
1
.. 11
Ii
57
-­
PROGRAMAcrON DEL MICROPROCESADOR 8080/8085
331
a acumulador
IiC1lta al puerto
(
Inicio
Sacar el
acumulador al
puerto 02H
)
Ciclo de
cuenta
...
Borrar el
acumulador OOH
menta cuenta
I
".
Sacar el
acumulador al
puerto 02H
Cargar registro HL
conFFFFH
t
Incrementar
acumulador
~t
~
Retardo de tiempo
,
Segmento de retardo de
tiempo
I
ón
binaria con un
el segmento de
lazo de retardo
l
do de tiempo se
liado (Fig. 9.8b)
1retardo lo da la
(11) Diagrama para el problema de cuenta
binaria con un retardo de tiempo
adicional
(b)
Diagrama detallado para el problema de cuenta binaria con
retardo de tiempo
Figura 9.8.
www.FreeLibros.me
./332
FUNDAMENTOS DE LOS MICROPROCESADORES
..
I
Etiqueta
Código op
Operando
Comentarios
~
para
XRA
A
; Borra el acumulador OOH
rq
::::L'V
CaUNT
DELAY
I~
(e)
OUT
02H
INR
A
MOV
B,A
: Saca el acumulador al puerto 02H
L
; Incrementa acumulador
; Guarda cuenta en registro B
LXI
H,FFFFH
DCX
H
MOV
A,L
ORA
H
JNZ
DELAY
; Carga registro HL con FFFFH
; Decrementa registro HL
; Transfiere registro L al acumulador para examen
.."'.
; Operación lógica OR del registro H con el acumulador;
pone el señalizador Z a I si el registro H y A contienen ceros
MOV
A,B
JMP
COUNT
; Si el señalizador Z - 0, entonces salta a posición DELA Y
(ciclo de retard'»; en otro caso continuar
,.1.
; Restaura cuenta (transferir de B al acumulador)
; Salta a posición COUNT (ciclo de cuenta)
Programa en lenguaje ensamblador para el problema de cuenta binaria.ron retardo de tiempo
Figura 9.8.
l :
~OII
(continuación).
dirección simbólica o etiqueta DELAYen el programa de la Figura 9.8c. El ciclo mayor de cuenta
lo da la dirección simbólica COUNT. El programa realizará ciclos a través del lazo de retardo
65.536 veces cada vez a través del ciclo de cuenta. Las instrucciones DCX H, MOV A,L, ORA H
y JNZ en conjunto consumen unos 24 ~s cuando utilizan la MPU 8085. Como el ciclo de retardo
se repite 65.536 veces, el tiempo de retardo es
24 ~s x 65.536 "" 1.572.864 ~s
El segmento de retardo de tiempo del programa produce un retardo de 1.6 s aproximadamente.
El programa visualiza la primera cuenta, se retarda 1.6 s, visualiza la segunda cuenta, se retarda
1.6 s, etc.
www.FreeLibros.me
..1
,
PROGRAMACION DEL MICROPROCESADOR 8080/8085
333
t
El propósito de las instrucciones MOV A,L y ORA H en el programa en lenguaje ensambla­
dor de la Figura 9.8c puede no parecer claro de inmediato. Estas dos instrucciones están incluidas
para poner a l el señalizador Z cuando el registro par HL sea finalmente decrementado a OOOOH.
Desgraciadamente, la operación previa «decrementar registro par HL» (instrucción DCX H) no
tiene efecto en ninguno de los señalizadores, por lo que se han añadido las instruciones MOV A,L
yORAH.
Las rutinas de retardo de tiempo son comúnmente utilizadas en los programas de micro­
computadora. Están basadas en la idea de que cada instrucción del procesador utiliza una canti­
dad espeCífica de tiempo para su ejecución. Las técnicas de programación disponibles permiten
generar retardos de tiempo mayores que el de 1.6 s, generado en el último ejemplo.
Considerar el 4so de dos ciclos en el programa representado en la Figura 9.8b. Un ciclo está
contenido en el otro. Esta técnica de programación se denomina anidamiento. El ciclo de retardo
de la Figura 9.8b se dice que es el anidado, o ciclo interior. El proceso de repetir instrucciones
hasta que se cumpla una condición, como en el ciclo anidado, se denomina iteración.
~
PROBLEMAS RESUELTOS
~
l
leO
9.7.
mulador,
atienen ceros
!
La última instrucción del programa de la Figura 9.7c es JMP. ¿A qué dirección debe saltar
el programa debido a esta instrucción?
Solución:
La instrucción «.JMP LOOP» de la FIgUra 9.7c indica al procesador que salte a la dirección
simbólica LOOP que corresponde a la instrucción OUT de este ejemplo.
ón DELAY
.
~
9.8.
)
Listar las cinco instrucciones de la Figura 9.8c que forman el segmento de retardo de
tiempo del programa.
Solución:
Las instrucciones LXI H; OCX H; MOV A,L; ORA H; Y JNZ de la Figura 9.8c forman el seg­
mento de retardo de tiempo del programa. Este segmento está específicamente identificado en el
diagrama detallado de la Figura 9.8b.
9.9.
El ciclo de retardo de tiempo representado en el diagrama de la Figura 9.8b los programa­
dores lo denominan ciclo ___ (infinito, anidado).
."
Ldecuenta
l~o de retardo
t.L,ORAH
ciclo de retardo
I
roximadamente.
IeDta, se retarda
I
•
M:r
Solución:
El ciclo de retardo de tiempo representado en el diagrama de la Figura 9.8b se denomina ciclo
anidado.
9.10. Acudir a la Figura 9.8c. La primera vez que el procesador 8080/8085 se encuentra la
instrucción JNZ en este programa, el señalizador Z estará a _ _ (O, 1). Después de
ejecutar la instrucción JNZ, el procesador salta entonces a la siguiente instrucción, que
es ___ .
Solución:
La primera vez que se encuentra la instrucción JNZ en la Figura 9.8c, el seftalizador Z estará a O.
El procesador entonces salta a la siguiente instrucción, que es DCX H (a la posición con la dirección
simbólica DELAY).
www.FreeLibros.me
.:i
'.
334
FUNDAMENTOS DE LOS MICROPROCESADORES
9.11. Acudir a la Figura 9.8c. Cuando el registro par HL ha sido decrementado a OOOOH por la
instrucción DCX H, el sefializador Z está a _ _ (O, 1) por la operación ORA H. Basán·
dose en la condición de este sefializador, la instrucción JNZ es seguida por la opera­
ción _ _ .
.....
11
1000f
El
aIII.
~
Solución:
Cuando el registro par HL de la Figura 9.8c ha sido decrementado a OOOOH por la instrucción
OCX H, el señalizador Z está a I por la operación ORA H. Basándose en esta condición del señali­
zador, la instrucción JNZ es seguida por la operación MOV A,B.
9.12. Listar el código máquina hexadecimal 8080/8085 requerido para ejecutar el programa de
la Figura 9.8c. El programa comenzará en la posición de memoria 2000H como sigue:
Posición de memoria (hex)
Contenido (hex)
2000
2001
2002
AF
..............,.
borra acumulador
Solución:
Acudir al repertorio de instrucciones de la Figura 9.1. Lo que sigue es un listado del código
máquina 8080/8085 que ejecutará el programa de la Figura 9.8c:
Posición de memoria (hex)
Contenido (hex)
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
200A
2008
200c
200D
200E
200F
2010
2011
I,
AF
D3
02
3C
47
21
FF
FF ..
2B
7D
B4
....
C2
08
20
78
C3
01
20
2
www.FreeLibros.me
-= ­
-=;;I!!!!!I!I" -__
..
•
,
PROGRAMAOON DEL MICROPROCESADOR 8080/8085
335
9.4. PROGRAMAS MATEMATICOS
por la
Basán­
opera­
Considerar el problema de sumar los números decimales 1.110.527 y 192.514 utilizando un
sistema basado en el 8080/8085. Convertir estos números a hexadecimales, la solución manual a
este problema de suma puede ser como la de la Figura 9.9a. La suma hexadecimal de
IOFI FF + 02FOO2 = I3E20 116 ,
El acumulador del microprocesador 8080/8085 maneja solamente datos de 8 bits (un byte)
cada vez. El procesador probablemente podría manipular este problema si el programador divi­
diese el número hexadecimal en grupos de longitud-de-un-byte. Cada grupo, más pequeño, de
longitud-de-un-byte puede entonces ser sumado separadamente. Un ejemplo de esta técnica se
muestra en la Figura 9.9b (FF + 02 - O116 más un arrastre). A continuación, se suman los bytes
intermedios (arrastre 1 + FI + FO = E216 más un arrastre). Finalmente, se suman los bytes más
significativos (arrastre 1 + 10 + 02 - 13 16 ), Observar que en las dos últimas sumas, los arrastres de
los bytes menos significativos deben ser considerados al calcular la suma. El microprocesador
8080/8085 tiene instrucciones especiales de «suma con arrastre» para este propósito.
rucción
! señali­
gue:
~
Ior
111
1.110.527 111'"0-'-he-xad"TeCJ-'-m-'ai--+t 10 FI FF
192.514 10
• +02F002
13E201 16
Byte
Byte
más
Byte
menos
significativo intermedio significativo
Arrastres
Primer número
Segundo número
Suma
I .. Arrastre I "Arrastre I
10', FI"', FF
+02
'- FO
\.02
- -_ ......_-_...
-.¡­
13
'E2
01 16
código
=
(a)
(b)
Ejemplo de suma hexadecimal
Primer número
Segundo número
Suma
Suma de 24 bits agrupada en bytes tal y como
la ejecuta un microprocesador de 8 bits
Figura 9.9.
El procedimiento para realizar la suma de 24 bits (suma de 3 bytes) puede ser como sigue:
l. Sumar el byte menos significativo del primer número con el byte menos significativo del
segundo número.
2. Registrar la suma parcial menos significativa.
.,
3. Sumar el arrastre de la suma previa, el byte intermedio del primer número y el byte
intermedio del segundo número.
4. Registrar la suma parcial intermedia.
5. Sumar el arrastre de la suma anterior, el byte más significativo del primer número yel
byte más significativo del segundo número.
6. Registrar la suma parcial más significativa.
En el problema de suma, suponer que el primero y segundo núm~ros tienen asignadas las
posiciones de memoria que se indican en la Figura 9.1 Oa. La posición del resultado de la suma de
24 bits también está detallada en el mapa de memoria de la Figura 9. lOa. Utilizando estas posi­
ciones de la memoria de datos, el programa lineal en lenguaje ensamblador de la Figura 9.1 Ob se
desarrolló para resolver este problema de suma de 3 bytes. Observar que la primera instrucción
www.FreeLibros.me
enrUllIr ;
"n:
...
'h~í
.
.­ .
Ir
.
I
·
....
............................~--~------------~
~
--""
~
336
....................--..
,,~--
R.1NDAMENTOS DE LOS MICROPROCESADORES
ADD M es una operación de suma sin arrastre. Sin embargo, las instrucciones segunda y tercera
ADC M son operacivnes de suma con arrastre.
La suma de números mayores requiere el uso de suma multibyte. En este ejemplo los núme­
ros sumados eran de 3 bytes. A este tipo de suma se denomina suma en triple precisión.
PROBLEMAS RESUELTOS
9.13. El programa listado en la Figura 9.lOb es un ejemplo de suma en _ _ (doble, triple)
precisión.
Soluci6n:
El programa listado en la Figura 9.lOb es un ejemplo de suma en triple precisión.
9.14. Suponer que 10FIFFI6 se va a sumar a 02FOO2, como en la Figura 9.9b. Listar los conteni­
dos de las posiciones de la memoria de datos 2020 a 2025H en la Figura 9.l0a antes de
que se ejecute el programa de suma multibyte.
Memoria de datos
Dirección
(hex)
Contenido
2020
Byte menos significativo del primer número
2021
Byte menos significativo del segundo número
2022
Byte intermedio del primer número
2023
Byte intermedio del segundo número
2024
Byte más significativo del primer número
2025
Byte más significativo del segundo número
2026
Byte menos significativo
2027
Suma Byte intermedio
}
2028
(a)
Byte más significativo
""'"
Mapa de memoria de datos para el programa de suma de 24 bits
Figura 9.10.
\
www.FreeLibros.me
,.. ·
.3
-
I
PROGRAMACION DEL MICROPROCESADOR 8080/8085
nda Y tercera
Etiqueta
Lo los núme­
Código op
Operando
Comentarios
H,2020H
; Inicializa registro par HL con 2020H
(registro par HL utilizado como puntero)
MOV
A,M
; Carga byte menos significativo del primer
número de la posición de memoria LOC
2020H en acumulador
INX
H
; Incrementa puntero HL a 2021H
ADD
M
; Suma posición de memoria 2021 H al
acumulador (suma byte menos
significativo)
STA
2026H
; Almacena suma parcial menos
significativa en posición de memoria
LOC 2026H
INX
H
MOV
A,M
INX
H
; Incrementa puntero HL a 2023H
ADC
M
; Suma posición de memoria 2023H,
acumulador y arrastre ('suma bytes
intermedios con arrastre)
STA
2027H
INX
H
MOV
A,M
INX
H
; Incrementa puntero HL a 2025H
ADC
M
; Suma posición de memoria 2025H,
acumulador y arrastre (suma bytes más
significativos con arrastre)
STA
2028H
; Almacena suma parcial más significativa
en posición de memoria 2028H
LXI
,
isión.
[doble, triple)
lr los conteni­
',lOa antes de
!Jero
r
HLT
(b)
Incrementa puntero HL a 2022H
; Carga byte intermedio del primer
número de la posición de memoria
2022H en acumulador
; Almacena suma parcial intermedia en
posición de memoria 2027H
; Incrementa puntero HL en 2024H
; Carga byte más significativo del primer
número de la posición de memoria
2024H en acumulador
; Alto la MPU
Programa en lenguaje ensamblador para la suma de 24 bits
Figura 9.10.
(continuación),
www.FreeLibros.me
1'·:·'
¡
,
J:
.
•
7,e mm
337
,,------------------------­
338
FUNDAMENTOS DE LOS MICROPROCESAOORES
Solución:
Los contenidos de la memoria de datos de la Figura 9. lOa antes de ejecutar el programa para
sumar IOF l FF 16 + 02FOO2 16 son los siguientes:
Dirección (hex)
Contenido (hex)
2020
2021
2022
2023
2024
2025
FF
02
FI
FO
10
02
•.n.
9.15. Listar los contenidos de las posiciones de memoria 2026H, 2027H Y 2028H en la Figu­
ra 9.10 después que el programa se haya ejecutado sumando 1OF I FF Y02F002.
Solución:
Las posiciones de la memoria de datos de la Figura 9.10 «<suma») contienen lo siguiente después
que el programa se haya ejecutado (IOFI FF + 02FOO2 - 13E20 116):
Contenido (hex)
Dirección (hex)
2026
2027
2028
01
E2
13
(byte de la suma menos significativo)
(byte intermedio de la suma)
(byte más significativo de la suma)
9.16. Acudir a la Figura 9.lOb. El registro par HL es utilizado como registro _ _ (de propósi­
to general, puntero) en este programa de suma.
Solución:
El registro par HL es utilizado como puntero de dirección en el programa de suma de la figu­
ra 9.lOb.
9.17. La instrucción ADDM mostrada en la Figura 9.lOb es una operación de _ _ (suma,
suma con arrastre).
Solución:
La instrucción ADD M mostrada en la Figura 9.1 Ob es una operá'ción de suma.
9.18. La instrucción STA 2027H de la Figura 9.lOb hace que el contenido del regis­
tro _ _ (A, B) sea almacenado en la posición de memoria _ _ (hex).
Solución:
La instrucción STA 2027H de la Figura 9.IOb hace que el contenido del registro A (acumulador)
sea almacenado en la posición de memoria 2027H.
9.19. Acudir a la Figura 9.11. El primer número que se va a sumar está almacenado en ¿qué
posiciones de memoria cuando se utiliza este programa?
Solución:
De acuerdo con el mapa de memoria de la Figura 9.1 la, el primer número de 4 bytes que se va a
sumar se almacena en las posiciones de memoria 2020H a 2023H.
www.FreeLibros.me
r $ m . Iiii· J.UIlF'
,.12.
~
I
rama para
PROORAMACION DEL MICROPROCESADOR 8080/8085
339
9.20. Después que se ejecute el programa de suma multibyte de la Figura 9.11 ¿en qué cuatro
posiciones de memoria se almacena la suma?
SoluciÓD:
La instrucción STAX D almacena las sumas parciales en las posiciones de memoria señaladas
por el registro par DE. La suma se almacena por tanto en las posiciones de memoria 2020H a
2023H después de que se haya ejecutado el programa.
9.21. ¿Cómo debe cambiarse la instrucción MVI e de la Figura 9.llb para realizar la suma de
24 bits en lugar de la de 32?
lla Figu­
!le después
Solución:
La instrucción debe ser «MVI C.03H» si el programa de la Figura 9.1 lb va a realizar una suma
de 24 bits. El operando de la instrucción MVI e (03H en este caso) es el número de bytes que se va a
sumar.
9.22. Acudir a la Figura 9.11. Listar el contenido de las siguientes posiciones de memoria cuan­
do se sumen 12FOC3FF '6 y OIB4D503 16 •
Memoria de datos
~propósi-
Dirección
(hex)
Contenido
2020
J
Byte menos significativo
2021
la Figu­
[fe
•_(suma,
Primer número
2022
2023
Byte más significativo
2030
Byte menos significativo
t
2031
r "
Segundo número
2032
2033
Byte más significativo
..­
o~ en ¿qué
(o)
............
Mapa de memoria de datos para el programa de la suma de 32 bits
Figura 9.11 .
www.FreeLibros.me
•
'1....:'
~
\v
s
340
-72
FUNDAMENTOS DE LOS MICROPROCESADORES
Etiqueta
Código op
Operando
Comentarios
MVI
C,04H
; Inicializa registro e con número de bytes
que se van a sumar
LXI
D,2020H
; Inicializa puntero DE a posición del byte
menos significativo del primer número
LXI
H,2030H
; Inicializa puntero HL a posición del byte
menos significativo del segundo número
XRA
A
; Borra señalizador de arrastre
A
j
LDAX
D
; Carga byte del primer número en el
acumulador
ADC
M
; Suma byte del segundo número,
acumulador y bit de arrastre
LOOP
STAX
D
; Almacena suma parcial en posición de
memoria señalada por el registro DE
DCR
e
; Decrementa registro
JZ
END
4
•,
'.23.
e
-"'4
; Si señalizador Z - 1, entonces salta a
dirección simbólica etiquetada END
INX
D
; Incrementa puntero DE
INX
H
; Incrementa puntero HL
JMP
LOOP
~
-,
.~
; Salta siempre a dirección simbólica
etiquetada LOOP
~
,~.
END
; Alto la MPU
HLT
(b)
)
Programa en lenguaje ensamblador para el problema-ejemplo
Figura 9.11. (continuación).
(
'>0 1
~
,
Posición de memoria (hex)
2020
2021
2022
2023
2030
2031
2032
2033
www.FreeLibros.me
.
Contenido (hex)
FF
.~-
,
p.
PROORAMACION DEL MICROPROCESADOR 8080/8085
p
341
Solución:
Antes de sumar 12FOC3FFI6 a 0184D503i6' la memoria de datos mostrada en la FIgUra 9.11
debe ser cargada con los siguientes datos:
,',
Posición de memoria (hex)
.
'
Contenido (hex)
2020
2021
2022
2023
FF
C3
2030
2031
2032
2033
03
D5
B4
01
FO
12
9.23. ¿Cuál es el resultado de sumar l2FOC3FF '6 y 01 B4D503 16? Listar los contenidos y posicio­
nes donde se almacenará esta suma multibyte una vez que se ejecute el programa de la Fi- .
gura 9.11.
Solución:
La suma hexadecimal 12FOC3FF + 01 84D503 .. 14A5990216" El resultado (suma) del programa
de la Figura 9.11 será almacenado como sigue en la memoria de datos:
Posición de memoria (hex)
2020
2021
2022
2033
Contenido (hex)
02
99
(byte menos significativo de la suma)
AS
14
(byte más significativo de la suma)
'9.24. Acudir a la Figura 9.11 b. Si el señalizador Z = O, entonces la instrucción _ _ será eje­
cutada después de la instrucción JZ en este programa.
Solución:
Si el señalizador Z - O en la Figura 9.11 b, entonces la instrucción INX D será ejecutada después
de la instrucción JZ en este programa.
PROBLEMAS SUPLEMENTARIOS
'.25. Para el programador, la microcomputadora basada en el 8080/8085 consta de memoria, puertos de
entrada/salida, señalizadores, pila, puntero de pila, contador _ _ , repertorio
y registros de
propósito general.
Res. de programa, de instrucciones.
,.26.
Citar los cuatro campos de una línea de instrucción de lenguaje ensamblador.
Res. etiqueta, código de op (operación), operando, comentarios.
www.FreeLibros.me
~.
,
342
FUNDAMENTOS DE LOS MICROPROCESADORES
9.27. El campo de operando se denomina a veces _ _ .
Res. argumento.
9.28. Las sentencias en lenguaje ensamblador contienen, habitualmente, entradas en los campos
_ _ y _ _ , mientras que los campos de etiqueta y comentarios son opcionales.
Res. código de op (operación), operando.
9.29. El programa del 8080/8085 representado en la Figura 9.12 carga los números ASCII de las posiciones
de memoria _ _ (hex) y _ _ (hex), enmascara los 4 bits _ _ (menos, más) significativos,
suma los números, ajusta en decimal la suma y almacena la suma _ _ (BCD, binaria) en la
posición de memoria 2032H.
Res. 2030H, 2031 H, más, BCD.
9.30. La función representada por el bloque 1 de la Figura 9.12b podría producirse por ¿qué instrucción
del 8080/8085?
Res. LXI H, 2030H.
9.31. La función representada por el bloque 2 de la Figura 9.12b podría producirse por ¿qué instrucción
del 8080/8085?
Res. MOV A.M.
9.32. La función representada por el bloque 3 de la Figura 9.12b podrfa producirse por ¿qué instrucción
del 8080/8085?
Res. ANIOFH.
9.33. La función representada por el bloque 4 de la Figura 9.12b podrfa producirse por ¿qué instrucción
del 8080/8085?
Res. MOV B,A.
9.34. La función representada por el bloque 5 de la Figura 9. 12bpodrfa producirse por ¿qué instrucción del
8080/8085?
Res. INXH.
Memoria de datos
Dirección
(hex)
Contenido
(hex)
2030
BS
Representación ASCII del número 5 BCD
2031
B9
Representación ASCII del número 9 BCD
2032
..........
+-Suma BCD
...,.¡.....-"
(a)
........
Mapa de memoria de datos para el problema ejemplo
Figura 9.12.
www.FreeLibros.me
.... ~
_1'
~
~
j
1
r
E
PROGRAMACION DEL MICROPROCESADOR 8080/8085
( Inicio)
t
Cargar registro
par HL con
2030H
los campos
l
Transferir
2 memoria LOC(HL)
al acumulador
posiciones
Carga acumulador con primer número ASCII desde 2030H
f
o;ignificativos,
.lria) en la
3
Operación AND
del acumulador
con'OFH
4
Transferir
acumulador a B
S
Incrementar
registro par HL
J
Enmascara los cuatro bits más significativos del acumulador
t
lié instrucción
Guarda número BCD en registro B
+
J.
lUé instrucción
~,
instrUCción
Incrementa registro par HL a 203\ H
t
.
qué instruccIón
.~.
Transferir
6 memoria LOC (HL
al acumulador
Carga acumulador con segundo número ASCII desde 2031H
,­
7
Operación AND
de acumulador
con OFH
Enmascara los cuatro bits más significativos del acumulador
8
Sumar
acumulador a B
Suma números BCD en los registros A y B
9
Ajuste decimal
del acumulador
10
Incrementar
registro par H L
+
tnstrUcelón del
+
j.f.',..::
Ajusta la suma en A para que sea igual al número BCD
"
,
..
Incrementa registro par HL a 2032H
Transferir
11
acumulador a
memoria LOC(HL)
)
t>
¡
12
(
~
~.
Almacena la suma BCD en posición de memoria 2032H
t
Alto )
(b)
r
~
t
r-
L,
Inicializa registro par HL con 2030H
Diagrama detallado para el problema ejemplo
Figura 9.12: {continuaci6n}.
www.FreeLibros.me
343
344
FUNDAMENTOS DE LOS MICROPROCESAOORES
9.35. La función representada por el bloque 8 de la Figura 9.12b podría producirse por ¿qué instrucción
del 8080/8085?
Res,
9.36.
ADDB.
La función representada por el bloque 9 de la Figura 9.12b podría producirse por ¿qué instrucción
del 8080/8085?
Res, DAA.
9.37. La función representada por el bloque 11 de la Figura 9.12b podría producirse por ¿qué instrucción
del 8080/8085?
Res. MOV M,A.
9.38.
La función representada por el bloque 12 de la Figura 9.12b podría producirse por ¿qué instrucción
del 8080/8085?
Res. HLT.
9.39. Escribir un programa en lenguaje ensamblador 8080/8085 para el problema representado en la Figu­
ra 9.12.
.. ~
Código de op
LXI
MOV
ANI
MOV
INX
MOV
ANI
ADD
DAA
INX
MOV
HLT
9.40.
-
'-40t0
! ftICI
t'.SÜ:
:mq
Res.
Etiqueta
....
Operando
H,2030H
A,M
OFH
B,A
H
A,M
OFH
B
H
M,A
Comentarios
. ;'lnicializa registro HL
; Carga A con primer número ASCII
; Enmascara 4 bits más significativos de A
; Guarda número BCD en B
; Incrementa registro HL a 2031 H
; Carga A con segundo número ASCII
; Enmascara 4 bits más significativos de A
; Suma número BCD en A y B
; Ajusta suma en A para que sea igual al número BCD
; Incrementa registro HL a 2032H
; Almacena suma BCD en posición de memoria 2032H
; Detiene MPU
Después que el programa de la Figura 9.12 ha sido ejecutado, la suma BCD _ _ (BCD) será
depositada en la posición _ _ de la memoria de datos (hex).
Res. 0001 OlOOBCD' 2032H.
..
www.FreeLibros.me
6SH(
f3hic
Á..liIHC
..
. \ I
EPR(
.le g I
El
dprñ
~rq
~'O!
3!' 3':
~(
Capítulo 10
cción
cción
EL MICROPROCESADOR
MOTOROLA 6800
cción
cción
Figu­
BCD
32H
será
r.
10.1. INTRODUCCION
Motorola Corporation introdujo su microprocesador 6800 de 8 bits en la década de los aftos
setenta. Motorola ha desarrollado desde entonces «la familia 6800» con nuevas pastillas que
generalmente son una extensión software y hardware compatible con la MPU 6800. El 6800,
6802 (6800 con reloj interno y alguna RAM) y el más potente 6809 son microprocesadores de 8
bits que son fáciles de utilizar. Versiones especializadas de la família 6800, como las 6801, 6804,
68HC04, 6805, 68HC05 y 68HC 11 se describen como computadoras de una sola pastilla. El
fabricante las denomina unidades microcomputadoras (MCU). Una pastilla MCU, tal como la
68HC11, puede incluir una unidad microprocesadora de 8 bits (como el 6800), un temporizador,
ROM, RAM, un conversor A/D, un oscilador, líneas de E/S programables e incluso una
EPROM. El 68HC 11 podría compartir el repertorio de instrucciones del 6800. MCU en pastillas
de 8 bits son populares en los sistemas computadoras dedicadas de bajo costo.
En 1980, Motorola introdujo su microprocesador avanzado de 16 bits: el 68000. El 68000 fue
el primer microprocesador que introdujo una arquitectura interna de 32 bits y grandes conjuntos
de registros de propósito generaL Otros miembros de la familia 68000 son el 68HCOOO (CMOS),
68008,68010,68020 Y 68030. Las características de la MPU 68000 son una arquitectura interna
de 32 bits con un bus externo de datos de 16 bits, y 16 megabytes (M bytes) de direcciones de
memoria. La MPU 68008 tiene la misma arquitectura interna de 32 bits con un bus de datos
externo de 8 bits. El 68010 es una MPU de memoria virtual mejorada de 16 bits externos/32 bits
internos. El muy popular 68020 es una MPU de memoria virtual de 32 bits internos/32 bits
externos. Más recientemente, Motorola ha sacado su más potente microprocesador de 32 bits
mejorado: el 68030. Las MPU de la serie 68000 no son compatibles con la familia más antigua de
microprocesadores: la 6800 de 8 bits.
..
La memoria virtual es una característica de MPU avanzadas, tales como la 68010, 68020 Y
68030. El término memoria virtual significa que un programador puede escribir programas como
si la capacidad de memoria fuese ilimitada. La técnica de memoria virtual permite programas
mayores que la capacidad de la memoria principaL La parte «extra» del programa se almacena en
memoria secundaria (como por ejemplo discos), pero es accedida como si estuviese en memoria
principal.
El microprocesador 6800 se usa normalmente en un sistema microcomputador. Una configu­
ración mínima de sistema se ilustra en la Figura 10.1. El microprocesador 6800 requiere una
fuente de alimentación de +5 V y un reloj externo de dos fases (no se necesita reloj externo en la
MPU 6802). La entrada de rearranque a la MPU 6800 mostrada en la Figura 10.1 es una inte­
rrupción hardware conectada a la patilla de REINICIALIZACION de la pastilla y se utiliza para
345
www.FreeLibros.me
,
"dumnnnl 'IIIILI··
346
1
FUNDAMENTOS DE LOS MICROPROCESADORES
J
IRearranquel
1'IdI
....-~
Bus de direcciones
-
+
Reloj
......
~
)
ROM
y
,
_
v'
Bus de datos
~
I\
Líneas de datos_
.....
RAM
.........
PIA
6820
t
.,,­
~
~J
Bus de control
----,1
:So
.iI"II
.-....
l
~
~
t-
Fuente de
alimentación
de +5 V
-.-.
-~
........
MPU
6800
Líneas
de control
Dispositivos
de E/S
t
....,-
.:1
,--
-
f-- Líneas de datos
..
f
Figura 10.1.
i.
(
Diagrama de bloques de un sistema mínimo basado en el 6800.
inicializar el sistema. La MPU 6800 tiene 16 líneas de dirección y 8 lineas de datos bidirecciona­
les. Las líneas de control están etiquetadas como el bus de control de la Figura 10.1. A la MPU en
la Figura 10.1 se le ha añadido la memoria en forma de ROM y RAM.
La interfaz entre la MpU y los dispositivos de entrada/salida en la Figura 10.1 se hace con el
adaptador de interfaz de periféricos 6820 (PIA) especial de Motorola. Observar que la PIA 6820
proporciona dos caminos de datos de 8 bits que pueden ser utilizados como puertos de entrada o
de salida. La PIA tiene también 4 líneas de control entre la PIA y los dispositivos periféricos. La
PIA 6820 tiene registros internos que la pueden hacer programable y permite almacenamiento
www.FreeLibros.me
...s
..
.11
EL MICROPROCESADOR MOTOROLA 6800
347
temporal de datos para simplificar la transferencia de datos. Observar, en la Figura 10.1, que los
pulsos de interrupción pueden ser enviados desde la PIA, vía el bus de control, a la MPU 6800.
En resumen, la PIA 6820 forma un enlace de comunicación de dos direcciones y un dispositivo
de almacenamiento temporal entre el microprocesador y los dispositivos periféricos.
Motorola también produce otros dispositivos especiales compatibles con el microprocesador
6800. Algunos son el adaptador de interfaz de comunicaciones asíncronas 6850 (ACIA) que se .
utiliza para transmisión asíncrona de datos serie, las pastillas de reloj de la serie 6870 de Motorola
que pueden ser utilizadas para proporcionar los pulsos de reloj de dos fases que requiere la MPU,
y el controlador de acceso de memoria directa 6844 que proporciona, a los sistemas basados en el
6800, la lógica para soportar cuatro canales de acceso directo a memoria (DMA). Otras muchas
pastillas de soporte están disponibles para las series de microprocesadores 6800 y 68000.
10.2. FUNCIONES Y DIAGRAMA DE PATILLAS DEL 6800
El microprocesador de 8 bits Motorola 6800 está ubicado en un encapsulamiento de doble línea
de 40 patillas (DIP). El diagrama de patillas de la MPU 6800 se ilustra en la Figura 1O.2a. En la
Figura 10.2b hay una tabla que resume los nombres y descripciones de las patillas. La patilla
estándar MPU MC6800 opera con una frecuencia de reloj de 1,0 MHz. Existen versiones más
rápidas de la MPU 6800. El MC68AOO es el mismo procesador pero opera con una frecuencia de
reloj de 1,5 MHz, mientras que el MC68BOO opera con 2,0 MHz.
Las entradas y salidas de la MPU 6800 pueden agruparse como entradas de reloj, entradas de
alimentación, entradas/salidas del bus de datos, salidas del bus de direcciones y entradas/salidas
de control. Las flechas en el diagrama de patillas de la Figura 10.2a muestran la dirección del
flujo de sefiales.
La función de cada patilla del microprocesador 6800 está descrita brevemente en los párrafos
que siguen. En cada párrafo, acudir a la Figura 10.2 para la localización de cada patilla y un
resumen de sus funciones.
Tie"a (V.. ) (patillas 1 y 21)
Estas patillas están conectadas a la parte negativa de la fuente de alimentación de 5 V d.c.
Alto (1lAU') (patilla 2)
Cuando la entrada HArT está activada por un nivel BAJO, la MPU 6800 entra en el modo
alto. En este modo las líneas de tres estados van a su estado de alta impedancia y el procesador se
detiene. Esta entrada puede utilizarse para «ir paso a paso» en el proceso de depuración de un
programa. Muchas veces la entrada HALT se inhabilita al conectarla a +5 V.
¡;jona­
PUen
con el
• 6820
rada o
os. La
niento
Reloj (01 Y 02) (patillas 3 y 37)
Estas patillas de entrada reciben sefiales de reloj no solapadas de la circuitería de reloj externa
al sistema .
Línea de petición de interrupción (11fQ) (patilla 4)
Cuando la entrada IRQ es activada con un nivel BAJO, el microprocesador 6800 completará
la instrucción actual, introducirá todos los registros en la pila, pondrá a 1 el sefializador 1, y
www.FreeLibros.me
•
-
(.....:: z11I1I1í1l..iI........................................--~------------348
.
-~
~
FUNDAMENTOS DE LOS MICROPROCESADORES
Vss
HALT
01
IRQ
VMA
NMI
BA~
V __
1
2
3
4
5
6
7
, 8
REINICIALIZACION
TSC
ce
~
.,­1
AO
Al
A2
A3
A4
AS
A6
A7
A8
A9
AIO
All
I
9
10
MC6800
11
12
13
14
15
16
17
18
19
20
R/W
DO
DI
D2
D3
D4
D5
D6
D7
A15
AI4
AI3
~
-~
:"1.:­
~
~
A12
V.
Diagrama de patillas de la MPU 6800
(a)
Descripción
Nombres de las patillas
·AO-AIS
·DO-D7
·HALT
·TSC
*R/W
·VMA
*DBE
'loBA
·IRQ
REINICIALIZACION
NMI
01,02
V... Va:
ff-BtL
02
DBE
1
,
ia.':&.-ia
Lineas de dirección
Lineas del bus de datos
Alto
Control de tres estados
Lectura/escritura
Dirección válida de memoria
Habilitación bus de datos
Bus disponible
Petición de interrupción
Reinicialización
Interrupción no enmascarable
Señales de reloj
Alimentación
.. Estas señales se conectan al bus del sistema.
(b)
Nombres de las patillas y funciones
Figura 10.2.
Tipo
Salida, tres estados
Bidireccional. tres estados
Entrada
Entrada
Salida, tres estados
Salida
Entrada
Salida
Entrada
Entrada
Entrada
Entrada
LB
cionaI ddÍ
~
La"
etce: :
una lo:mI
tu.ra.
'Ii.'
1
,
www.FreeLibros.me
EL MICROPROCESAOOR MOTOROLA 6800
349
saltará a la rutina de servicio de interrupción seí\alada por las posiciones de memoria FFF8H y
FFF9H. La interrupción IRQ puede ser enmascarada.
Dirección pálida de memoria (JI'MA) (patilla 5)
Cuando la salida VMA va al nivel ALTO, indica a otros dispositivos del sistema que la
dirección en el bus de direcciones es válida.
4
Interrupción no enmascarable (NMI) (patilla 6)
Cuando la entrada NMl va al nivel BAJO, la respuesta del microprocesador 6800 es similar a
su respuesta cuando la entrada IRQ alcanza el nivel BAJO. La interrupción NMI es no enmasca­
rable y su vector de direcciones se encuentra en las posiciones de memoria FFFCH y FFFDH.
Los contenidos de FFFCH y FFFDH apuntan entonces al comienzo de la rutina de servicio de in­
terrupción.
Bus disponible (BA) (patilla 7)
Cuando la salida HA alcanza el nivel ALTO indica a los dispositivos externos que el micropro­
cesador 6800 ha dejado de ejecutar instrucciones. La MPU 6800 cesa de ejecutar instrucciones
debido a una instrucción de espera (WAI) o a una entrada hardware HALT. La línea de control
HA proporciona un método de decir a los dispositivos externos que los buses de direcciones y
datos de la MPU 6800 están en el estado de tres estados y pueden ser utilizados para cosas como,
por ejemplo, operaciones DMA.
Alimentación (JI'ce) (patilla 8)
La parte positiva de la fuente de alimentación de 5 V d.c. se conecta a la patilla 8 del CI
microprocesador 6800.
Líneas de dirección (Ao-A I !!) (patillas 9-20, 22-25)
Las 16 salidas de dirección de la MPU 6800 (Ao-A ,s ) están conectadas al bus de direcciones
del sistema. Estas líneas son utilizadas para direccionar dispositivos como ROM, RAM Y de
E/S.
•
Líuas IR .tol (Do-O,) (patillas 26-33)
Las ocho patillas de datos (Do-D7 ) de la MPU 6800 están conectadas al bus de datos bidirec­
cional del sistema. Las líneas del bus de datos están para transferir datos a y desde memoria o
dispositivos de E/S.
Control de lectura/escritura (R/W) (patilla 34)
La salida R/Wes una línea de control que indica a un dispositivo externo (RAM, ROM, PIA,
etcétera) si la MPU 6800 está leyendo o escribiendo. Una salida ALTA de la línea R/W indica
una lectura, mientras que una salida BAJA indica que se está realizando una operación de escri­
tura.
•
www.FreeLibros.me
,
:;:::sr
a
350
iR. . . .
FUNDAMENTOS DE LOS MICROPROCESAOORES
Habilitación del bus de datos (DBE) (patilla 36)
La entrada DBE controla las excitaciones del bus de datos del microprocesador 6800. Una
entrada ALTA en la patilla DBE habilita las líneas de datos, mientras que una entrada BAJA
inhabilita, o pone en tres estados, a las líneas de datos. Debido a que las transferencias de datos
entre memoria y E/S ocurren cuando el reloj 02 está en el nivel ALTO, la patilla DBE está
muchas veces conectada a la línea 02 del reloj.
Control de tres estados (rSC) (patilla 39)
Cuando la patilla de entrada TSC está excitada en ALTO por un dispositivo externo, todas las
líneas de dirección y la línea de E/Westarán en tres estados. La línea TSC se utiliza con configu­
raciones DMA. Cuando no se utiliza DMA la patilla TSC puede conectarse a tierra.
Línea de reinicialización (REINICIALIZACION) (patilla 40)
-
,
I
\ :i
I.j
Cuando la patilla de REINICIALlZACION pasa del nivel ALTO al BAJO, el microprocesa­
dor 6800 pone el señalizador 1 a 1 y salta a la rutina de servicio de interrupciones de reinicializa­
ción señalada por FFFEH y FFFFH. La entrada de REINICIALIZACION se utiliza típicamente
para inicializar o reinicializar el sistema.
PROBLEMAS RESUELTOS
10.1.
Solución:
1
El Motorola 6800 es un microprocesador de 8 bits. Su acumulador es de 8 bits, y transfiere
datos en grupos de 8 bits vía el bus de datos.
;~
,~
!
El Motorola 6800 es un microprocesador de _ _ (8, 16) bits.
10.2.
iti
f
~
Una sencilla fuente de alimentación de _ _ -V se utiliza para alimentar el micropro­
cesador 6800. En la Figura 10.2a, la parte positiva de la fuente de alimentación está
conectada a la patilla ___ , mientras que la negativa va a las patillas etiqueta­
das _ _ .
Solución:
Se utiliza una fuente de alimentación de 5 V para alimentar el mi~roprocesador 6800. En la
Figura 1O.2a, la parte positiva de la fuente de alimentación está conectada a la patillas etiqueta­
das V" (patillas 1 y 21).
10.3.
El microprocesador 6800 utiliza _ _ (número) patillas como líneas de dirección
y _ _ (número) patillas como líneas de datos bidireccionales.
Solución:
El microprocesador 6800 utiliza 16 patillas como líneas de dirección y 8 patilIas como líneas
de datos bidireccionales.
10.4.
Las tres interrupciones hardware del microprocesador 6800 son las de REINICIAliZA­
<:JlJN, _ _ y _ _ .
Solución:
Las tres interrupciones hardware del microprocesador 6800 son las de REINICIALIZACION.
NMI (interrupción no enmascarable) e IRQ (petición de interrupción).
1
•
www.FreeLibros.me
-..
3
:1
=
EL MICROPROCESADOR MOTOROLA 6800
10.5.
). Una
BAJA
~ datos
rE está
~
10.7.
unente
10.8.
")1,
Acudir a la Figura 1O.2a. La patilla 34 en la MPU 6800 está etiquetada _ , que
significa _ _ / _ _ . Cuando esta salida de control está en ALTA, el prOcesador
está ___ (leyendo, escribiendo), y cuando está en BAJA, está ___ (leyendo, escri­
biendo).
Solución:
Según la información de la Figura 10.2 la patilla 34 de la MPU 6800 está etiquetada R/W. que
significa lectura/escritura. Cuando esta salida de control está en el nivel ALTO, el procesador está
leyendo, y cuando está en el nivel BAJO, está escribiendo.
~aliza­
r
La MPU 6800 utiliza un reloj de _ _ -fases sin solapamiento.
Solución:
La MPU 6800 utiliza un reloj de dos fases sin solapamiento. '
~
rocesa­
-f'
Activar la patilla de entrada _ _ en el 6800 hará que el procesador se detenga y todas
las líneas de tres estados vayan a su estado de alta impedancia.
Solución:
Al activar la patilla de entrada HALT en el 6800 hará que el procesador se detenga y todas las
líneas de tres estados vayan a su estado de alta impedancia.
10.6.
das las
mfigu­
351
Acudir a la Figura 1O.2a. La patilla 5 de la MPU 6800 está etiquetada _ _ ,-lo cual
significa _________ .
Solución:
Según la información de la Figura 10.2, la patilla 5 de la MPU 6800 está etiquetada VMA, lo
cual significa dirección válida de memoria.
ansfiere
~
rropro­
ón está
iqueta­
Un diagrama de bloques de la organización interna del microprocesador Motorola 6800 se mues­
tra en la Figura 10.3. El 6800 tiene un bus de datos, con buffers de tres estados, que contiene 8
bits (Do-D7 ). Los números próximos a cada entrada o salida de la Figura 10.3 son los números de
•
O. En la
:tiqueta-
Lcción
10
10.3. ARQUITECfURA DEL 6800
líneas
«LIZA­
~
ACION,
patilla. En la parte superior de la Figura 10.3 está el bus de direccio!1es con buffers de 16 bits
(Als-Ao)' La MPU 6800 contiene un contador de programa de 16 bits, un puntero de pila de 16
bits, un registro índice de 16 bits, dos acumuladores de 8 bits (A y B) y un registro de códigos de
condición de 8 bits. Las nueve señales de control se muestran a la izquierda de la Figura 10.3. Son
las entradas de reinicialización, de interrupción no enmascarable, de continúa/alto, de petición de
interrupción, control de tres estados y habilitación del bus de datos y las salidas de bus disponible,
dirección de memoria válida y lectura/escritura. Las entradas de reloj 01 y 02 también se
muestran a la izquierda en la Figura 10.3.
La sección de la unidad aritmética-lógica (ALU) realiza las operaciones lógicas y aritméticas,
mientras que el registro de códigos de condición asociado contiene los seis señalizadores. El
registro de instrucción alimenta al decodificador de instrucciones y al bloque de control. El
decodificador de instrucciones interpreta la instrucción y determina el procedimiento que se va a
~uir para su ejecución. El decodificador de instrucciones dirige al control para generar las
señales internas y externas, adecuadas, para completar la instrucción. Las líneas de control inter­
!lO que coordinan la operación del microprocesador no se muestran en la Figura 10.3.
www.FreeLibros.me
,
.'
9
4
352
¡
F1JNDAMENTOS DE LOS MICROPROCESADORES
,.0.15 ,.0.14 ,.0.13 ,.0.12 ,.0.11 ,.0.10 ,.0.9
25 24 23 22 20 19 18
tt t
,.0.8
17
,.0.7
,.0.6
16
15
A5
14
,.0.4
13
,.0.3
12
,.0.2
11
Al
10
,.0.0
9
2. El al
de la
de pI
3. El p&
conti
MPl
El r~
para
5. El re,
señal
4.
3
Reloj. 02 37
Reloj. 01
RElNICIALlZACION 40
Interrupción no enmascarable 6
HALT
Petición de interrupción
2
4
Señalizado"
Control de tres estados 39
Habilitación del bus de datos 36
Bus disponible
7
Dirección válida de memoria
5
lectura/escritura.
La MPL'
están repre511
denomina re
ciones de 1M
bifurcación.
R(W 34
I
J
vcc • Patilla 8
v.. _ Patillas 1.21
26
07
27
D6
28
05
29
D4
30
03
31
02
32
01
33
DO
Figura 10.3. Diagrama de bloque funcional de la MPU 6800. (Cortesra de Motorola, Ine.}
Como e!
Registros
El diagrama de bloques de la MPU 6800 de la Figura 10.3 hace que esta unidad parezca más
simple que la 8085. Esto se debe principalmente al uso de solamente dos acumuladores. La MPU
6800 se considera a veces como un procesador orientado a memoria porque normalmente hace
muchas transferencias con memoria. El 6800 también utiliza E/S de mapa de memoria. Las
entradas y salidas son tratadas como posiciones de memoria.
Los registros del microprocesador 6800 son los siguientes:
l. Los dos acumuladores de 8 bits (ACCA y ACCB) son el foco de muchas de las operaciones
del microprocesador. Las operaciones del acumulador incluyen las aritméticas, lógicas, de
carga y almacenamiento, entrada y salida y otras. El segundo acumulador (ACCB) no es
exactamente un registro de propósito general, sino un acumulador real, ya que todas las
operaciones que pueden realizarse en el acumulador A también pueden realizarse en el
acumulador B.
www.FreeLibros.me
de a"a5("~
del acumua
Cal.
Els~
indica un O'
MSB (B.l di
decomplm
de los num
señalizadt:W
Cor.
enla~
Estos núme
produce en:
número nq
,
EL MICROPROCESAOOR MOTOROLA 6800
353
El contador de programa (PC) es un registro de 16 bits que siempre contiene la dirección
de la siguiente instrucción que se va a ejecutar. Tiene el mismo propósito que el contador
de programa de los microprocesadores genéricos 8080 y 8085.
El puntero de pila (SP) es un registro de propósito especial de 16 bits. El puntero de pila
contiene una dirección de 16 bits que define la parte superior de la pila en la RAM. Las
MPU del 8080;8085 y genérica también contienen punteros de pila.
El registro índice (IX) es un registro de propósito especial de 16 bits. Su uso principal es
para apuntar y modificar direcciones.
El registro de códigos de condición (CCR) es un registro de 8 bits que contiene los seis
señalizadores utilizados por la MPU 6800.
Señalizadores
La MPU 6800 utiliza seis bits de código de condición o señalizadores. Estos seis señalizadores
están representados en la Figura 1004, Y se agrupan en un solo registro de 8 bits que Motorola
denomina registro de códigos de condición (CCR). Como en otros microprocesadores, las instruc­
ciones de bifurcación examinan los señalizadores para determinar si existe o no una condición de
bifurcación.
H
1
N
z
v
Ie
la, Ine.}
I
parezca más
res. La MPU
almente hace
temoria. Las
¡':ones
lógicas, de
ACCB) no es
que todas las
alizarse en el
ilS.
-
Figura 10.4.
Seftalizadores del registro de código de condición del 6800.
Como en el microprocesador genérico, yen los microprocesadores 8080 y 8085, el seña/izador
de arrastre (C) se pone a 1 siempre que se genera un arrastre (o «préstamo») en el MSB
del acumulador. Una suma mayor que la capacidad del acumulador de 8 bits pone el señalizador
Cal.
El señalizador de «overflow» (VJ del registro de códigos de condición, de la MPU del 6800,
indica un overflow de complemento a 2. Cuando se trata con números con signo en el 6800, el
MSB (B, ) del (de los) acumulador(es) es el bit de signo. Los 7 bits restantes se escriben en forma
de complemento a 2 y contendrán números comprendidos entre +127 10 y -128 10 , Este es el rango
de los números con signo. Si el resultado de una operación aritmética excede este rango, el
señalizador de overflow (VJ se pone a l. Esto avisa al usuario que se ha producido un error.
Considerar la suma de los números positivos 79 10 y 64 iO • El decimal +79 es igual a 01001111
en la notación en complemento a 2. El decimal +64 es igual a 01000000 en complemento a 2.
Estos números en complemento a 2 son sumados en la Figura lO.5a. Debido al arrastre que se
produce entre las posiciones B6 y B 7 , el bit de signo del resultado ha cambiado al, indicando un
número negativo, lo cual es un error. El procesador 6800 en la Figura 1O.5b se utiliza para sumar
www.FreeLibros.me
t
=
354
FUNDAMENTOS DE LOS MICROPROCESADORES
Bit de signo
.
'\.
0100 1111 - Número positivo
+ 01000000 - Número positivo
10001111
' - - - Error - El bit de signo debería
indicar un número positivo
(a)
Positivo
Suma en complemento a 2 mostrando el efecto sobre el bit del signo
Complemento
a2
Acumulador A
Acumulador A
Después de la operación
11 1
Acumulador B
Registro de códigos de condición
V
1,
I
2'":___".;­
(b) . Efecto en el señalizador de overflow
Figura 10.5.
los mismos números positivos (en la notación en complemento a 2) utilizando los acumuladores
A y B. La suma (10001111 en este ejemplo) se deposita en el acumulador A después de la
operación de suma. El sefializador de overflow (V) se pone al, indicando que la suma es mayor
que +127'0 (suma = 79 10 + 64 10 - 143 10 en este ejemplo).
Considerar la suma de dos números negativos como -79'0 y -64'0' El decimal-79 es igual a
10110001 en la notación en complemento a 2 y el-64 es igual a i 1000000. Como la mayoría de
los bits significativos de ambos números en complemento a 2 son 1, representan números negati­
vos entre -1 y -128. Estos números en complemento a 2 se suman en la Figura 1O.6a. El
resultado es 101110001. El bit de signo debe permanecer a I (para los negativos), pero ha
cambiado. El resultado es erróneo porque excede el límite del rango de -128'0'
La tarea de sumar los números negativos -79'0 (10 110001 en complemento a 2) y -64'0
(11000000 en complemento a 2) utilizando la MPU 6800 se muestra en la Figura 1O.6b. Los
números en complemento a 2 están en los acumuladores A y B. La suma aparece en el acumula­
dor A después de la operación de sumar. La suma es errónea a causa de un problema de overflow.
El sefializador de overflow (V) se pone al, avisando al usuario que se ha excedido el rango del
procesador 6800. El señalizador de arrastre (e) también se pone 1, indicando el arrastre fuera de
la posición B7' Esto se muestra en la Figura 1O.6a.
El señalizador de cero (2) del registro de códigos de condición de la MPU 6800 se pone a I
siempre que el contenido del acumulador sea cero como resultado de una operación o de transfe­
rencia de datos. Si el señalizador de cero se pone a O, significa que el contenido del acumulador
no es cero.
www.FreeLibros.me
•
,
,
1---..._,__
,,'
EL MICROPROCESADOR MOTOROLA 6800
355
Bit de signo
'\.
,
10110001 = Número negativo
+ 11000000 = Número negativo
101110001
'--­
(a)
..
Negativo
AcumuladorA
Error -El bit de signo debería
indicar un número negativo
Suma en complemento a 2 mostrando el efecto sobre el bit del signo
Complemento
a2
Positivo - Error
G[~
Acumulador A
~
........,....-----=-,~
Desp. de la opención
Antes de la opención
Acumulador B
iI5
de condición
Negativo
11 11 1 Registro de códigos de condición
1I 11000000 1
/Co~nto
V
C
a2
(b)
Efecto en el señalizador de overflow
. Figura 10.6.
muladores
lespués de la
lID3 es mayor
~ 79
es igual a
la mayoría de
meros negati­
~ 10.6a. El
vos), pero ha
a 2) Y -64'0
11'3 10.6b. Los
D el acumula­
1 de
overflow.
) el rango del
astre fuera de
,
O se pone a 1
de transfe­
i acumulador
1o
El señalizador negativo (N) del registro de códigos de condición de la MPU 6800 se utiliza
para indicar un resultado negativo. Tiene el mismo propósito que el señalizador de signo en el
procesador 8080/8085. El bit de signo es B7 en el acumulador. Si el resultado de la última
operación aritmética, lógica o de transferencia de datos fuese negativo, el señalizador N se pondrá
a l. Sin embargo, si el resultado fuese positivo, el señalizador se pondrá a O. El señalizador N
estará igual que el MSB del acumulador.
~
El señalizador de máscara de interrupción (1) del registro de códigos de condición en la MPU
6800 inhibe todas las interrupciones IRQ cuando se pone a l. Si el señalizador 1 está a O, en la
patilla de entrada IRQ de la pastilla del procesador 6800 habrá un nivel BAJO. Algunas instruc­
ciones especiales afectan al señalizador de máscara de interrupción. Estas instrucciones se detalla­
rán en una sección posterior.
El señalizador de semiarrastre (H) en el registro de códigos de condición de la MPU 6800
indica un arrastre de BJ a B 4 , en el acumulador, durante una operación de suma. El señalizador H
se pone a 1 si hay un arrastre de BJ a B4 y a O en el caso contrario.
Los dos bits más significativos del registro de códigos de condición mostrado en la Figura lOA
no se utilizan como señalizadores. Siempre se ponen a 1 en el microprocesador 6800.
Unidad aritmético-lógica
La unidad aritmético-lógica (ALU) debe ser considerada el corazón del microprocesador
6800. Realiza todas las operaciones aritméticas y lógicas. Los resultados de estas operaciones son
www.FreeLibros.me
..
..
......__________________________________
~
....
~
..
'r'i ~I~~J:
~7.;.7"7.q¡
__
ltf~...,
.,
356
FUNDAMENTOS DE LOS MICROPROCESADORES
:j
almacenados en uno de los acumuladores. La ALU realiza operaciones como sumar, restar,
comparar, AND, OR Y XOR.
Decodificador de instrucciones
El decodificador de instrucciones representado en la Figura 10.3 interpreta las entradas del
registro de instrucciones. Basándose en estas entradas, el decodificador de instrucciones dirige a la
sección de control para que ejecute la instrucción actual.
Reloj del sistema
Considerar
ejecutar una in
op, (2) decodif
para la instruo
Figura 1O.7b. I
instrucción. D
círculos de la f
realizando la e
1. En la
El microprocesador 6800 requiere un reloj de dos fases sin solapamiento. La circuitería del
reloj está localizada fuera de la pastilla 6800 y alimenta las patillas de entrada 01 y 02 mostra­
das en la Figura 10.3. El reloj sincroniza las operaciones internas del microprocesador. También
sincroniza los dispositivos externos. Las formas de onda se muestran en la Figura 10.7. En la
Figura 10.7 a se identifica un ciclo de reloj. La duración del ciclo puede variar de l a 10 I-ls para el
microprocesador estándar 6800. El ciclo de reloj no puede ser ralentizado a menos de 10 Jls por
ciclo. Si opera muy lentamente, algunos de los registros internos dinámicos pueden perder sus
datos. Observar en la Figura 10.7 a que cuando la fase 1 (01) está en ALTA, la fase 2 (02) está
siempre en BAJA. Lo opuesto también es cierto.
2.
3.
4.
I~lciclO~
~s
I
Fase 1 (01)
--.J'
\
es típico)
.
Y
5.
1
contOO
nivel A
direccic
en un (
En la t
cambia
el regís
En la I
el céIdÍI
datos.
En la t:l
transfie
procesa
inmedi
fue leid
En la t
con~
Fase 2 (02) \ ' - -_ _---'/
(a)
\_-_/
'---­
Formas de onda de dos fases de reloj sin solapamiento ..
6.
7.
En la t:l
En la t
operaDI
8.
En la U
transfic:
Los ocho piI
.1or estándar 6
~SOO mientras
:ontrolar apeo
Reloj 01
Reloj 02
IlIIt!mqcio~
1+----.- primer ciclo----I"...I - - t - - - segundo ciclo --....:,.--.
(b)
Temporización de la instrucción «cargar inmediato acumulador Alt
El micropr
ción. interru¡x
única instrucc:
Cuando la
BAJO durante
S«Uencia espe
Figura 10.7.
www.FreeLibros.me
El señalizador
-¡
¡'
•
'1)
'"
EL MICROPROCESADOR MOTOROLA 6800
:tar,
del
ala
del
itra­
:>ién
n la
ra el
por
. sus
está
~
357
Considerar el diagrama de tiempos de una instrucción cuando se utiliza la MPU 6800. Para
ejecutar una instrucción, cualquier microprocesador realiza tres pasos: (1) búsqueda del código de
op, (2) decodificación y (3) ejecución de la instrucción. El ejemplo esbozado en la Figura 1O.7b es
para la instrucción «cargar el acumulador A inmediato». Durante el primer ciclo mostrado en la
Figura 10.7 b, la MPU 6800 realizará la búsqueda del código de op y la decodificación de la
instrucción. Durante el segundo ciclo, se ejecutará la instrucción. Los números inscritos en los
círculos de la Figura 10.7 b permiten que se siga la secuencia de eventos cuando la MPU 6800 está
realizando la operación cargar el acumulador A inmediato.
1.
2.
3.
4.
S.
6.
7.
8.
En la transición L a H (ALTA a BAJA) del reloj .01, la dirección es transferida del
contador de programa al bus de direcciones. Las patillas VMA y RjW del 6800 van al
nivel ALTO. Una línea VMA en ALTA indica, a la memoria, que la dirección del bus de
direcciones es válida. Una línea RjW ALTA señala a la memoria que el procesador está
en un ciclo de lectura.
'
En la transición H a L del reloj .01, se incrementará el contador de programa. Este no
cambiará la dirección actualmente sobre el bus de direcciones porque está almacenada en
el registro de direcciones de memoria .
En la transición L a H del reloj .02, la MPU 6800 indica a la memoria que coloque
el código de op para la instrucción de «cargar inmediato el acumulador A» en el bus de
datos.
En la transición H a L del reloj .02, la MPU acepta el código de op del bus de datos, lo
transfiere al registro de instrucciones y decodifica la instrucción. Una vez decodificada, el
procesador determina que durante el segundo ciclo se ejecute la instrucción de «cargar
inmediato el acumulador A». Durante el primer ciclo de la MPU el código de operación
fue leído de memoria (buscado) y decodificado.
En la transición L a H del reloj 01, la dirección del operando es transferida desde el
contador de programa al registro de direcciones de memoria y al bus de direcciones.
En la transición H a L del reloj 01, se incrementa el contador de programa.
En la transición L a H del reloj 02, el procesador indica a la memoria que coloque el
operando (dato a ser cargado en el acumulador A) en el bus de datos.
En la transición Ha L del reloj 02,Ia MPU 6800 acepta el operando del bus de datos y lo
transfiere al acumulador A.
Los ocho pasos anteriores se realizan normalmente en 2 IlS cuando se utiliza un microprocesa­
dor estándar 6800. Observar que los eventos que ocurren durante el reloj 01 están en la MPU
6800 mientras que el reloj .02 está aplicado a dispositivos externos. El reloj .02 se utiliza para
controlar operaciones de memoria en este ejemplo.
Interrupciones
El microprocesador 6800 tiene tres tipos de interrupciones hardware. Son las de reinicializa­
ción, interrupción no enmascarable y petición de interrupción. La MPU 6800 también tiene una
única instrucción de interrupción software (SWI).
Cuando la patilla de interrupción REINlCIALlZACION en la MPU del 6800 está en el nivel
BAJO durante un tiempo y después va al nivel ALTO, el procesador salta automáticamente a una
secuencia especial de interrupción de reinicialización. Esta secuencia se detalla en la Figura 10.8a.
El señalizador de la máscara de interrupción ([) se pone primero al, Y después el contador de
www.FreeLibros.me
il a
358
RJNDAMENTOS DE LOS MICROPROCESADORES
MPU
6800
r ­_
- - - , Pulso
~
-
40
RElNIClALlZAClON'
baJo
Pone sttlalizador de mticara
de inlemlpcÍón (1) • I
Carga by!< de
oroen superior
del contador de programa
con el conlt'nido de FFFEH
Secuencia de
interrupción de
reinicialización
Carga byte de orden inferior
del contador oc programa
con el ronlenido de FfFFH
Ciclo busca­
decodífica-ejecuta
(a)
Secuencia de la ¡ntenupción reinicialización
.-,.,,
....
/mi
MPU
6800
No
Pila
.
'~
SP-7
Introduce íPUSHl
Sp.¡,
registros en pi1a
SP-j
Secuencia de
SP-4
I\cumulador .4
SP-3
IX (superior)
SP-2
IX (mferior)
SP-I
pc ,superior)
SP-I
pe (inferior)
interrupción no
enmascarable
Pone seflalizador de
máscara de intcrrupciún
(1) al
Carga by!< de oroen
superínr del contador de
p(~rama con el
l'ODlenido de FFFCH
Carga l»1e de onden
inferior del contador de
programa
Estas dos
reiniciafu:
Pl"OSram<l con el
contenido de FFFDH
Ciclo de
r
mnicialix
busca~
de(xxiifica-ejecuta
(bj
res de me'
Secuencia de interrupción no enmascarable
La_
1'31O.8b. í
1t!CUe1ICia
Figura 10.8.
www.FreeLibros.me
f
n'
EL MICROPROCESADOR MOTOR OLA 6800
359
Pila
~>cuenda de
petIción de
Interrupción
,
Ciclo de busca­
decodifica-ejecuta
{t'J
Secuencia de petición de interrupción
Figura 10.8.
(continuación).
wograma se carga con la dirección contenida en las posiciones de memoria FFFEH y FFFFH.
4.S dos posiciones de memoria están reservadas para el vector de reinicialización. El vector de
l'Onicialización no es nada más que una dirección del programa que dará servicio a la entrada de
-'~icialización. Es típico en la MPU 6800 que la ROM esté localizada en las direcciones superio·
_; je memoria, mientras que la RAM habitualmente empieza en la dirección OOOOH.
La entrada de interrupción no enmascarable (NMI) a la MPU 6800 está activada en la Figu·
1:1 1O.8b. Cuando la patilla NMI de la MPU 6800 va al nivel BAJO, el procesador salta a la
,J'.'1Ii/!fICia de interrupción no enmascarable mostrada a la derecha de la Figura 1O.8b. La instruc­
www.FreeLibros.me
"
'
p
360
d,
I
.~
¡~
r
~.
,
~
,
,~
~c
:!
-
'\.."
~j'
té
FUNDAMENTOS DE LOS MICROPROCESADORES
ción actual se completa, el contenido de los registros del 6800 se guarda en la pila, el señalizador 1
se pone al, Y el vector de interrupción no enmascarable busca en las posiciones de memoria
FFFCH y FFFDH. La MPU entonces saltará a la rutina de servicio de interrupción no enmasca­
rable.
La entrada de petición de interrupción (11[Q) a la MPU 6800 está activada en la Figura 10.8c.
Cuando la patilla IRQ de la MPU 6800 va al nivel BAJO, el procesador salta a la secuencia de
petición de interrupción detallada a la derecha de la Figura 10.8e. Se completa la instrucción
actual y se comprueba el señalizador l. Si éste está al, el procesador ignora la petición de
interrupción y continúa con el programa regular; la entrada de petición de interrupción es enmas­
carable y, por tanto, tiene una prioridad inferior que la de las entradas REINlCIALIZACION o
NMI. Si el señalizador I hubiese estado a O, el procesador introduciría, a continuación, el conteni­
do de los registros en la pila en el orden mostrado en la Figura 1O.8e. El siguiente paso en la
secuencia de interrupción sería poner a l el señalizador l. A continuación el contador de progra­
ma se cargaría con el vector de petición de interrupción localizado en las posiciones de memoria
FFF8H y FFF9H. El procesador saltaría entonces a la dirección de la rutina de servicio de
petición de interrupción.
Las asignaciones de memoria del vector de interrupción en todos los sistemas basados en el
6800 se muestran en la Figura 10.9. Estas son posiciones reservadas de memoria cuyos conteni­
dos son las direcciones donde comienzan las distintas rutinas de servicio de interrupción.
Las instrucciones SWI y asociadas del microprocesador 6800 se cubrirán en una sección pos­
terior.
t
"
~ -''''-1_-­
Contenido
FFF8
Byte superior
FFF9
Byte inferior
FFFA
Byte superior
FFFB
Byte inferior
FFFC
Byte superior
FFFD
Byte inferior
FFFE
Byte superior
FFFF
Byte inferior
Figura 10.9.
......
....12.
ROM
Dirección
....
.JI_
l
l
ll
...
Vecto, de petición de interrupción (di<e«:ión)
Vector de interrupción software (dirección)
Vector de interrupción no enmascarable (dirección)
V...., de re;n;c;al;"",ión (mn:cción)
Posiciones de memoria del vector de interrupción en los sistemas
basados en el 6800.
www.FreeLibros.me
i,'
~
•
EL MICROPROCESADOR MOTOROLA 6800
alizador 1
de memoria
DO enmasca­
PROBLEMAS RESUELTOS
10.9.
!:¡gura IO.Sc.
'Secuencia de
instrucción
petición de
;n esenmas-
,.t4;
La MPU 6800 tiene acumulador(es) de _ _ (número) 8 bits, un contador de progra­
made 16 bits, un puntero de pila de _ _ (número) bits, un registro _ _ de 16 bits,
un registro de instrucción y un registro ___ que contiene seis señalizadores.
Solución:
De acuerdo con la Figura 10.3, la MPU 6800 tiene dos acumuladores de 8 bits, un contador
de programa de 16 bits, un puntero de pila de 16 bits, un registro índice de 16 bits, un registro de
instrucción y un registro de códigos de condición que contiene seis seftalizadores.
IZACIONo
l.
361
el conteni­
10.10.
: paso en la
de progra­
de memoria
servicio de
Ir
La MPU 6800 tiene un bus de direcciones con buffers de tres estados de _ _'_ (núme­
ro) bits y un bus de _ _ de buffers de tres estados de 8 bits.
Solución:
De acuerdo con la Figura 10.3, la MPU 6800 tiene un bus de direcciones de bufTers de tres
estados de 16 bits y un bus de datos con bufTers de tres estados de 8 bits.
asados en el
10.11.
yos conteni­
lCión.
El registro de códigos de condición del 6800 contiene seis señalizadores. Listados.
Solución:
De acuerdo con la Figura tO.4, el registro de códigos de condición del 6800 contiene; seftaliza­
dor de semiarrastre (H), señalizador de máscara de interrupción (/), señalizador negativo (N),
señalizador de cero (Z), señalizador de «overflow» (rebose) de complemento a 2 (V) Y señalizador
de arrastre/préstamo (C).
sección pos­
10.12.
Acudir a la Figura 10.10. El contenido del acumulador A después de la operación de
suma es _ _ (8 bits).
Solución:
Sumar los números en complemento a 2 0100001 t + lOOOOOt 1 - 10000011. El contenido del
acumulador A después de la operación de suma es 10000011.
.)
10.13.
Acudir a la Figura 10.10. El señalizador de overflow (V) está a _ _ (O, 1) después de
la operación de suma.
..
lCCÍón)
Complemento
a2
a2
Acumulador A
) ii .
?
Acumulador A
Después de la operaddn
Acumulador B
s
"-r­
m
Complemento
"
/
POSltlVO
Registro de códigos de condición
v
Complemento
a2
Figura 10.10.
www.FreeLibros.me
't
­
s;;at4
362
FUNDAMENTOS DE LOS MICROPROCESADORES
Solución:
Al sumar los números en complemento a 2 01000011 + 01000000 - 10000011 (decimal +67
más +64 = + 131). El señalizador V se pone al, indicando que un overflow en complemento a 2
ha provocado un error de rango. La «suma» del acumulador después de la operación de suma por
tanto no es la suma correcta en complemento a 2.
.1
..
10.14.
Acudir a la Figura 10.11. El contenido del acumulador A después de la operación de
resta es _ _ (binario).
Solución:
Al restar en binario 00001111 - 00000001 - 00001110 (decimal 15 - 1 - 14). El contenido
del acumulador A después de la operación de resta es 0000 11102,
10.15.
Acudir a la Figura 10.11. El señalizador Z está a _ _ (O, 1) después de la operación
de resta.
Solución:
Al restar en binario 0000 1111 - 00000oo 1 = 0000 1110. El señalizador Z está a Odespués de la
operación de resta en la Figura 10.11 porque la diferencia no es cero.
Acumulador A
•.19..
Acumulador A
Después de la operación
Acumulador B
Registro de códigos de condición
Figura 10.11.
'"
10.16.
Acudir a la Figura 10.11. El señalizador
de resta.
e está a _ _ (O,
..l
1) después de la operación
Solución:
Debido a que no existen préstamos, el señalizador e está a O despUés de la operación de resta
de la Figura 10.11. El señalizador de reinicialización indica que el número del acumulador A es
mayor que el número del acumulador B.
e
10.17.
Acudir a la Figura 10.12. El contenido del acumulador despuéS de la operación de suma
es _ _ (8 bits).
Solución:
Sumar 10001001 + 10001001 .;. 1 0001 0010 2, El contenido del acumulador después de la
operación de suma de la Figura 10.12 es 00010010.
10.18.
Acudir a la Figura 10.12. El señalizador H está a _ _ (O, 1) despuéS de la operación
de suma.
www.FreeLibros.me
...11.
•
t
EL MICROPROCESADOR MOTOROLA 6800
lecimal +67
lemento a 2
le suma por
'"m"lodo< A
I!I'3ción de
Acumulador B
~ .-::;-__.....
363
Acumulador A
?
Antes de la operación
Después de la operación
11000 1001 1
Registro de códigos de condición
H
z
e
Figura 10.12.
1 contenido
~.>
Solución:
Al sumar loooiool + 10001001 - t 0001 0010. El seilalizador H se pone a 1 después de la
operación de suma de la Figura 10.12 porque había un arrastre de la posición B3 a la B4 del acu­
mulador.
operación
~~uésdela
10.19.
Acudir a la Figura 10:-12. El señalizador Z está a _ _ (O, 1) después de la operación
de suma, mientras que el señalizador e está a ___ (O, 1).
-,
Solución:
Sumar 1000100 1 + 1000 1001 = l 000 l 00 10. El señalizador Z está a O, mientras que el señali­
zador e está a l después de la operación de suma de la Figura 10.12.
10.20.
Durante el ciclo de búsqueda del microprocesador, se recupera un código de op de
memoria, vía el bus de datos y se deposita en el registro _ _ del 6800. El código de
op es entonces traducido por el ______ del 6800, que indica a la sección de
control que ejecute la instrucción.
condición
-!.¡- .
operación
10.21.
Ión de resta
IUlador A es
10.22.
spués de la
I
operación
La MPU 6800 utiliza un reloj de _ _ -fases _ _ (sin solapamiento, con solapa-/
miento). Generalmente, la fase 1 del reloj sincroniza las operaciones ___ (internas,
.¡ externas) del procesador, mientras que los pulsos del reloj 02 sincronizan los dispositi­
vos externos y operaciones internas.
Solución:
Acudir a la Figura 10.7. La MPU 6800 utiliza un reloj sin solapamiento de dos fases. General­
mente, la fase l del reloj sincroniza las operaciones internas del procesador, mientras que los
pulsos del reloj 02 sincronizan las operaciones internas y los dispositivos externos.
m de suma
~
Solución:
Acudir a la Figura 10.3. Durante el ciclo de búsqueda del microprocesador, se recupera un
código de op de memoria, vía el bus de datos y se deposita en el registro de instrucciones del 6800.
El código de operación es entonces traducido por el decodificador de instrucciones del 6800, que
indica a la sección de control que ejecute la instrucción.
1'),
Acudir a la Figura 10.13. El señalizador de la máscara de interrupción (1) estará
a ___ (O, 1) después de la secuencia de la interrupción reinicialización mostrada en
este ejemplo.
Solución:
Según la información de la Figura IO.8a, el señalizador de la máscara de interrupción (1) de la
Figura 10.13 estará a l despuéS de la secuencia de la interrupción reinicialización.
www.FreeLibros.me
"
364
FUNDAMENTOS DE LOS MICROPROCESADORES
REINICIA.
L/7.ACION
MPU
6800
Registro de códigos
de condición
,
Antes de la secaeada
.
Después de la secuencia
ROM
..
t
, - - - ' - - - - - - . . , Contador de
?
programa
¡
*,A
Figura 10.13.
........
41
10.23.
I
Solución:
Según la informaciÓn de la Figura 10.8a, el contenido del contador de programa después de la
secuencia de la interrupción reinicialización de la Figura 10.13 será FCOOH. Esta es la dirección
de comienzo de la rutina de servicio de reinicialización.
j
J
O­
Acudir a la Figura 10.13. El contenido del contador de programa después de la secuen­
cia de la interrupción reinicialización será ___ (hex). Esta es la dirección de comien­
zo de la rutina de ______ .
10.24.
......
~
Acudir a la Figura lO.! 4. Listar el contenido de la pila después de la secuencia de
interrupción no enmascarable mostrada en este ejemplo.
1
Solución:
Acudir al procedimiento mostrado en la Figura 1O.8b. El contenido de la pila de la Figu­
ra 10.14 después de la secuencia de interrupción no enmascarable es el siguiente:
Posición de pila (hex)
OIF9
OIFA
OIFB
, i ..
OIFE
10000000
OOOOOOOO
00000001
OOOOOOOO
OIFF
00010000
OIFC
OIFD
10.25.
11001000
11110000
.~
Je.2i.'
Conteni3o
(Registro de códigos de condición)
(Acumulador B)
(Acumulador A)
(Registro índice - byte superior)
(Registro índice - byte inferior)
(Contador de programa - byte superior)
(Contador de programa - byte inferior)
1
, AJI
1
4
11.27.
.sil
Acudir a la Figura 10.14. El señalizador 1 estará a _'_ (O, 1) después de la secuencia
de interrupción no enmascarable mostrada en este ejemplo.
"
Solución:
Acudir a la Figura 1O.8b. El señalizador I estará a 1 despuéS de la secuencia de interrupción no
enmascarable mostrada en la Figura 10.14.
~
...~
t
www.FreeLibros.me
t
,. ts
365
EL MICROPROCESADOR MOTOROLA 6800
Pila
de códigos
ición
~_6
NM/
bajo
J
MPU
6800
•
secuencia
Contador de
programa
la secuen­
le comien­
Registro índice
Contador de
programa
ROM
?
OIFB
?
OIFC
?
OIFU
?
OIFE
?
OIFF
Registro de códigos
de condición
............L_ _ _ _ _...,
{)(}{)(} {)(}{)(} {)(}{)(} 1111
~j
?
Contador de
programa
OOH
FUH
"'~"
Puntero de pila
Lciade
OIFFH
~-------------~
.
1·
. , ....
Figura 10.14.
de la Fígu­
10.26.
~ón)
Acudir a la Figura 1O.8b. El contenido del contador de programa después de la secuencia de
interrupción no enmascarable de la Figura 10.14 será OOFDH. Esta es la dirección de una rutina
de servicio de la interrupción no enmascarable.
r)
superior)
inferior)
Acudir a la Figura 10.14. El contenido del contador de protrama después de la secuen­
cia de interrupción no enmascarable será ____ (hex).
Solución:
Id
~
OIFA
;-------~
le$pués de la
la dirección
~
OlF9
?
Después de la secuencia
Antes de la secuencia
Registro de códigos
de condición
Acumulador B
?
10.27.
Acudir a la Figura 10.15. El señaJizador de petición de interrupción (1) está a _ _
(O, 1) antes de la secuencia de petición de interrupción.
a secuencia
Solución:
~
Acudir a la Figura lOA para las posiciones del señalizador en el CCR. El CCR contiene
11001000 antes de la secuencia mostrada en la Figura 10.15. Esto significa que el señalizador de
petición de interrupción (/) está a O antes de la secuencia de petición de interrupción. Esto tendrá
el efecto de permitir las entradas IRQ que sean aceptadas por la MPU 6800 .
mupción no
www.FreeLibros.me
•
'1
................
.~
------~------------~
...~
FUNDAMENTOS DE LOS MICROPROCESADORES
366
10.29.
Pila
~_ 4
?
0lF9
?
OIFA
?
OIFB
?
OIFC
MPU
?
OIFD
6800
?
OIFE'
?
OIFF
IRQ
bajo
Después de la secuencia
Antes de la secuencia
Registro de códigos
de condi ción
Acumulador B
Registro índice
Contador de
programa
I
I
Registro de códigos
de condición
1100 1000
I
11110000
10000000
Acumulador A
11.31.
?
1-­ _ _ _ _ _ _--'
10.4.
Contador de
programa
0000 0000 0000 000 I
0000 0000 000 I 0000
1.
ROM
Puntero de pila
2.
l~í-~--8~~--~--:--~
3.
4.
5.
OIFFH
I----------------~
Düwd
Figura 10.15.
M..
trucciOt
cid pro
prOCdl
/
L
10.28.
Acudir a la Figura 10.15. Listar el contenido de la pila aespués de la secuencia de
petición de interrupción.
(poIIm.
Del
I
inheret
10 de
Solución:
Acudir a la Figura 10.Se. El contenido de la pila de la Figura 10.15 después de la secuencia de
petición de interrupción es el siguiente:
Posición de pila (hex)
0lF9
OIFA
OIFB
OIFC
OIFO
OIFE
OIFF
11001000
11110000
10000000
OOOOOOOO
00000001
OOOOOOOO
00010000
Contenido
I"f '
(Registro de códigos de condición) ., ~
(Acumulador B)
(Acumulador A)
(Registro índice - byte superior)
(Registro índice - byte inferior)
(Contador de programa - byte superior)
(Contador de programa - byte inferior)
www.FreeLibros.me
Dire«i
11m
DDt!i
loca.I.iz;;
,
Lai
Cllecjl
86H el
de!a il
~-
-
~~
•
EL MICROPROCESADOR MOTOROLA 6800
10.29.
Acudir a la Figura 10. I 5. El señalizador 1 estará a _._
de petición de interrupción mostrada en este ejemplo.
361
(O, 1) después de la secuencia
Solución:
Acudir a la Figura 1O.8e. El señalizador 1 estará a 1 después de la secuencia de petición de
interrupción de la Figura 10.1 S.
10.30.
Acudir a la Figura 10.15. El contenido del contador de programa después de la secuen­
cia de petición de interrupción será _ _ (hex). Esta es la dirección de la ruti­
na _ _ _ _ _ _ .
Solución:
:le códigos
:ión
~tadorde
,
'~,ill,.
Acudir a la Figura IO.Se. El contenido del contador de programa después de la secuencia de '
petición de interrupción en la Figura 10.1 S será OOF7H. Esta es la dirección de la rutina de
servicio de petición de interrupción.
,;;
10.4. MODOS DE DIRECCIONAMIENTO
wograma
Los modos de direccionamiento utilizados por el microprocesador Motorola 6800 son:
l.
Inherente (implícito).
2. Inmediato.
3. Directo y extendido.
4. Indexado.
5. Relativo.
Direccionamiento inherente
:uencia de
Muchas instrucciones del microprocesador 6800 utilizan direccionamiento inh(!rente. Las ins­
trucciones inherentes se utilizan cuando no es necesario buscar ningún operando en el exterior
del procesador. A este tipo de direccionamiento se denominó direccionamiento implfcito en los
procesadores 8080;8085 y genérico. Las operaciones inherentes, o implícitas, son siempre instruc­
ciones de l byte. Algunos ejemplos de instrucciones inherentes, o implícitas, son la de borrar
(poner a cero), incrementar y decrementar los acumuladores.
Determinadas informaciones sobre la MPU 6800 de Motorola l1lencionan el direccionamien­
to de los acumuladores, que puede considerarse como un caso especial de direccionamiento
inherente para los propósitos de este capítulo.
ieCuencia de
Direccionamiento inmediato
:ión)
)r)
r)
~
superior)
e inferior)
Igual que los procesadores genérico y 8080;8085, la MPU 6800 tiene instrucciones que utili­
zan el modo de direccionamiento inmediato. En las instrucciones inmediatas, el operando está
localizado inmediatamente despuéS del código de op en la memoria de programa.
La instrucción «cargar el acumulador A inmediato» se está ejecutando en la Figura 10.16a. En
este ejemplo, el código de op del 6800 para la instrucción «cargar acumulador A inmediato» es
86H en la Figura 1O.16a. El dato a ser cargado (llllllll en este ejemplo) es el segundo byte
de la instrucción en la memoria de programa. El dato inmediato es entonces cargado en el acu­
mulador A.
www.FreeLibros.me
. .~;;:,
2
~
...
__ -o:;
FUNDAMENTOS DE' LOS MJCROPR~ADORES
368
...
Acumulador A
Acumulador A
Después de la operaciÓD
Antes de la operación
j.
Código de
operación
86H
Memoria de programa
Dato inmediato
(a)
.,I.
-'~
;~
.·•
f
Puntero de pila
Instrucción de 2 bytes con direccionamiento in"mediaio
I
. . .__----....1
,
i
Puntero de pila
?:­
Despufs de la operadón
Antes de la operaciÓD
Código de
operación
Momo'"
do_/CU
8EH
00000011
Byte superior
1111 1111
BY'0 ;nfori"
it!ii'
}
~f:~
Dato inmediato
.•.. -.
.,"
':~..J
-­
-­
3:po5Í
(b)
Instrucción de 3 bytes con direccionamiento inmediato
Figura 10.16.
La mayolÍa de las operaciones inmediatas del 6800 son instrucciones de 2 bytes. Sin embargo,
algunas son instrucciones de 3 bytes. Un ejemplo de una instrucción inmediata de 3 bytes se
muestra en la Figura l 0.16b. En este ejemplo, se está ejecutando la instrucción «cargar el puntero
de pila inmediato>~. Observar Que el segundo byte de la instrucción es el byte superior (00000011
en este ejemplo), mientras Que el tercer byte es el byte inferior (11111111 en este caso).
t
Direccionamiento directo y extendido
Las operaciones Que usan direccionamiento directo en la MPU 6800 se especifican mediante
formatos de instrucción de 2 bytes. Este formato está representado en la Figura 10.17a. El byte 1
,
",
contiene el código de op para la instrucción de direccionamiento directo. El byte 2 contiene la
dirección del operando. Debido a Que la dirección es solamente de 8 bits, el rango de direcciones
disponibles está limitado a las 256 10 primeras posiciones de memoria. El direccionamiento directo
'i, _:
t
...
"
.......
~1..iL
,­
www.FreeLibros.me
CI
16 bit
~
B
d:ura
fOrm¡
mstru
CUIIta
U
mla
Eldil
din:a
índia
d:im:c
cjeIDt
EL MICROPROCESADOR MOTOROLA 6800
Memoria de programa
369
Código de operación
Código de operación
Dirección del operando
Dirección del operando
(byte de orden superior
Memoria de programa
Dirección del operando
(byte de orden inferior
(a)
Formato de instrucción para el direccionamiento
directo del 6800
(b)
Formato de instrucción p¡u:a el direccionamiento
extendido del 6800
Figura 10.1 7.
mtero de pita
, {\ ,~-
Direcciontlmiento indexado
;in embargo,
le 3 bytes se
Ir el puntero
"' (000000 11
aso).
~
de Motorola es sitnilar al direccionamiento de página base o de página cero en otros procesadores
(como el 6502).
Las operaciones que utilizan el direccionamiento extendido en la MPU 6800 se especifican
mediante instrucciones cuyo formato es de 3 bytes. Este es el mismo que el empleado en el
direccionamiento directo en los microprocesadores genérico, 8080 y 8085. El formato de instruc­
ción del 6800 para el direccionamiento extendido está representado en la Figura 10.17 b. El byte l
contiene el código de op para la instrucción de direccionamiento extendido. El byte 2 contiene el
byte de orden superior de la dirección del operando. El byte 3 contiene el byte de orden inferior
de la dirección del operando. Con el direccionamiento extendido, puede direccionarse el rango
completo de 65.536 10 posiciones de memoria.
Un ejemplo de direccionamiento directo utilizando la MPU 6800 se detalla expresamente en
la Figura 10.18a. La instrucción «carga el acumulador A directo» está ejecutándose en este ejem­
plo. El segundo byte del programa (11110000 en este ejemplo) es la dirección del operando. El
operando (00000100 en este ejemplo) es buscado entonces en la posición de memoria OOFOH y
depositado en el acumulador A.
Un ejemplo de direccionamiento extendido se muestra en la Figura 10. 18b. El segundo y
tercer bytes de la instrucción en la memoria del programa son ensamblados en una dirección de
16 bits (00000001 0000 0000 en este ejemplo). El contenido de esta dirección se busca en la
memoria de datos y se deposita en el acumulador A.
­
:an mediante
.7a. El byte 1
2 contiene la
le direcciones
liento directo
El microprocesador 6800 contiene un registro índice de 16 bits (IX) que se utiliza en el
direccionamiento indexado. El modo indexado requiere el uso de una instrucción de 2 bytes cuyo
formato se muestra en la Figura 10.19a. El primer byte contiene el código de op habitual para la
instrucción indexada y el segundo byte contiene el desplazamiento. El desplazamiento se suma al
contenido del registro índice para determinar la dirección del operando.
Un ejemplo de una instrucción que utiliza el modo de direccionamiento indexado se detalla
en la Figura 10.19b, donde se está ejecutando la instrucción «carga el acumulador A indexado».
El direccionamiento indexado es como el direccionamiento extendido, ya que se genera una
dirección de 16 bits. La dirección del operando se genera sumando el contenido del registro
índice (IX) de 16 bits al desplazamiento localizado en la memoria de programa. Esta nueva
dirección (0030H en este ejemplo) es la posición del operando. El operando (11110000 en este
ejemplo) se carga entonces en el acumulador A.
www.FreeLibros.me
#:2
--,~
rr
&
370
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador A'
Acumulador A
Aates de la operación
Memoria de datos
(OOFOH)
Después de la operación
0000 0100
Códigode
!
~,
1~::I·~:.n·:_
\
f'
Direccionamiento directo
(a)
Acumulador A
Acumulador A
DesPUH de la operaci6n
Memoria de datos
(OIOOH)
o;",ció, '" 16 bi"
L
",,;_~
operación
roooo0001 00000000'::.1
1.:_
:dl­
Código de
B6H
- - ____
BYTE SUPERIOR
::----¡
00000001
0000 0000
(b)
Memoria de programa
DirecciOnamiento extendido
~
Figura 10.18.
nq,ati'
VI!
U'3 en
El valor del desplazamiento recuperado del segundo byte de la instrucción puede ser cualquier
número sin signo comprendido entre OOH y FFH (0-255 10),
Direccionamiento relativo
El modo de direccionamiento relativo se utiliza en la mayoría de las instrucciones de bifurca­
ción en el microprocesador 6800. El formato de las instrucciones de direccionamiento relativo se
muestra en la Figura 1O.20a. El primer byte de la instrucción es el código de op. El segundo byte
de la instrucción se denomina desplazamiento. el cual se interpreta como un número de 7 bits con
,1
www.FreeLibros.me
.
-
.lli
,,_lit
."
;:~"'"J'_._
_.,~
1
5ÍgrtO.
1~.
__
~
~~(
uJadorA
EL MICROPROCESAOOR MOTOROLA 6800
Código de operación
Memoria de programa
Acumulador A
bifurca­
lativo se
Ido byte
'bits con
Acumulador A
Después de la operación
Memoria de datos
(OO30H)
Di_ó.
~~1~ ,,~ L__ "
~~~.!..!~Códigode
1
.....ci6n
~'
Desplazamiento
(a) Formato de instrucción para el direccionamiento indexado
1:
ualquier
,
371
operación
. '!
IX + Desplazamiento
Memoria de programa
Desplazamiento
0000 0000 00 10 0000
Registro índice (IX)
;:,..
(b)
Direccionamiento indexado
Figura 10.19.
signo. Si el MSB del desplazamiento es O, el número es positivo, y esto significa que se va a
ejecutar una bifurcación o salto hacia adelante. Si el MSB del desplazamiento es 1, el número es
negativo, lo que significa que se va a ejecutar una bifurcación o salto hacia atrás.
Un ejemplo de salto hacia adelante utilizando el direccionamiento relativo del 6800 se mues­
tra en la Figura 1O.20b. El contador de programa (pe) antes de la operación contiene 0009H. El
código de op para la instrucción «bifurca siempre de forma relativa» (20H) es buscado en la
posición 0009H de la memoria de programa. El contador de programa es incrementado a
OOOAH, y se busca el desplazamiento (00000100). El contador de programa se incrementa a la
dirección de la siguiente instrucción (OOOBH) justo antes de buscar el operando real. El procesa­
dor 6800 suma internamente el desplazamiento (04H) al contenido del contador de programa
después de la operación «bifurca siempre de forma relativa» será entonces OOOB + 04 - OOOFH
(00000000 0000 1111 J El procesador entonces saltará a esta nueva dirección y buscará una
instrucción en la posición OOOFH. Observar que el MSB del desplazamiento es O. Esto significa
que un desplazamiento positivo, realizará un salto o bifurcación hacia adelante.
www.FreeLibros.me
.
.
'~'---~"'--.~-"
I
J
372
~
j
RJNDAMENTOS DE LOS MICROPROCESADORES
.1
..¡
Segundo, •
Código de operación
Memoria de programa
(a)
Desplazamiento
Formato de instrucción para direccionamiento relativo
Antes de la operaciÓD
,"
Contador r - - - - - - - - .
de programa 0000 0000 0000 1001
(pe¡
,
,
t:'
~
.
'
La nueva
la nueva e
relatiVa».
, . . . - - - - - - - - , Contador
' - -_ _ _ _ _ _..1 de programa
Memoria ,...---.,..---=-----,
de programa f - - - - - f - - - - - \ . ' "
.
Desplazamiento
11.31.
(h)
~i
Figura 1 0.20.
f'
,'
".~~
•
..,.-;.-'
,,
Un ejemplo de salto hacia atrás utilizando direccionamiento relativo se ilustra en la figu­
ra 10.21. El contador de programa (PC) antes de la operación contiene OOIOH. El código de op
para la instrucción «bifurcar siempre de forma relativa» es 20H y está en la posición OOIOH de la
memoria de programa. El desplazamiento de la posición 00 l EH de la memoria del programa es
el número en complemento a 2 111110 10 (-06H). El desplazamiento negativo significa que la
bifurcación será hacia atrás. La dirección de destino de la operación «bifurca siempre de forma
relativa» se calcula en dos pasos. Primero, suma +2 al contador de programa.
PC
+
+2
00000000 0001 1101
0010
0000 0000 0001 1111
:
oolm
-~
~nuaria •
Contador de
programa
po. . . .
Memoria de
programa f - - - - - f - - - - - f . ' "
,
Desplazamiento
Figura 1 0.21.
Direccionamiento relativo; salto hacia atrás.
www.FreeLibros.me
"--­
a
OOIOH
2H
.-----=----..,
Contador de r-OOOO--OO-OO-OOO-I-I-I-O• ...,
programa
¡
+
A
10.32.
Después de la operaclóo,
Antes de la opeI"IIclón
;:
(
i
Direccionamiento relativo; salto hacia adelante
,
• .33.
..,
. i
1M
es
EL MICROPROCESADOR. MOTOROLA 6800
373
Segundo, suma el desplazamiento a la suma parcial.
PC+2
Desplazamiento
+
00 lFH
+
FAH
0000 0000 000 1 1111
11111010
0000
00
19H
descarta el arrastre del byte más significativo
Contador
de programa
La nueva dirección es entonces 0019H. El contador de programa de la Figura 10.21 contiene
la nueva dirección 0000 0000 000 1 1001 2 después de la operación «bifurca siempre de fonna
relatiVa».
PROBLEMAS RESUELTOS
10.31.
Cuando todos los operandos están localizados en el microprocesador 6800, se utilizan
instrucciones que utilizan el modo de direccionamiento implícito o ___ . Estas ope­
raciones se especifican utilizando instrucciones de _ _ (número) byte(s).
Solución:
Cuando todos los operandos están localizados en el microprocesador 6800, se utilizan instruc­
ciones que utilizan el modo de direccionamiento implícito o inherente. Estas operaciones se
especifican utilizando instrucciones de 1 byte.
en la Figu­
:()digo de op
XnDH de la
programa es
nífica que la
IR de fonna
l
10.32.
Acudir a la Figura 10.22. Después de la operación «cargar registro índice inmediato», el
registro índice contendrá _ _ (hex).
Solución:
Acudir al problema ejemplo de la Figura 10.16b. Después de la operación «cargar registro
(ndice inmediato» de la Figura 10.22, el registro índice contendrá 00 11 H (0000 0000 000 I
0001 2 ),
?
Registro índice
Antes de la operación
Código de
operación
11 operación
l
Contador de
]
programa
Memoria de
programa
0000
CEH
0001
00000000
0002
00010001
Registro índice
Después de la operad6n
(}
Figura 10.22.
.' '.~¡
11.33.
Acudir a la Figura 10.23. La dirección de la memoria de datos en la izquierda
es _ _ (hex) como especifican el segundo y tercer bytes de la instrucción en _ _
www.FreeLibros.me
,,p,,
s
374
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador B
Acumulador B
Después de la operación
Memoria de datos
(?)
Códigode
operación
'
I
\
I
F6H
{¡OOOOOOOI ~
. 10000000
Memoria de programa
I
Figura 10.23.
Solución:
Acudir al problema ejemplo de la Figura 1O.l8b. La dirección de la posición de la memoria de
datos en la izquierda de la Figura 10.23 es O180H como especifican el segundo y tercer bytes de la
instrucción en la memoria del programa.
10.34.
Acudir a la Figura 10.23. El contenido del acumulador B después de la operación «car­
gar el acumulador B extendido» será _ _ (8 bits).
Solución:
El contenido del acumulador B después de la operación «cargar el acumulador B extendidO)
de la Figura 10.23 será 11110011.
j
10.35.
Acudir a la Figura 10.24. El código de op E6H especifica la instrucción « _ _ __
------».
Solución:
El código de op E6H de la Figura 10.24 especifica la instrucción «cargar el acumulador B in­
dexado».
10.36.
r
Acudir a la Figura 10.24. El contenido de la posición de la memoria de datos 1--­
(hex) se cargará en el acumulador B. Después de la operación de carga, el contenido del
acumulador B será _ _ (8 bits).
Solución:
Acudir al problema ejemplo de la Figura 10.19. El contenido de la posición de la memoria de
datos 0041 H de la Figura 10.24 se cargará en el acumulador B. Después de la operación de carga,
el contenido del acumulador B será 11110000. La posición de la memoria de datos se calculó
sumando el contenido del registro índice al desplazamiento (0030 + 11 = 0041 H).
,.
"
-
www.FreeLibros.me
EL MICROPROCESADOR MOTOROLA 6800
Memoria de datos
Registro índice
0004
E6H
0005
00010001
0041
11110000
0042
0000 1000
0043
11000011
0000 0000 00 11 0000
Figura 10.24.
10.37.
moriade
de la
!ido del
noria de
iecarga,
: calculó
Acudir a la Figura 10.25. La condición de bifurcación es _ _ (falsa, cierta) en este
problema.
Solución:
Acudir a la Figura 10.4 para la posición del señalizador de arrastre (e). La condición de
bifurcación (bifurcar si arrastre está a O) es cierta en este problema. Por tanto, el procesador
saltará a una nueva posición.
«car­
lendido»
I
Después de la operacl6n
Antes de la operad6n
Código de
operación
rtes
)n
Acumulador B
Acumulador B
Memoria de programa
375
10.38.
Acudir a la Figura 10.25. El desplazamiento de la memoria de programa comienza con
un ___ (O, 1); por tanto, el microprocesador 6800 bifurcará hacia ___ (atrás, ade­
lante).
Solución:
El desplazamiento de la memoria de programa en la Figura 10.25 comienza con O; por tanto,
el microprocesador 6800 bifurcará hacia adelante.
Después de la operación
Contador de
programa (Pe)
r-.....lII...--ry_ _ _--,
0000 0000 000 1 10 10
Contador de
programa
Memoria de
programa
Figura 10.25.
www.FreeLibros.me
376
10.39.
1:
FUNDAMENTOS DE LOS MICROPROCESADORES
Acudir a la Figura 10.25. El contenido del contador de programa después de la opera­
ción de bifurcación será _ _ (hex) o _ _ (binario).
Solución:
Ver el problema ejemplo de la Figura 10.20. El contenido del contador de programa después
de la operación de bifurcar será 00 1EH O 0000 0000 0001 11102, Esto se calcula utilizando la
fórmula (pe + 2) + desplazamiento = nueva dirección.
10.5. REPERTORIO DE 'rNSTRUcaONES DEL 6800
:
El microprocesador Motorola 6800 se utiliza en computadoras de programa almacenado. Las
instrucciones del programa se almacenan como bytes de 8 bits en un área de almacenamiento
denominada memoria del programa. La MPU del 6800 utiliza instrucciones de 1, 2 Y 3 bytes. El
primer byte de la instrucción es siempre el código de op (código de operación), que especifica una
de las 197 posibles instrucciones que puede realizar la MPU 6800. Como en la mayoría de los
microprocesadores de propósito general, el repertorio de instrucciones está fijado permanente­
mente en el diseño de la pastilla 6800.
Motorola agrupa las instrucciones del microprocesador 6800 en los siguientes grupos:
.
j ,)
c¡
¡
'1
,
i'
,
,"1
MI
,'¡
'.
i'j
",
~
i ,¡
'1
;'1
l. Instrucciones de acumulador y memoria.
2. Instrucciones del registro índice y puntero de pila.
3. Instrucciones de bifurcación y salto.
4. Instrucciones del registro de códigos de condición.
Cada uno de estos grupos será cubierto con mayor detalle en secciones posteriores de este mismo
capítulo.
Un resumen del repertorio de instrucciones de la MPU 6800 se detalla en la Figura 10.26. Este
es un listado alfabético por nemotécnicos. Los nemotécnicos de Motorola se utilizan para los 197
códigos de op únicos. Los códigos de op están representados en notación hexadecimal en este
resumen. También se da una breve descripción para cada uno de los nemotécnicos del 6800. De
forma distinta a los procesadores genérico y 8080/8085, la MPU 6800 no utiliza un nemotécnico
único para cada código de op. Algunos nemotécnicos tienen cuatro posibles códigos de op,
dependiendo de los modos de direccionamiento. A causa de esto, en la Figura 10.26 se da tam­
bién el modo de direccionamiento para cada una de las instrucciones del 6800.
Considerar la primera instrucción de la Figura 10.26. La instrucción «sumar el acumulador B
al acumulador A» utiliza el nemotécnico ABA y un código de op hexadecimal de l BH. De
acuerdo con la Figura 10.26, utiliza direccionamiento inherente. La operación de la instrucción
ABA se resume como
Sumar A a
B~A
Esto significa sumar el acumulador A al acumulador B y el resultado se deposita en el acumula­
dor A.
El resumen del repertorio de instrucciones del 6800 de la Figura 10.26 no da detalles sobre
sefializadores, ciclos de reloj o número de bytes de memoria utilizados por cada instrucción. Sin
embargo, da al programador una rápida visión general de las operaciones disponibles al utilizar el
microprocesador Motorola 6800.
www.FreeLibros.me
-­
27
,
'
,
EL MICROPROCESADOR MOTOROLA 6800
¡ de
la opera-
I
Nemotécnico
ABA
grama después
a utilizando la
AOCA
ADCB
tacenado. Las
lacenamiento
~ y 3 bytes. El
especifica una
la: oria de los
I permanente­
ADDA
ADDB
A
ANDA
~pos:
ANDB
ASL
-
de este mismo
ara 10.26. Este
11
ASRA
ASRB
BCC
BCS
BEQ
BGE
BGT
BHI
~mal
en este
s del 6800. De
l nemotécnico
roigos de op,
26 se da tamICUmulador B
1
ASLA
ASLB
ASR
para los 197
1 de lBH. De
la instrucción
B
BIT A
BIT B
ID el acumula-
I
detalles sobre
astrucción. Sin
es al utilizar el
BLE
BLS
Código de
Modo de
operación ! direcciona­
(hex) . miento
lB
Inherente
89
Inmediato
99
Directo
A9
Indexado
B9
Extendido
C9
Inmediato
D9
Directo
E9
Indexado
F9
Extendido
8B
Inmediato
9B
Directo
AB
Indexado
BB
Extendido
CB
Inmediato
Directo
DB
EB
Indexado
Extendido
FB
84
Inmediato
94
Directo
A4
Indexado
Extendido
B4
Inmediato
C4
Directo
D4
E4
Indexado
F4
Extendido
Indexado
68
Extendido
78
48
Inherente
Inherente
58
67
Indexado
77
Extendido
47
Inherente
57
Inherente
24
Relativo
25
Relativo
27
Relativo
Relativo
2C
Relativo
2E
22
Relativo
Inmediato
85
95
Directo
A5
Indexado
B5
Extendido
C5
Inmediato
Directo
D5
E5
Indexado
F5
Extendido
Relativo
2F
23
Relativo
Descripción
Suma A a B .... A
Suma A a M con arrastre -. A
Suma B a M con arrastre .... B
Suma A aM-.A
Suma Ba M-.B
AND de A con M .... A
ANDde Bcon M_B
Desplazamiento aritmético de M a la izquierda con el arrastre
Desplazamiento aritmético de A a la izquierda con el arrastre
Desplazamiento aritmético de B a la izquierda con el arrastre
Desplazamiento aritmético de M a la derecha con el arrastre
Desplazamiento aritmético de A a la derecha con el arrastre
Desplazamiento aritmético de B a la derecha con el arrastre
Si señalizador e = O, entonces bifurca
Si señalizador e ~ 1, entonces bifurca
Si señalizador Z ~ l. entonces bifurca
Si número en complemento a 2 ;;. O, entonces bifurca
Si número en complemento a 2 > O, entonces bifurca
Si minuendo> sustraendo, entonces bifurca
AND de A con M, seftalizadores afectados
(A y M no cambian)
AND de B con M, señalizadores afectados
(B y M no cambian)
Si el número en complemento a 2 ~ O. entonces bifurca
Si sustraendo ~ minuendo, entonces bifurca
Figura 10.26. Resumen del repertorio de instrucciones del microprocesador 6800.
I
&
www.FreeLibros.me
;$
377
'~:;:~~í;lll""""""""""""""""""""""""----------------------~--~~~"~ ....~~...
378
FUNDAMENTOS DE LOS MICROPROCESADORES
B
I
Nemotécnico
BLT
BMI
BNE
BPL
BRA
BSR
BVC
BVS
CBA
CLC
CLI
~
I
!
.J{" .
C
DAA
DEC
6A
CLR
CLRA
CLRB
CLV
CMPA
CMPB
COM
COMA
COMB
CPX
D
f
2D
2B
26
2A
20
8D
28
29
11
OC
OE
6F
7F
4F
5F
OA
81
91
Al
BI
CI
DI
El
FI
63
73
43
53
8C
9C
AC
Be
19
I
':,.'.... '
Código de
operación
(hex)
DECA
DECB
DES
DEX
EORA
E
EORB
7A
4A
5A
34
09
88
98
A8
B8
C8
D8
E8
F8
Modo de
direccionamiento
Relativo
Relativo
Relativo
Relativo
Relativo
Relativo
Relativo
Relativo
Inherente
Inherente
Inherente
Indexado
Extendido
Inherente
Inherente
Inherente
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Indexado
Extendido
Inherente
Inherente
Inmediato
Directo
Indexado
Extendido
Inherente
Indexado
Extendido
Inherente
Inherente
Inherente
Inherente
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Descripción
Si el número en complemento a 2 < O, entonces bifurca
Si menos (N - 1), entonces bifurca
Si no igual a O (Z = O), entonces bifurca
Si más (N = O), entonces bifurca
Bifurca siempre
Bifurca a subrutina (PC a pila)
Si overflow borrado (V = O), entonces bifurca
Si overflow a 1 (V = 1), entonces bifurca
Compara A con B (A - B)
Borra senalizador C
Bon;a senalízador 1
J
Borra posición de memoria
Borra A
Borra B
Borra senalizador V
Compara A con M (A - M)
Compara B con M (B
L
M)
Complementa M (complemento a 1)
Complementa A (complemento a 1)
Complementa B (complemento a 1)
Compara registro índice con M
(XH/XL) (MjM + 1)
Ajuste decimal de A
..
(conviene la suma binaria de caracteres de BCD al formato BCD)
Decrementa M
Decrementa A
Decrementa B
Decrementa el puntero de pila
Decrementa el registro de índice
OR exclusiva de A con M .... A
OR exclusiva de B con M .... B
Figura 10.26.
(continuación).
www.FreeLibros.me
R
EL MICROPROCESADOR MOTOROLA 6800
LSRA
64
74
44
Modo de
direcciona­
miento
Indexado
Extendido
Inherente
Inherente
Inherente
Inherente
Indexado
Extendido
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Indexado
Extendido
Inherente
LSRB
54
Inherente
60
70
40
50
01
8A
9A
AA
BA
CA
DA
EA
FA
36
37
32
33
69
79
Indexado
Extendido
Inherente
Nemotécnico
INC
INCA
INCB
INS
INX
I
JMP
J
JSR
LDAA
LDAB
LDS
L
Código de
operación
(hex)
LDX
6C
7C
4C
5C
31
08
6E
7E
AD
BD
86
96
A6
B6
C6
D6
E6
F6
8E
9E
AE
BE
CE
DE
EE
FE
I
LSR
NEG
N
) al formato BCD)
NEGA
NEGB
NOP
ORA A
O
ORAB
P
PSHA
PSHB
PULA
PULB
R
ROL
379
Descripción
Incrementa M
Incrementa A
Incrementa B
Incrementa el puntero de pila
Incrementa el registro de índice
Salta a dirección
Salta a subrutina (pe en pila)
Carga Men A
Carga Men B
Carga M en SP. M -. SPH • (M + 1) -,XL
Carga M en registro índice,
M -. X H • (M + 1) -+XL
Desplazamiento lógico de M a la derecha en arrastre
Desplazamiento lógico de A a la derecha en arrastre
Desplazamiento lógico de B a la derecha en arrastre
Complemento a 2 de M -+M
Complemento a 2 de A -+ A
Inher~lemento a 2 de B -+ B
Inhere
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inherente
Inherente
Inherente
Inherente
Indexado
Extendido
peración (se utilizan 2 -ciclos)
OR de A con M -+ A
OR de Bcon M-+B
¡:I',
Introduce A en la pila
Introduce B en la pila
Saca A de la pila
Saca B de la pila
Figura 10.28.
izquierda por medio del acarreo
(continuación).
www.FreeLibros.me
~
~
\
, 380
R
FUNDAMENTOS DE LOS MICROPROCESADORES
Nemotécnico
Código de
operación
(hex)
Modo de
direccionamiento
ROLA
49
Inherente
Rota A a la izquierda por medio del acarreo
ROLB
59
Inherente
Rota B a la izquierda por medio del acarreo
ROR
Indexado
Extendido
Inherente
Rota M a la derecha por medio del acarreo
RORA
66
76
46
RORB
56
Inherente
Rota B a la derecha por medio del acarreo
RTI
3B
Inherente
RfS
SBA
39
10
82
92
A2
B2
C2
D2
E2
F2
OD
OF
OB
97
A7
B7
D7
E7
F7
9F
AF
BF
DF
EF
FF
80
90
AO
Inherente
Inherente
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inherente
Inherente
Inherente
Directo
Indexado
Extendido
Directo
Indexado
Extendido
Directo
Indexado
Extendido
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inmediato
Directo
Indexado
Extendido
Inherente
Inherente
Inherente
Inherente
Inherente
Indexado
Extendido
Vuelve de la interrupción (los señalizadores A, B, X, PC
son sacados de la pila)
Vuelve de la subrutina (PC es sacado de la pila)
Resta B de A _ A
SBCA
SBCB
SEC
SEI
SEV
STA A
S
STAB
STS
STX
SUBA
BO
CO
DO
EO
SUBB
FO
T
SWI
TAB
TAP
TBA
TPA
TST
3F
16
-
06
17
07
6D
7D
Descripción
T
Rota A a la derecha por medio del acarreo
Resta M de A con arrastre (A - M - M)
1
10.40.
Resta M de B con arrastre (B ­ M - C -+B)
Pone seftalizador e en 1
Coloca la bandera len l (coloca la mascarilla de interrupción
Pone seflalizador V en 1
Almacena A en M
10.41.
Almacena B en M
J
Almacena SP en M, SPH-+ M, SPL ...;,(M + 1)
Almacena X en M, X H­ M. Xt...;,(M + 1)
Resta M de A-+A
10.41.
Resta M de B_ B
Interrupción software
Transfiere A a B
Transfiere A al CCR del procesador
Transfiere B a A
Transfiere CCR del procesador a A
Test de M por (M) ­ 00, (los señalizadores N y Z
se ponen a 1 Ó O)
Figura 10.26.
(continuaci6n).
www.FreeLibros.me
1
10.43.
EL MICROPROCESADOR MOTOROLA 6800
,
Nemotécnico
T
W
i
Código de
operación
(hex)
Modo de
direcciona­
miento
TSTA
40
Inherente
TSTB
SO
Inherente
TSX
TXS
30
35
Inherente
Inherente
WAI
3E
Inherente
381
Descripción
Test de B por (B) 00, (los señalizadores N y Z
se ponen a I ó O)
Test de A por (A) ­ 00, (los señalizadores N y Z
se ponen a 1 Ó O)
Transfiere SP + 1 ~X
Transfiere X - I ~SP
Espera interrupción (pe /, Z, B, CCR son introducidos en
la pila)
X. PC
Figura 10.26. {continuaci6n}.
PROBLEMAS RESUELTOS
~
~
.....
10.40.
I
Solución:
Motorola subdivide las instrucciones del microprocesador 6800 en instrucciones de acumula­
dor y memoria, instrucciones de registro índice y puntero de pila, instrucciones de salto y bifurca­
ción e instrucciones de registro de códigos de condición.
lIterrupción
t.
10.41.
r
!
~
Acudir a la Figura 10.26. La instrucción ADDA puede ser utilizada en uno de _ _
(número) modos de direccionamiento. La instrucción ADD A suma el contenido del
acumulador ___ (A, B) al contenido de una posición _ _ . El resultado se coloca
en ______ .
Solución:
La instrucción ADD A listada en la Figura 10.26 puede ser utilizada en uno de cuatro modos
de direccionamiento. La instrucción ADD A suma el contenido del acumulador A al contenido
de una posición de memoria. El resultado se coloca en el acumulador A.
J
10.42.
Acudir a la Figura 10.27. El código de op para la instrucción ADD B del 6800 utilizado
en este ejemplo es ___ (hex). Este código de op especifica que la instrucción «suma B
a M» utiliza el modo de direccionamiento ___ .
Solución:
Ver la instrucción ADD B en la Figura 10.26. El código de op para la instrucción ADD B del
6800 utilizado en el ejemplo de la Figura 10.27 es DBH. Este código de op especifica que la
instrucción «suma B a M) utiliza el modo de direccionamiento directo.
t
,
Motorola subdivide las instrucciones del microprocesador 6800 ert cuatro grupos. Lis­
tados.
10.43.
Acudir a la Figura 10.27. El contenido del acumulador B después de la operación de
sumar será
Solución:
La suma binaria 0000 1111 + 00000oo l = 000 l 0000. Por tanto el contenido del acumulador B
despuéS de la operación de suma de la Figura 10.27 será 00010000 2,
www.FreeLibros.me
.\
i
382
FUNDAMENTOS DE LOS MICROPROCESADORES
Acumulador B
Acumulador B
Después de la operación
AIItes de la operación
0006
DBH
Memoria de programa
Memoria de datos
Figura 10.27.
•
10.44.
U
Acudir a la Figura 10.28. La operación de borrado en este ejemplo utiliza el código de
op _ _ (hex). Esta instrucción utiliza el modo de direccionamiento _ _ .
Solución:
Ver la instrucción CLR de la Figura 10.26. La operación de borrado mostrada en la Figu­
ra 10.28 utiliza el código de op 7FH. Esta instrucción utiliza el modo de direccionamiento exten­
dido.
10.45.
Acudir a la Figura 10.28. Listar el contenido de las posiciones de la memoria de datos
0080H, 0081H Y0082H despUés de la operación de borrado.
Solución:
El contenido de las posiciones de la
de la operación de borrado son:
Posición de memoria 0080 = 11111111
Posición de memoria 0081 = 00000000
Posición de memoria 0082 = 00001111
memoria de datos mostradas en
hi Figura 10.28 después
(no cambia)
(borrada)
(no cambia)
Código de
operación
'.~
Memoria de programa
00\0
7FH
0011
00000000
byte superior
0012
10000001
byte inferior
,t
1 "'~
.~
;
Desp. de la operad4n
Aates de la operadcSll
~
11..6.
Memoria de datos
0080
1111 1111
0081
00110011
0082
0000 1111
I
Figura 10.28.
www.FreeLibros.me
1
?
0080
?
0081
?
0082
Memoria de
datos
Eire!
está
J
bade
~
J
I
D'luJador B
EL MICROPROCESADoR MOTOROLA 6800
10.46.
la operación
383
Acudir a la Figura 10.29. El código de op para la instrucción DEC en este problema
es _ _ (hex). La operación «decrementar M» utilizada en este problema emplea el
modo de direccionamiento ___ .
Solución:
Ver la instrucción DEC de la Figura 10.26. El código de op para la instrucción DEC utilizada
en la Figura 10.29 es 6AH. La operación ((decrementar M» utilizada en este problema emplea el
modo de direccionamiento indexado.
Código de
operación
·'~moria
de programa
l·el código de
_.
l
en la Figu­
mento exten­
Después de la operaciÓD
Antes de la operaciÓD
Memoria de datos
OOF3
OOF4
OOF5
OOF6
~
11111111
?
11111111
?
1111 1111
?
1111 1111
?
OOF3
OOF4
OOF5
OOF6
Memoria de
datos
ria de datos
Registro de índice
0000 0000 1111 00 11
Figura 10.29.
0.28 después
10.47.
Acudir a la Figura 10.29. Listar el contenido de las posiciones de la memoria de datos
OOF3H, OOF4H, OOF5H YOOF6H después de la operación «decrementar M».
Solución:
Al utilizar el direccionamiento indexado, la nueva dirección a la que se apunta en la memoria
de datos es OOF3 + 3 - OOF6H. Por tanto, el contenido de las posiciones de la memoria de datos
después de la operación «decrementar M» será:
Posición de memoria OOF3 11111111 (no cambia)
Posición de memoria OOF4 = 11111111 (no cambia)
Posición de memoria OOF5 = 11111111 (no cambia)
Posición de memoria OOF6 - 11111110 (decrementadas)
10.6. INSTRUCCIONES DE MEMORIA Y ACUMULADOR DEL 6800
.cemoria de
latos
El resumen de las instrucciones de memoria y acumulador del microprocesador 6800 de Motor~la
está reproducido en la Figura 10.30. Estas incluyen las instrucciones aritméticas, lógicas, de prue­
ba de datos y de transferencia de datos.
Considerar la primera operación listada en la Figura 10.30. La operación de suma regular
puede ser realizada bien en el acumulador A o en el B. Por tanto, se listan dos nemotécnicos para
\
www.FreeLibros.me
•••
\
384
~
I
'¡
?-;
FUNDAMENTOS DE LOS MICROPROCESADORES
-
INMEDIATO
~
-
AOOA
88
Aooa
ABA
ca
Sum."-"
Suma con arrastre
AOCA
es
2
ADCI
ANOA
ANOI
a'TA
BiTa
CLA
CtRA
CLAa
CM'A
CM'"
CeA
COM
COilA
COM8
NEG
NEGA
NEGB
DAA
...C9CI
1
ANO
Test di bit
lIon'a
CompIrI
Compo,,_
Compilmlntl • I
Com¡;e"-a2
¡Negar)
--
I\¡uII1I-'A
DEC
DeCA
OEta
00_
I~
c.va­
OR._
""""""".. _
E,~
OtspIaztmientO drQIIt ata
¡zQ\ll&f'da
-
1loopII''''''''O_.''
Delpl&zamilnto. la ilquierda arltJMtiCO
OtspIazam18f1to 8 la . .
cM, IritméhCO
I
O,
Suma
-DtspJaI~O
a 11 dere-
.... lógiCO
-"""-
A001l"""-
Tr_""'_
,.Cero._
T..
EDRA
EORa
'NC
INCA
INca
LDAA
LOA'
ORAA
ORAa
!'$HA
!'$HI
PULA
'UL8
ROL
ROLA
ROU
ROA
RORA
RORe
ASL
ASLA
ASLI
IS
cs
2
2
2
2
2
2
11
2
CI
2
INDllADO
-
EITEIIDIDO
O,
OP
2 Al
Ea
S
S
DIRECTO
OP
-
2 58
08
3
3
;
z
;
z
1 A9 I
2 89
¡
¡
2 FI
2 95
2 01
¡
1
2 ES
2 M
2 e.
2 Al
2 ES
a.
2 11
2 01
J
1
J
. ..
•
2
2
ti 2
lA 2
CA 2
2
2 O.
1
H
A.M.C
8·M.C"'8
A' M-A
4
J
J
1
2 1J I
1
2 Al 5
2
E'
IC
2 Al
2 El
2 AA
2 EA
I
1
lA
2
'.
I
••
••
•
•
. ••
.. •
2
2 fl
1 1C
S
S
S
2
2 FI
S
2 fA
2 lA
I
I
••
•
•
..
SUBe
SBA
ca
saCA
S8ca
TAl
TIA
n
C2
01
•
1
2 9Q
2 DO
4
1
1
2
2
2 12
2 DI
1
3
2
2
7t
2
10
lO
11
2
2
..
le
11
1
I
11
•
¡
1
2
l.
I
3
ti
I
2 11
I
5
I
1
1
1
4
l
2 El
S
10 1
15T
I Bl
2 Fl
2 10
4 '3
•
Código do _ _ {1le'IIdecimaI):
_
do cídOS do,. MPU:
-­
2
2
2
2
2
~ do la posIdón ......1Ida por 01_ do pII;
•
.
1
1
1
1
1
1
1
,
1
l 'A
1-1
00
00 - A-A
00 - a-8la ...... _ _ do
CclrMorIo
M-.
car_
ti ,tI .... M
A t l-A
B +1 - 8
51
2
J
1
1
B
2
2
I
SI
I
1
I
51
2
41
51
I
2
..
,.
2
2
I
I
1
1
1
1
1
¡
16
11
2
I
I
1
3'40
10
I
1
2
1
I
boQeInI
=} c::a - iJiiitID:l
C
11
n
lit
-
c:x::t:=-O
=}CCmñm - o
:} - e
0e
1
110
bl
"
t
lit
0-=-0
.1
A-M
e-M
.. -M-A
e M-,
A B-A
A M~t-A
8-M e-e
A-a
S-A
M-DI
.. - 00
1-00
I
!
!
!
I
o
o
•
•
R
R
R
!
!
I I !
I R S
I R S
t
!
! I
• o ! !
• o.
o
! 1
]
•• ••
¡O•
1
•
I
•
IR.
• o I IR.
I I R
1 R
~} LiJe - CJIlIIlIlOJ
bl lO
8
o o !
!
!
•o.o I
o. !
••
••
••
• • II
••I
1
.
.
..
,
1 I
•
1
I • 1 ¡ 1
I • ! ! !
1 o ! I ¡
! o I ! !
I o ! ! I
! ! R
! I R
•o o.
! R
o o 1 1 R
R
S
• • A
• o R S R
R
• • R S
o • 1 1 I
o • 1 ! !
•e
• o ! ¡
• o I 1 I o
t ¡ R
o. I
•
I II
Jl
1
1
5 • J 1 I
K I N Z V
••
BCD._BCD
M 1-11
A l -~A
I I-a
AE!'lIl-A
a$M-I
•••
AND_:
• 00-.._;
CA
exclusm:
Numero de bytes de program&;
Más8littnitiéo:
00 -A
00 -a
A M
a-II
A,a
8 +"-8
A'Msr,SP-I-$I'
8'Msp,Sp-I-sr
sr-, "$I',Msp-A
sr·l--SP,Msp--.B
JI
•
2 A2 5
1
DE CONIlICION
••
A+M-A
31
1
~A
M-A
.. '8
54
Leyenda:
i
2
53
J
J
&
S
S
1
3
!I
Fl
2 lO
2 fO
I
l
I
I
1
2
11
SC
l
B ·A
11-11
SA
1
Al
2 El
2 AS
1 EO
2
1
2 11
TSTA
....
I1
J
,,*
OO-M
J
J
J
J
", .. M-A
a' M ·a
A'M
a·M
4f
SF
1
I
I
J
J
I
.
11
1
,
2
J
J
J
J
~
B'" M +8
la
31
ASR
ASIlA
ASRI
LSR
LSRA
LSRI
STAA
STAI
SUlA
3
1
IJ
J
3
•
5
5
2 la
"
(1'_ ..................
4
2 1I
2 fl
1
­
J
3
2 Al
2 El
2 M
2 f4
.. ....
lII'IJCI!l)
= O,
••
2 lI'i
2 f5
2 /F
1
2 Da 1
2 9A J
2 OA 1
-
S
S
I
I
S
1
lA
2
2 II
2 fl
3
lO
ca
;
2 99
1 O,
2 94
2 O.
TST'
OP
_
1EGlS11IO DI
CODIOOS
OI'I!AACIOIIIIQOI.!ANAIAAIl'1IETlCA
lit
•
www.FreeLibros.me
.....
opliDi
mmed
operac
.. bajo
La
••
ra 10.3
memO!
comoi
·.
l..~
•
••
•
• • 1
• •• • ••
• •• • ••
• •• • ••
• ••11• ••1
•• 1 I I
• • II II II
••I I I
••
• • II II II
•• I 1 I
•• I 1 I
·.
··• ..•
·•• .••
·.•
···...
•• •o II
•• I
I
I
I
I
• • R
• • R I
I
I
:
I
• • R I
! ! R •
•
I 1
II
I I
I I
I I
I I
Las
I
1
•I •I
.......
I I
I 1
1 I
I
I
I I R •
I 1 R •
I I R R
I I R R
• o I I R R
Mil l
fII
~delt.
O
00
8yIo •
V C
BíI._
Trantllrir a;
CIfO:
Figura 10.30. Instrucciones del acumulador V memoria. (Cortesfa de Motoro/a, /nc.)
I
la.
rcdizI
.....
1
un
-
1I
t11111 '11i
EL MICROPROCESAOOR MOTOROLA 6800
......... c6dIgot ... -
H
I
H
Z
V
M._....
_
"" ........... c6dIgot ... ­
(SeCOlOc:aoibilt<"_"_'_IlOmI . . . . ...,.¡
Arrastre intennedio del bit 3
,,_.000000Il0?
Test: ¿lest*1do. 100000001
Test
. Test, _ _ doIcatá<terSCDmaalignilícalivo .. -.orque9'l
~
Hega"", lb<! do tigno¡
c..o!byt'l
Overtlow, _ _ .1
¡Ho_li"-.,)
e
A
s
®(IlíII1/)
@(Bít1/)
Reincalii8ción S8T'IPI't
@(Ba1/)
Pone
a
1
siempre
_ _a
Tts1 Ij pooe a 1 si es 'tefdIdIro. boml de
•
HoaftcladO
f
Arrastre del bit 7
385
Test. ,opnneb-l0000000 antM da JI efecución?
T.". íguII"_
Tnt f..operando.0l1H111 antesdelB~?
coloca
do H tl>des¡¡uiS do que
hI_.........-.10
Figura 10.30. Instrucciones del acumulador V memoria (continuación).
1
.",.
t
la operación de suma. Son ADD A Y ADD B. Observar que la operación ADD A puede ser
realizada utilizando direccionamiento inmediato, directo, indexado o extendido. El código de op
para la instrucción ADD A inmediato será 8BH, mientras que ADD A directo utiliza el código de
op único de 9BH, etc. También se puede determinar de la Figura 10.30 que la operación ADD A
inmediato se especifica con una instrucción de 2 bytes (notar el 2 bajo el signo #). Además, la
operación ADD A inmediato utiliza dos ciclos de reloj, o máquina, para su ejecución (observar el
2 bajo el signo - ).
La operación simbólica de la instrucción ADD A aparece como A + M -+ A en la Figu­
ra 10.30. Esto significa que el contenido del acumulador A se suma al contenido de la posición de
memoria M. El resultado de la operación (la suma en este caso) se coloca en el acumulador A,
como indica la flecha.
Las columnas derecha de la Figura 10.30 indican que los señalizado res H. N, Z, V y e son
afectados por la operación ADD A. Sin embargo, el señalizador 1 no está afectado por esta ins­
trucción. Una leyenda y notas especiales están colocadas al final de la tabla de la Figura 10.30
para explicar muchos de los símbolos.
PROBLEMAS RESUELTOS
10.48.
Acudir a la Figura 10.30. La instrucción LDA B transfiere el contenido de una posición
de ___ al acumulador ___ . Los señalizadores ___ , ___ y ___ son afec­
tados por la operación LDA B.
Solución:
Ver la instrucción LOA B de la Figura 10.30. La instrucción LOA B transfiere el contenido de
una posición de memoria (M) al acumulador B. Los señalizadores N, Z y V son afectados por la
operación LDA B. El señalizador V está siempre en reinicialización (ver la R de la Figura 10,30)
por la operación LDA B.
10.49.
Acudir a la Figura 10.31. La instrucción LDA B de 3 bytes utilizada en este problema
tiene el código de op ___ (hex). Esta instrucción utiliza direccionamiento ___ .
Solución:
Ver la instrucción LOA B en la Figura 10.30. La instrucción LOA B utilizada en la Figu­
ra 10.31 tiene el código de op F6H. Esta instrucción utiliza direccionamiento extendido.
www.FreeLibros.me
.~.~.
~
s ••
------------~,~\~""~~v,~
..........
C!_
._
._
._!!!".·
,
I
•
386
FUNDAMENTOS DE LOS MICROPROCESADORES
Código de
operación
Memoria de programa
0000
?
0001
0000 0001
Memoria d
0002
?
Acum u1ador B
Desp. de la operación
Antes de la operación
Registro de códigos
de condición "-_ _ _-'
Memoria de datos
OIFO
1111 0000
OIFI
00000000
0lF2
1111 0001
Acumulador B
Registro de códigos
de condición
1
~•
Figura 10.31.
•
I
10.50.
Acudir a la Figura 10.31. El contenido del acumulador B despuéS de la operación de
carga será _ _ (8 bits).
•
ILSC.
Solución:
¡~
. . '.
El direccionamiento extendido se utiliza en la instrucción LDA B de la Figura 10.31, Que
significa Que el dato en el acumulador B de la posición OIFIH de la memoria de datos será
copiado. Por tanto, el contenido del acumulador después de la operación de carga será
00000000.
"q
¡i
.r
!:
10.51.
,
}
1
Acudir a la Figura 10.31. El contenido del registro de códigos de condición después de
la operación de carga será _ _ (8 bits).
Solución:
Ver la instrucción LDA B en la Figura 10.30. El contenido del registro de códigos de condi­
ción después de la operación de carga de la Figura 10.31 será 11010101. Solamente los señaliza­
dores N y Z han sido cambiados durante la operación de carga.
,
ass.
1
.J
I
•
1
Aa
10.52.
Acudir a la Figura 10.32. La instrucción «almacenar acumulador A» utilizada en este
problema utiliza direccionamiento ___ .
Solución:
Ver la instrucción STA A de la Figura 10.30. El código de 01' A7H utilizado en la Figura 10.32
representa la instrucción «almacenar acumulador A» y utiliza direccionamiento indexado.
10.53.
Acudir a la Figura 10.32. El contenido de la posición de la memoria de datos _ _
(hex) será _ _ (8 bits) después de la operación de almacenar.
www.FreeLibros.me
::: Ji
!!
:151=' ii!
EL MICROPROCESAOOR MOTOROLA 6800
387
Código de
operación
Memoria de programa
0003
A7H
0004
00010000
IJ
Acumulador A
?
Acumulador A
Después de la operación
Registro de códigos
de condición '--_ _ _-1
le
códigos
ón
_....L..._?-..!l
Registro índice
'--_?
Memoria de datos
Contenido Dirección
Figura 10.32.
Solución:
Ver la instrucción STA A de la Figura 10.30. La posición de la memoria de datos se cakula
sumando el contenido del registro índice al desplazamiento (0080 + 10 '" 0090H en este ejemplo).
Por tanto, el contenido de la memoria de datos 0090H será 00000000 después de la operación de
almacenar, en la Figura 10.32.
Jeración de
10.54.
~.
carga será
~despUés de
"s de condi­
los señaliza­
Acudir a la Figura 10.32. El contenido del registro de códigos de condición después de
la operación de almacenar será ___ (8 bits).
Solución:
Los señalizadores N. Z y V son afectados por la operación STA A de acuerdo con la tabla de la
Figura 10.30. El contenido del registro de códigos de condición después de la operación de alma­
cenar de la Figura 10.32 será 11000100.
a 10.31, que
le datos será
~
Registro de códigos
de condición
?
10.55.
Acudir a la Figura 10.33. El código de op para la instrucción TST A es _ _ (hex).
Esta instrucción «examinar A» utiliza direccionamiento ___ .
Solución:
Ver la instrucción TST A de la Figura 10.30. El código de op para la instrucción TST A es
4DH. Esta instrucción «examinar A» utiliza direccionamiento inherente, o implícito.
Acumulador A
Acumulador A
ada en este
Figura 10.32
!exado.
Registro de códigos de
condición
.....- - - - , Registro de Códigos de
condición
f
atos _ __
Figura 10.33.
www.FreeLibros.me
t.
388
10.56.
FUNDAMENTOS DE LOS MICROPROCESADORES
Acudir a la Figura 10.33. El contenido del acumulador A después de la operación
TST A será _ _ (8 bits).
Solución:
La operación de examinar no cambia el valor del acumulador A. Por tanto, el contenido del
acumulador A en la Figura 10.33 después de la operación TST A será 10000001.
10.57.
Acudir a la Figura 10.33. El contenido del registro de códigos de condición después de
la operación TST A será _ _ (8 bits).
Solución:
De acuerdo con la Figura 10.33, solamente los señalizadores N, Z, Vy e están afectados por la
instrucción TST A. El contenido del registro de códigos de condición después de la operación
TST A será 11001000. Los señaIizadores V y son siempre puestos a O por esta operación. El
señalizador N se pondrá a 1, indicando que el acumulador A contiene un número negativo. El
señalizador Z estará a O, indicando que el acumulador A no contiene cero.
e
Considera
Figura 10.34.
direccionamit
son, esencialr
tros. El señal
posterior. ~
bifurcaciones
AC1I
10.58.
dec
SaII
I
dira
10.7. INSTRUCCIONES DEL PUNTERO DE PILA Y REGISTRO
INDICE DEL 6800
El siguiente grupo de las operaciones del microprocesador 6800 son las instrucciones del puntero
de pila y registro lndice, detalladas en la Figura 10.34. Estas incluyen las instrucciones de incre­
mentar y decrementar, cargar y almacenar y transferencia utilizadas con el registro índice y
puntero de pila. Recordar que el registro índice, de 16 bits, del 6800 se utiliza cuando se ejecutan
las instrucciones en el modo de direccionamiento indexado. El puntero de pila de 16 bits se
utiliza para localizar el tope de la pila de la RAM.
Memoria de prOl!
.".- -41
Registro .
.j
II!GISTIIO DI!
CODIGOS
DE CONDICIOM
MODOS DI! DlRECCIOIWIIENTO
OPERACIONES
DEL PUNTERO
INMEDIATO
NIIIIIOTECNICO . O'
Compara Aeg, InóIce
Decrementa Reg, Indico
Decrtlm8ll!a Pun!. de pila
CPl(
OEX
OES
Incrementa Reg, Indi<:.
Incrementa Punl. de pila
Carga Rag, Indico
Carga Funl. de pila
Almacena Re¡¡, IOOice
Almacena PuOl, de pila
Reg. IOOice ... Punt de pila
Funl de pila ... Re¡¡, IOOí""
INI(
INS
IC
-
It
O,
J
J
9C
-..
EXTEHOIOO
O,
-
ti
O,
~
JI
2 AC
6
1
!lC
S
J
It
I/IIPUCrTO
O,
09
34
LOX
CE
LOS
BE
STX
STS
TXS
TSX
IIIDI!XAOO
DIRECTO
3
3
J
3
DE
SE
DF
9f
4
4
~
~
2 EE
2 Al
2 H
2 Af
6
6
1
1
2 fe 5
2 BE 5
2 fF: 6
2 Bf )6
1
4
4
08
.
31
4
3
J
3
J
35
30
ti
1
1
1
1
•,
4
I
OPERACION
IIODt.EAHAIARITMETICA
)(H - M. XL - 1M
X - 1 -X
SP 1 -SP
+ 11
X + l-X
SP'l-sp
M -XH.IM + n-XL
M~ SPH. 1M + 11 - SPL
XH ~M. XL -1M. 11
SPH -M. SPL -1M + 11
X - I -SP
sP' I -X
S .. 3 2 1
H I N Z V
•e
• • CD l~.
••• 1• •
• • • •1 • •
••• ••
• • Q)!
••••
• • Q): RR ••
• • Q)r R •
••
• • <1J: R •
• • • • • ·1
••••••
(j) (BiI NI Teot: ¿Es bit de Signo del byte más signíficativo IMSI del resuhado. 11
® (BÍ! V) Test: ¿Rebose de complemento a 2 de la mta de los bytes ms1
<l) (Bit NI Te.I: ¿Resunado menor que cero'
10.59.
Aa
caq
Sob
des!!
10.60.
Aa
cód
do,.
Sob
JaF
Figura 10.34. Instrucciones del puntero de pila y registro indice. (Cortes(a de Motorola, Ine.)
www.FreeLibros.me
rod
J
'.
L
EL MICROPROCESADOR MOTOROLA 6800
)fración
i
mido del
!
spués de
389
Considerar la instrucción «comparar registro índice» en la primera línea de la tabla de la
Figura 10.34. El nemotécnico es CPX. La instrucción CPX puede acceder a memoria utilizando
direccionamiento extendido, indexado, directo o inmediato. Las instrucciones de comparación
son, esencialmente, operaciones de resta quedando inalteradas las posiciones de memoria y regis­
tros. El sefializador Z está a loa O y puede ser utilizado para una bifurcación condicional
posterior. Los sefializadores N y V también son afectados, pero no están pensados para realizar
bifurcaciones condicionales después de esta operación.
PROBLEMAS RESUELTOS
:los por la
)peración
ración. El
gativo. El
10.58.
Acudir a la Figura 10.35. La operación LDX mostrada en este ejemplo utiliza un código
de op de _ _ (hex). Esta instrucción utiliza direccionamiento _ _ .
Solución:
La operación LOX de la Figura 10.35 utiliza un código de op de CEH. Esta instrucción utiliza
direccionamiento inmediato.
¡
Código de
operación
, puntero
Memoria de programa
0016
(M)
0017
11110000 I
(M+ 1)
0018
00000001
de ¡ncre­
índice y
ejecutan
6 bits se
?
}\
r
I
Antes de la operación
...
Registro índice
liT; r¡I
.
,(])
,
10.59.
¡ (t •
¡ • •
• • •¡ • •
•, • • •
•••
•'C» 1 R •
.:v: A •
R
.
•
•••••
• ••
.Jl:
.1):
A •
·.'
~
=============~
Después de la operación
=I~~====?======
\
Registro índice
Figura 10.35.
.
IIZ V t
....
Acudir a la Figura 10.35. El contenido del registro índice después de la operación de
carga será _ _ (hex).
Solución:
Ver la instrucción LOX de la Figura 10.34. El contenido del registro índice de la Figura 10.35
después de la operación de carga será FOO I H .
10.60.
Acudir a la Figura 10.36. La posición de la memoria de programa OOICH contendrá el
código de op ___ (hex) para especificar la operación «cargar puntero de pila extendi­
do».
Solución:
Ver la instrucción LOS en la Figura 10.34. La posición OOICH del programa de memoria de
la Figura 10.36 deberá contener el código de op BEH para especificar la operación «cargar punte­
ro de pila extendido».
www.FreeLibros.me
t
. , JlllI.
390
RJNDAMENTOS DE LOS MICROPROCESADORES
Memoria de programa
oolC
?
0010
00000000
oolE
0111 1111
_. ­
•
-....­
!!I*oa. _
Después de la operación
Antes de la operación
Puntero de pila
?
iIiu':a 5 111 e
!ittr2. ~ :­
Puntero de pila
!ft..r::Is
!íIu':a
">
e
5"_
Memoria de datos
oo7F
0000 0001
0080
1111 1111
­
.......­
""""' ....
_........­
. . . . . ""=.*1
;¡ro~.:
Figura 10.36.
;¡ro"'-a'
._.­
--­=swa._
.__
.........
1-.
1-.. . . . . .
10.61.
~
:
Acudir a la Figura 10.36. El contenido del puntero de pila después de la operación de
carga será _ _ (hex).
......
Solución:
Ver la instrucción LDS de la Figura 10.34. El contenido del puntero de pila después de la
operación de carga en la Figura 10.36 será OIFFH.
:,'
11.·.·, .
~
4>
..
!.AI
~
10.8. INSTRUCCIONES DE BIFURCACION y SALTO DEL 6800
,
1
'
WAI
Las instrucciones de bifurcación y salto para el microprocesador 6800 están detalladas en la
Figura 10.37. Estas instrucciones se utilizan para controlar la transfere!lcia de operaciones de un
punto a otro del programa. Observar que todas las operaciones de bifurcación utilizan el modo de
direccionamiento relativo. La instrucción de «no operación» (NOP) solamente hace avanzar una
unidad el contador de programa y no tiene ningún efecto sobre sefializadores, registros o posicio­
nes de memoria.
Considerar la instrucción «saltar a subrutina» (JSR) de la Figura 10.37. La instrucción JSR
utiliza direccionamiento indexado o extendido. Detalles de la operación JSR se dan en la Figu­
ra 10.38. Las instrucciones «bifurcar a subrutina» (BSR) tienen la misma función que la opera­
ción JSR. Sin embargo, utiliza direccionamiento relativo. La instrucción «bifurcar a subrutina»
también se explica con mayor detalle en la Figura 10.38.
Las instrucciones de saltar (JMP) y «volver de subrutina» (RTS) se listan en la tabla de la
Figura 10.37. Mayor detalle sobre su funcionamiento se da en la Figura 10.38. La «interrupción
software» (SWI) y «espera interrupción» (WAl) están también listadas en la tabla de la Figu­
ra 10.37. De nuevo, se da mayor detalle sobre estas dos instrucciones en el apartado de interrup­
ciones de la Figura 10.38. Finalmente, la instrucción «vuelta de interrupciÓn>) (RTI) se lista y
detalla en las Figuras 10.37 y 10.38. La instrucción RTS se utiliza como la última instrucción de
una subrutina, mientras que la instrucción RTI realiza el mismo propósito en una rutina de
servicio de interrupción.
www.FreeLibros.me
es
-:-..:uencia I
:0.38. la
.l.. Despw
_.) hasta ,
~).
1;2.
Te
mi
..
So
1Ul.
t
-
TCl
cM:
.
:~.
~
. - "1 4
k!
J4$P1ii
t
391
EL MICROPROCESADOR MOTOROLA 6800
lIEGISTlIO DE COOIGOll
DE CONOICION
RELAnYO
III!IIO'IEQICO
01'
Bifurca $' arrastre a 1
Bifurca si ;# O
Bifurca sí ;. O
BíflJrC3 sí > O
Bllurea " es mayor
Brturca SI ~ O
Bifurca $l es menor O.:
BifurCA sí < O
eifurca Si es menos
Bifurca si no es • 8 cero
Bíl SI overflow a O
Brt. SI overflow a 1
Bifurca Si es más
Brturea a su~rutina
BRA
Bee
BCS
BEQ
BGE
BGT
BHf
BlE
BlS
BU
BMI
BNE
BVe
BVS
BPl
BSR
20
24
25
2i
2C
2E
22
2F
23
20
2B
26
28
29
lA
80
Sal1a
JMP
Salta • subrutina
JSR
NOI'
RTI
RTS
OPERACIONeS
8!furcaclOo
Bifurca SI arrastre a O
,pila
I
de
la
No oporacIOn
Vuelta 00 lf1!8!TUpciÓn
Vuelta 00 subrutina
Inteffupcron solIViare
Espora la ,nterrupOOn
SWI
WAI
lOa
4
4
4
4
4
4
4
4
4
4
4
4
4
4
8
O,
-
ti
OP
-
ti
IMPUCITO
01'
-
1'RT DE IIIFIIRCACIOII
#
Ninguno
e-o
C=l
2
2
2
2
Z-1
2
N@V-O
1 + IN (j V), O
C+Z=O
Z. (N@VI-'
C+Z-l
N@V-'
N' 1
2
2
2
2
2
2
2
2
2
2
2
l=O
V-O
V· 1
N-O
6E
AO
4
8
2 7E
2 BO
3
9
}
3
3
01
3B
3lI
3F
lE
2
lO
5
12
9
1
1
1
I
1
Ver ope.-- aspeciale$
Sólo avanza eI_oI di!
programa
}
Vor ~ especialeS
carga el registro 00 códigos 00 condICión de la pila. ¡Yor operaciones especiales).
S
4
3
2
1
H
I
11
Z
V
•
e
• • • • • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
• • •
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• •
• •
• •
• •
• •
• •
• •
--- 0 - ­
• • • • • ~•
· . . .l· ·
··I®·)1·1·1·
• · · ••
•
Se pone a 1 cuando la ,nterrupción ocurre. Si a.tá Pfeviamenle a 1. se reqUl8,., una interrupcIÓn no enmucIIIIbIII perI-'D di! esIII<Io de 1IIPII1'.
Figura 10.37.
:io­
4
ti
EXTENDIOO
•WAl pone el OOS de direedones RJW y ellIuI de OOIOS en modo 00 1l\1li esIIdOII mienIJ'tI$ YMA ast8 en el .. vel baJO
(!) (1.11)
(j) (Brt 1)
la
un
de
-
INDEXADO
Instrucciones de bifurcación y salto. (Corres{s de Motora/s. /ne.)
WAl es una instrucción utilizada comúnmente. Se utiliza al final de un programa con más
frecuencia que la instrucción de alto (HLT) en la MPU 8080/8085. De acuerdo con la Figu­
ra 10.38, la instrucción WAl coloca primero el contenido de los registros del procesador en la
pila. Después introduce un ciclo de espera «de no hacer nada». La MPU 6800 continúa en este
lazo hasta que el procesador recibe una interrupción hardware (Tl8.2, NXll, REINICIALlZA­
croN).
SR
gu­
PROBLEMAS RESUELTOS
~ra­
na»
10.62.
e la
ión
igu1lp­
Todas las instrucciones de bifurcación de la MPU 6800 utilizan el modo de direcciona­
miento ___ .
Solución:
De acuerdo con la Figura lO.37. todas las instrucciones de bifurcación de la MPU 6800
utilizan el modo de direccionamiento relativo.
lay
1 de
I
de
10.63.
Todas las operaciones de bifurcación de la MPU 6800 están especificadas con instruc­
ciones de _ _ (número) bytes. El primer byte de la instrucción siempre es _ __
___ . El segundo byte de la instrucción se denomina _ _ .
www.FreeLibros.me
r
,:';¡.
t'
:~
yt•....· ~·f,:.·
.".;..
\. '.
,.~
~1·1.'.·.:'
,~
,
.
'
,­
392
r
~
'1
~
FUNDAMENTOS DE LOS MICROPROCESADORES
Solución:
De acuerdo con la Figura 10.37, todas las operaciones de bifurcación de la MPU 6800 se
especifican con instrucciones de 2 bytes. El primer byte de la instrucción siempre es el código de
op. El segundo byte de la instrucción se denomina desplazamiento (offset).
~,
~
,~
~
~
JSR, SALTA ALA SUBRUTINA:
PC
INDEXADO
{
sr
Programa principal
n AD-JSR
ntl K· desplazamienlo •
n+2 Sí¡. in¡true. principal
e>
DIDO
¡t,
[
SP
(nt IlL
Pn:crama principal
SP
Pila
1.a instrue. de la subrutina
PC
.... sP- 2
BD· ¡SR
EXTEN·
x+K
(n t 2) H
(nt2)H y(nx2)l dent2
• K• Valor Sin 5lgno de 8 Ims
PC
Pila
.... SP - 2
SP-)
ntl SH - du. de la subrutina
nt2 SL =dír. de la subrutina
O
n+3 SiB. instrue. principal
Subrutina
la inslruc. de la subrutina
SP-I
IOt))H
SP
(ntllL
(S se forma con SH ySLI
.... -Puntero de pila después de la ejecución
BIS. BIFURCA ASUBRUTINA:
PC
Programa principal
SP
e>
n+1
ntl
• K= Valor de signo de 7mIS:
Pila
... SP-2
SubrutíDl
I'C
o+l±K I.a imlrue. de la subrulina
SP-I
(n +2) H
SP
(n+2)L
0- 2se formaron
(n+ 21H y(n +21L
JMP.SALTA:
PC
PC
Programa principal
7E= JMP
n 6E.JMP
INDEXADO
{
Pn:cramaprincipal
ntl KH = Siguiente dirección
n t I K- desplazamiento
EXTENDIDO n t 2 Kl • Sí¡. dirección
XtK!
Siguiente instrucción
KI
Sil. instrucción
RTS. VUELTA DE SUllUTINA:
PC
sI
Figura 10.38.
SP
Subrutina
)9· RTS
le>
Pila
~rn
SPt I
(NH
.... Spt 2
Nl
PC
Programa principal
n Sig. inslrue. principal
Explicación de las operaciones especiales de bifurcación y salto.
www.FreeLibros.me
~
.,""IIP"1"
--------------~
EL MICROPROCESADOR MOTOROLA 6800
lNTEIIRuraoNES:
Espera
interrupción
Programa principal
Interrupción softwalt
Programa principal
ligo de
Sig. instme. principal
Inltmlpdón hardware o
inltmlpción no enmascarable (NMI)
I'rogramaprincipal
3E~WAI
3F=SWI
D+I
393
n+ 1 Sig. ínstme. principal
:;J,." .
.
,
\
Continúa el~pr<wama .J!rincipal
1I Si¡. instruc
.n t
principal
I
l;"
Pila
SP
./
.... SP-7
Contenido de los
registros de la pila
delaMPU
SW[
HDWR
INT
SP-6
Códi80 de condición
sp-s
Acumulador B
SP-4
SP-l
SP-2
SP-I
SP
Acumulador A
FFFB
J!
···1.···.····
'.'
Rt¡istro índice (XH)
Registro índice (XL!
I
(n+ IlH
I
(n+I)L
~-------"III>/
WAI
Petición
de ínltmlpción de
hardware Ciclo de espel1l
No
FFFA
FFF8
FFF9
FFFC
FFFE
FFFD
FFFF
MS
FFF9 Constante, hardware
I..S
FFFA Software
MS
~so
FFFB Software
FFFC [nstruc. no enmascarable
FFFD Instruc. no enmascarable I..S
FFFE Reananque
i
FFFF Remanque
";
la dirección de la primera
instrucción se forma
buscando 2 bytes de la
asignación realizada en
memoria.
f
Carga el vector de
inltmlpción en el
contador de prtl8I1Ima
MS
Programa de interrupción
I..S
I.a instruc. de interrup.
Nota: MS - byte de dim:ción más sígnílkativo
I..S - byte de dirección menos sígnílkauvo
1. Posición de memoria que responde a las direcciones índicadas, ésta debe
reservada para los vectores de inltmlpcíón
SEr
Figura 10.38.
·~ l· . · .
..
Asisoación 1de inltmlpción de memoria
FFF8 Constante, hardware
7
·.')"
1····.···.
,
(continuaci6n).
,
www.FreeLibros.me
,.i
4.1IJ!2::1• •- - - - - - - - -• • •- -..- ...- ...-----~~---.....;~..;.·;.;;:.=.:;!.....,,'!::o:-"'.""t.
394
FUNDAMENTOS DE LOS MICROPROCESADORES
R11, VUELTA DE INTERRUPCION:
~
s
11&
le>
38_=_RT_I_.....¡
r - 1_ _
PC
I
SP
n
Programa principal
Sig, ¡nstme. principal
SPt I Código de condición
SP+2 Acumulador B
SP+ 3 Acumulador A
SPt4 Registro índice X( H)
SPt l Registro índlce (Xd
SPt6
NH
SPt 7
NL
Figura 10.38.
10.64.
Pila
SP
Programa de interrupciÓll
i
I
j
I
te.6'7.
¡
(continuaci6n),'
Acudir a la Figura 10.39. El código de op para la operaClon «bifurca si cero»
es _ _ (hex). El contenido de la posición de memoria del programa 0028H es igual
_ _ (a la dirección, al desplazamiento), que es _ _ (-, +) 7H.
Solución:
Ver la instrucción SEQ de la tabla de la Figura 10.37. El código de'op para la operación
«bifurca si cero» de la Figura 10.39 es 27H, El contenido de la posición 0028H de la memoria de
programa es igual al desplazamiento, que es - 7H, El desplazamiento de - 7H sugiere una bifurca­
ción hacia atrás,
10.65.
Acudir a la Figura 10.39. La condición de bifurcación es _ _ (falsa, cierta) en este
problema.
Solución:
La condición de bifurcación para la instrucción SEQ es bifurcar si Z = 1 de acuerdo con la
tabla de la Figura 10.37, Por tanto, la condición de bifurcación es cierta en el problema de la Fi­
gura 10.39.
Código de
Memoria de
programa
Antes de la operación
Después de la operación
Contador de , - - - - - - - . . . L . ,
programa
0000 0000 0010 01 11
Registro de Códigos. ~e
condlclon
I 1100 0100
L--_ _ _?_,_ _ _.....11
1'.68.
Contador de programa
I
Figura 10.39.
t
,
www.FreeLibros.me
,
"'·!
-
('d!!k! i!. ,ÜIJ.ÚLh ¡a~jAJ411
s
...
7
395
EL MICROPROCESAOOR MOTOROLA 6800
10.66.
Acudir a la Figura 10.39. El contenido del contador de programa después de la opera­
ción «bifurca si cero» será ___ (hex).
g
~
Solución:
La condición de bifurcación es verdadera en la Figura 10.39. El desplazamiento -7H dicta
una bifurcación hacia atrás. Por tanto, el. contenido del contador de programa después de la
operación «bifurca si cero» de la Figura 10.39 será 0022H [(0027 + 2) -7 0022H].
Acudir a la Figura 10.40. La operación de «saltar a subrutina» en este problema está
especificada por el código de op _ _ (hex). Esta operación utiliza direccionamien­
to _ _ .
10.67.
I
Solución:
Ver la instrucción JSR de la Figura 10.37. La operación de «saltar a subrutina» de la Figu­
ra 10.40 está especificada por el código de op BDH. Esta operación utiliza direccionamiento ex­
tendido.
Código de
operación
si cero»
( es igual
0006
t
0007
\1emoria de programa
operación
emona de
la bifurca­
1) en este
BDH
00000000
01000000
0009
Memoria de datos
0040
1111 1000
0041
00000000
Pila
!
Pila
03FD
rdo con la
la de la Fí­
Puntero de pila
03FFH
Puntero de pila
t -_ _t -03FD
_ _-l
?
03FE
03FE
?
1-+ '------'------
+-
I
?
03FF
03FF
Antes de la operaciÓD
Después de la operación
JSR
Contador de programa [ 0000 0000 0000 01 10
I
""'-_ _ _?_ _ _.... Contador de programa
Figura 10.40.
10.68.
programa
Acudir a la Figura 10.40. Listar los contenidos del puntero de pila y las posiciones de la
pila 03FEH y 03FFH después de la operación JSR.
Solución:
Ver los detalles de «JSR extendido» en la Figura 10.38. Después de la operación <<.JSR exten­
dido» mostrada en la Figura 10040, los contenidos son:
Puntero de pila = 03FDH
Posición de pila 03FEH OOOOOOOO (PCH )
Posición de pila 03FFH = 00001001 (peL ) (PC + 3)
www.FreeLibros.me
t
396
FUNDAMENTOS DE LOS MICROPROCESADORES
10.69.
."".
Acudir a la Figura 10.40. El contenido del contador de programa después de la opera­
ción JSR será _ _ (hex). Esta es la dirección de _ _ .
Solución:
Ver los detalles de «.JSR extendido)) de la Figura 10.38. El contenido del contador de pro­
grama de la Figura 10.40 después de la of)eración JSR será F800H. Esta es la dirección de la
subrutina.
10.70.
Acudir a la Figura 10.41. El código de op para la instrucción SWI e s _ (hex). SWI
significa la operación ______ .
Solución:
Ver la instrucción SWI de la Figura 10.37. El código de op para la instrucción SWI de la
Figura 10.41 es 3FH. SWI significa operación de interrupción software.
Código de
operación
0013
Memoria de programa
3FH
0014
,
Pila
Puntero de pila
I 03FFH
­
03F9
! 03FA
03FB
03FC
03FD
03FE
03FF
?
?
?
?
?
ROM
FFFA
11111100
FFFB
00000000
.7
?
Antes de la operación
~-,
f¡
Registro de códigos de condición
1100 0000
Acumulador B
1111 0000
Acumulador A
0000 1 111
Registro índice
0000 0000 00 11 0000
Contador de programa
0000 0000 000 1 00 11
"'73.
Puntero de pila
Pila
I
03F8
03F9
03FA
03FB
03FC
03FD
03FE
03FF
?
I
I
'------'
Figura 10.41.
www.FreeLibros.me
Contador de programa
J
"1
Después de la operación
Registro de códigos
'--__
7 _ - - l . de condición
,
10.9. IN
DE
.
.,
-as 11IStf'Uc1
::::luestran e
:::anipulacl.
.:onvenienC'l
das en la F
recordando
-~
I,
1
opera-
#tA4#·\<
EL MICROPROCESADOR MOTOROLA' 6800
10.71.
397
Acudir a la Figura 10.41. Listar el contenido del puntero de pila y pila después de la
operación de interrupción software.
Solución:
Después de la operación SWI de la Figura 10.41. el contenido del puntero de pila es 03F8H, y
el contenido de la pila es:
Ir de pro­
:ión de la
Posición de pila (hex)
03F9
03FA
03FB
03FC
03FD
03FE
03FF
~
ex). SWI
•
SWI de la
10.72.
11000000
11100000
00001111
oooooooo
00110000
00000000
00010100
Contenido
(Registro de códigos de condición)
(Acumulador B)
(Acumulador A)
(Registro índice - byte superior)
(Registro índice byte inferior)
(pe - byte superior)
(pe - byte inferior) (pe + 1)
Acudir a la Figura 10.41. El contenido del registro de código de condidón después de la
operación SWI será
(8 bits).
,
Solución:
Ver la secuencia de interrupción software mostrada en la Figura 10.38. El señalizador 1 estará
a 1. Por tanto, el contenido del registro de código de condición de la Figura 10.41 después de la
operación SWI será 110 10000.
10.73.
Acudir a la Figura 10.41. El contenido del contador de programa después de la opera­
ción SWI será
(hex). Esta dirección se denomina interrupción software _ _ y
se encontró en las posiciones _ _ (hex) y _ _ (hex) de la ROM.
Solución:
Ver la secuencia de interrupciones software mostradas en la Figura 10.38. El contenido del
contador de programa después de la operación SWI será FCooH. Esta dirección es llamada vector
de interrupción software y se encuentra en las posiciones FFFAH Y FFFBH de la ROM. Estas son
las posiciones estándar para encontrar el vector de interrupción software en un sistema 6800.
ndóD
~ de códigos
ldíción
Ior de programa
10.9. INSTRUCCIONES DEL REGISTRO DE CODIGOS
DE CONDICION DEL 6800
Las instrucciones del registro de códigos de condición para el microprocesador Motorola 6800 se
muestran en la Figura 1O.42a. Estas instrucciones están disponibles para que el usuario realice
manipulaciones directas de los señalizadores del registro de códigos de condición (CCR). Por
conveniencia, la posición y nombres de cada uno de los señalizadores en el CCR están reproduci­
das en la Figura 1O.42b. Algunos estudiantes recuerdan el orden de los señalizado res del 6800
recordando las palabras «HINZ Vitamina ü>.
www.FreeLibros.me
, j'
",
398
ruNDAMENTOSDE LOS MICROPROCESADORES
REGISTRO DE CODIGOS
DE CONDICION
OPEIIACIOIIES
~
Borra arru1r8
Borra mase. de internJp.
Borra 0Yt<II0w
Pone a 1 arrastre
Pone a 1 mase. de ilmImJp.
Pone overflow
Acumulador A... CCR
eLe
CU
CLY
SEC
SEI
SEV
fAP
TPA
CCR ... A
o,
oc
DE
OA
00
OF
08
06
01
-
#
OPERACION lQOI.!AtIA
2
2
2
S
11
H
e
1'.-".
o-e
•
0-1
O-Y
I-e
1-1
I-V
A-eeR
CCR-A
2
2
2
2
2
•s
•
•
(j) (Todos) ponen a 1 según el ~ ecumuladof A.
a.oLOS DE CODIGOS DE CONDICIOII
LEYENDA
OP
t
Código ele operación (heKadecima~;
Número ele ciclos de la MPU;
Número ele byies del programa;
Más aritmético;
Menos aritmético;
M..
+
®
M
OR inclusiva booleana;
OR eKdUsi';a
Complemento ele M;
booteana;
Transfiere a:
O
00
B~·O
Byte. O;
AND booleano;
~ de la posición de memoria apuntada por 01 puntero ele pila;
H
I
N
Z
V
C
R
Reinicialización siempre
S
Pone al
l
•
(a)
Arrastre intermedio del bit 3;
Máscara de interrupción;
Negativo (M de signo)
Cero (byte):
Overflow, complemento a 2
Arrastre del bit 7:
•
SÍeITIpre
Test y pone a , s< es verdad. borra ele otra larma
No se alecta
Instrucciones del registro de código de condición
".-5.
Registro de códigos de condición
.1.76.
' - - - - Señalízador de arrastre/préstamo
' - - - - - - Señalizador de overflow de complemento a 2
1
'*
Señalizador de cero
Señalizador negativo
11.77.
1
Señalizador de máscara de interrupción
1
Señalizador de arrastre intermedio
(b)
~_1
Señalizadores en el registro de código de condición
11
Figura 10.42.
:!!
(Cortesfa de Motorola, Inc.).
.~
www.FreeLibros.me
11111'
.*'
rt
'\
EL MICROPROCESADOR MOTOROLA 6800
399
PROBLEMAS RESUELTOS
10.74.
Acudir a la Figura 10.43. La operación T AP transfiere el contenido del acumulador
_ _ (A. B) al _ _ _ _ _ _ .
Solución:
Ver la instrucción TAP de la Figura l0.42a. La operación TAP transfiere el contenido del
acumulador A al registro de códigos de condición.
Acumulador A
Después de la operación
Antes de la operación
Registro de códi~?S
de condlclon
I 1100 0000
?
Registro de códigos
de condición
Figura 10.43.
10.75.
Acudir a la Figura 10.43. Listar las condiciones de los seftalizadores del CCR después de
la operación TAP.
Solución:
Las condiciones de los señalizadores después de la operación T AP en la Figura 10.43 son:
Sefializador N = O
Sefializador V = 1
Señalizador H = O
Señalizador Z - l
Sefializador e - I
Sefializador 1 = 1
10.76.
Solución:
Ver la Figura 1O.42a. Los nemotécnicos utilizados para poner a I ya O el señalizador de la
máscara de interrupción (1) son SEI y CL!.
plemento a 2
10.77.
lU¡:x:ión
s
=-
Listar los nemotécnicos de las instrucciones que se utilizan para poner a 1 y a O el
sei'lalizador de la máscara de interrupción.
La instrucción «borrar arrastre» utiliza el nemotécnico _ _ • el código de op _ _
(hex), direccionamiento ___ y _ _ (número) de ciclos de reloj para su ejecución.
Pone a _ _ (O, 1) el sei'lalizador de _ _ en el _ _ _ _ _ _ .
Solución:
Ver la instrucción «borrar arrastre» de la Figura 10.42. La instrucción «borrar arrastre» utiliza
el nemotécnico CLC, el código de op OCH y direccionamiento implícito (o inherente) y dos ciclos
de reloj para su ejecución. Pone a O el señalizador e en el registro de códigos de condición.
www.FreeLibros.me
-­
2
••
\
400
FUNDAMENTOS DE LOS MICROPROCESADORES
PROBLEMAS SUPLEMENTARIOS
10.88.
Solamente es enmascarable la interrupción hardware _ _ (IRQ, NMI, REINICIALlZACION).
Res. IRQ.
10.89.
La secuencia de interrupción áe reinicialización detallada en la Figura 10.80 hace que el seil:aliza­
dOT _ _ se ponga a 1, y que el vector de interrupción de reinicialización se encuentre en las
posiciones de memoria _ _ (hex) y _ _ (hex).
Res. 1, FFFEH, FFFFH.
,......
LI
bi
~
.1.J01. Al
JI!
:~
www.FreeLibros.me
~
'l.
•
se
di
EL MICROPROCESADOR MOTOROLA 6800
10.90.
10.91.
lalimenta.
l
realizar la
~
salidas), y
Listar los seis modos de direccionamiento utilizados por las instrucciones de la MPU 6800.
inherente (o implícito), inmediato, directo, extendido, indexado y relativo.
10.92.
En el direccionamiento inmediato, el operando se encuentra en la memoria de _ _ (datos, pro­
grama).
Res. programa.
10.93.
Las operaciones de direccionamiento directo del microprocesador 6800 se especifican por medio
de instrucciones de _ _ (número) bytes.
Res. 2.
10.94.
Las operaciones de direccionamiento extendido del microprocesador 6800 se especifican por me­
dio de instrucciones de _ _ (número) bytes.
~
,
Res.
nivel BAJO,
l
~
igual que
leCiales l N Y
3.
10.95.
En el direccionamiento indexado del 6800, la dirección del operando se calcula sumando el valor
del _ _ encontrado en el segundo byte de la instrucción al contenido del registro _ _ .
Res. desplazamiento, índice.
10.96.
En el direccionamiento relativo del 6800, la dirección de destino de la bifurcación se calcula
sumando _ _ (número) al contenido del contador de programa y sumando después el valor
del _ _ de la memoria del programa.
Res. 2, desplazamiento.
10.97.
En el direccionamiento relativo, un desplazamiento de 11111100 indica una bifurcación _ _._
(hacia atrás, hacia adelante).
Res. hacia atrás (MSB - 1).
10.98.
La instrucción ANDA de la Figura 10.26 puede ser utilizada en uno de _ _ (número) modos
de direccionamiento. La instrucción AND A realiza la operación AND del contenido de
_ _ _ _ con el contenido de una posición _ _ . El resultado de la operación se coloca
en _ _ _ _ .
le localizada
. ROM) está
Res, cuatro, acumulador A, de memoria (MJ, acumulador A.
(más altas,
el señaliza­
uentre en las
te
De acuerdo con la Figura 10.9, las posiciones de la ROM FFF8H YFFF9H en los sistemas basados
en el 6800 están siempre reservadas para el _ _ _ _ _ _ .
Res. vector de petición de interrupción (dirección).
Res
~
HALTestá
401
10.99.
Aunque todas las instrucciones de bifurcación utilizan direccionamiento _
de salto utilizan direccionamiento _ _ y _ _ •
Res. relativo, indexado, extendido.
• las instrucciones
10.100. La instrucción COM B de la Figura 10.26 hace que el contenido del acumulador _ _ sea cam­
biado a su forma en complemento a _ _ • mientras que la instrucción NEG B hace que el
contenido de _ _ _ _ se cambie a su forma en _ _ _ _ .
Res.
B, 1, acumulador B, complemento a 2.
10.101. Acudir a la Figura 10.44. El código de op para la instrucción ROL A es _ _ (hex).
Res. 49H.
www.FreeLibros.me
m
• a;
402
FUNDAMENTOS DE LOS MICROPROCESADORES
.....
Código de
Memoria de programa
Acumulador A
Acumulador A
Después de la operación
Registro de códigos
de condición
Registro de códigos
de condición
?
....,.
......
J
ti
~
1
•
A
Al
o
..
'.
Figura 1 0.44.
10.102. Acudir a la Figura 10.44. El contenido del acumulador A después de la operación ROL A se­
rá _ _ (8 bits).
Res. 00000010.
S
S
*1
10.103. Acudir a la Figura 10.44. El contenido del registro de códigos de condición después de la operación
ROLA será _ _ \S bitl!o).
Res. 1\00001\.
10.104. Acudir a la Pigura 10.45. El código de op para la instrucción SBA _ _ (hex). Esta instrucción de
l byte utiliza direccionamiento _ _ .
Res. IOH, inherente (o implícito).
Código de
operación
Memoria de programa
l'
Acumulador A
Acumulador A
.."
.
M
~
~
••
Antes de la operación
Re
Acumulador B
Acumulador B
S,
DI
Registro de códigos
de condición
?
Registro de códigos
de condición
Figura 10.45.
Re
La
des
Re!.
10.105. Acudir a la Figura 10.45. El contenido del acumulador A después de la operación SBA es _ _
(8 bits).
Res. 11111111 (representación de -1 en complemento a 2).
www.FreeLibros.me
"_ip
,;~
:1:1·
".113. Aa
Re
•
EL MICROPROCESADOR MOTOROLA 6800
403
10.106. Acudir a la Figura 10.45. El contenido de CCR después de la operación «restar acumuladores» es.
de _ _ (8 bits).
Res. 1100 100 1 (cambiados sefializadores N y C).
10.107. La instrucción de «vuelta de subrutina» está especificada por el código de op _ _ (hex) o por el
nemotécnico _ _ . Esta instrucción se utiliza al final de todas las
Res. 39H, RTS, subrutinas.
I
10.108. Acudir a la Figura 10.46. La operación «bifurca si más» está especificada por el código de op 2AH
o por el nemotécnico _ _ . La operación de bifurcación utiliza direccionamiento _ _ .
Res. BPL, relativo.
/
I
Código de
operación
~ ~or
de programa
0010
0011
~ de códigos de condición
\r-----,
1 . . . 1_ _ _
~
Después de la operación
. : ntador de programa
?
0000 0000 000 I 0000
Contador de programa
Figura 10.46.
I
11.109. Acudir a la Figura 10.46. La condición «bifurca si más» es _ _ (falsa, cierta), según los señaliza­
dores de condición.
Res. cierta (N - O).
.1.110. Acudir a la Figura 10.46. El contenido del contador de programa después de la operación «bifurca
si más» _ _ (hex).
Res. 0019H [(0010+2)+1=0019H].
~
L
tuno
El desplazamiento en la instrucción indexada es un valor _ _ de 8 bits. Sin embargo, el despla­
zamiento en la instrucción relativa es un valor con signo de
(número) bits.
Res. sin signo, 1.
•.112. La instrucción WAl de la Figura 10.38 introduce todos los registros del procesador en la _ _ Y
después entra en el ciclo de _ _ .
Res. pila, espera.
'8.113. Acudir a la Figura 10.41. La instrucción eL! se especifica por el código de op _ _ (hex).
Res. OEH.
www.FreeLibros.me
404
I
FUNDAMENTOS DE LOS MICROPROCESADORES
Código de
operación
'~
M.mona '" """""'"
Anta d. l. o","""'" .
Registro de códigos
de condición
1101
ooooil~
~
CLI
0....... de la """"'"
.I.. . . :.--?---.
Registro de códigos
de condición
Figura 10.47.
10.114. Acudir a la Figura 10.47. La instrucción CLl especifica la operación de «b,)rrar _ _ -----».
Pone a _ _ (0, 1) el señalizador 1 del registro de códigos de condición.
Res. máscara de interrupción, O.
10.115. Acudir a la Figura 10.47. El contenido del registro de códigos de condición después de la operación
CLl es _ _ (8 bits).
Res. 11000000 (señalizador 1 borrado).
i.
. __
¡l· 11
www.FreeLibros.me
Download