Fundamentos de Los Microprocesadores (Schaum) 2da Edicion Roger L. Tokheim

February 1, 2018 | Author: Milton_Huilipan | Category: Microprocessor, Microcomputers, Instruction Set, Bit, Computer Engineering
Share Embed Donate


Short Description

Descripción: DDDDDDDDDD...

Description

SIGUENOS EN:

LIBROS UNIVERISTARIOS Y SOLUCIONARIOS DE MUCHOS DE ESTOS LIBROS GRATIS EN DESCARGA DIRECTA VISITANOS PARA DESARGALOS GRATIS.

http://librosysolucionarios.net

'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"

.-

.

,.

.

~

http://librosysolucionarios.net ~ '2m

;

S

mí e



-

DeS~ '(f"O 1/0

. A~

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 [

(

..

\

..:'",

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

""'Í-­

21 din 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

Simbólico

Código de op.

t

Código de op.

::ción SACAR

Si el seilalizador de O- 1. entonces (I'C) .... (dirección)

~. de roto superio¡

tión OUT en la

Código de op.

SaIIlI a Loe aa si no es O Inmediato

lNZ

C2

3

Si el seIlalizador de O• O, entonces (I'C) .... (dirección)

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

,

Salta a LOC aa si no se coloca el señalizador de arrastre

Imnediato

JC

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 arrastre ­ 1, entonces (I'C) (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

http://librosysolucionarios.net

: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

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

2040H

; 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

; Detiene la MPU después de almacenar (A) ",••,"~",



STOREL

~"¡;,"

; Transfiere el contenido del registro L al acumulador

MOV

A,L

STA

2040H

,i

~

(b)

l

; Compara (A) y (L) Señalizador CY = 1 si A < L

STORE L

STA

HLT

".~ .

Comentarios

MVl

r ~

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

; Compara (A) y (L) Señalízador CY = 1 si 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.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;

6.85. 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.

http://librosysolucionarios.net

.'

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 ___ ( [)

F

.,'"

10

:A &5

Multiplicando Multiplicador Producto

S x 3 = 15 10

!O

O ,~

20

El

C'9

:>roblema

-

Multiplicador - 2 Producto

Multiplicador - 3 Producto

OE+OE = JC l6

5 + 5 + 5 .. J5 10

I Multiplicando

'.

1

1

Multiplicando

"',"} ,, (a)

Multiplicación decimal

(b) Método de multiplicación

fe)

de sumas repetidas

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

http://librosysolucionarios.net

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.

http://librosysolucionarios.net

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.

http://librosysolucionarios.net

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:

t

l. 2.

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.

6.100. Acwl

posic

Soluci

lJ¡

gura 6

6.101. Elpn el PUl

Solud

EJI

6.102. Si el So MPL"

SoJuci1i

Sic

busq~

6.103. 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. Solución:

, Ce{

6.106. En la su registro. tro __

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.

http://librosysolucionarios.net

".Ia 41,'::;U.lIII'

.. 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.

http://librosysolucionarios.net

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. Solución: En la subrutina de multiplicación, el contenido del registro L es decrementado hasta OOH. 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.

6.117. Elrq

Res.

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.

Co.

6.118.

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. Una versión en lenguaje ensamblador, a veces, se denomina programa _ _ (objeto, fuente). Res. fuente. 6.112. 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.

."

http://librosysolucionarios.net

'dial

"li

!;

PROORAMACION DEL MICROPROCESADOR

207

les decrementa­

6.117. El registro de 16 bits etiquetac:fo PC en la Figura 6.3 es el _ _' _ _ . Res. contador de programa.

lo hasta OOH.

6.118. Como regla general, las operaciones aritméticas del microprocesador _ _ (afectan, no afectan) a los señalizadores.

Res. afectan.

utilizados co­

lma principal y rutina.

~ dos como punte­ na de multiplica­

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.

http://librosysolucionarios.net

208

6.125. Después de la operación SUB H de la Figura 6.59, el sefializador de arrastre (-

.'.



'~-

- -.

- '•• ­

,.,.

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



http://librosysolucionarios.net

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

http://librosysolucionarios.net

~ 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...... rlfOII

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

http://librosysolucionarios.net

.~

•.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

http://librosysolucionarios.net

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

http://librosysolucionarios.net

.-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

Jii

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

http://librosysolucionarios.net 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).

http://librosysolucionarios.net

~~

'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 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 Ñgura 9.1.

321

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 }

(continuación).

http://librosysolucionarios.net

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).

http://librosysolucionarios.net

, 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.

http://librosysolucionarios.net

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

I

AC

I

p

I

I

Cy

L

I

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

http://librosysolucionarios.net

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~

del resulta~o

(

.0

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

+ )

Almacena el complemento a dos

Fin del programa

Alto

(h) 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 /

http://librosysolucionarios.net

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.

http://librosysolucionarios.net

,.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,

f

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,

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.

http://librosysolucionarios.net

,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. 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.

I'j

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,

http://librosysolucionarios.net

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) 2000 2001

2002 2003 2004 2005 2006

2007

Contenido (hex) BO 01 E6

OF 32 40 20 76

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.

http://librosysolucionarios.net



¡

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}.

http://librosysolucionarios.net

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, ADDB. 9.36. 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.

.. ~

-

'-40t0

! ftICI

t'.SÜ:

:mq

Res. Etiqueta

....

Código de op LXI MOV ANI MOV INX MOV ANI ADD DAA INX MOV HLT

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

9.40. 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. ..

http://librosysolucionarios.net

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

http://librosysolucionarios.net

,

"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

http://librosysolucionarios.net

...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

http://librosysolucionarios.net



-

(.....:: 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

I

AO Al A2 A3 A4 AS A6 A7 A8 A9 AIO All

9 10 MC6800 11 12 13 14 15 16 17 18 19 20

(a)

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

R/W DO DI D2 D3 D4 D5 D6 D7 A15 AI4 AI3

~

-~ :"1.:­

~

~

A12

V.

Diagrama de patillas de la MPU 6800

Descripción 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

,

http://librosysolucionarios.net

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.

http://librosysolucionarios.net



,

:;:::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­

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 &

http://librosysolucionarios.net

;$

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).

http://librosysolucionarios.net

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

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

lemento Inher~

Inhere Inmediato Directo Indexado Extendido Inmediato Directo Indexado Extendido Inherente Inherente Inherente Inherente Indexado Extendido

379

a 2 de B -+ B 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).

http://librosysolucionarios.net

~

~

\

, 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).

http://librosysolucionarios.net

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,

http://librosysolucionarios.net

.\

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. 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 _ _ . U

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

1

Figura 10.28.

http://librosysolucionarios.net

?

0080

?

0081

?

0082

Memoria de datos

Eire! está

J

bade

~

J

I D'luJador B

la operación

EL MICROPROCESADoR MOTOROLA 6800

383

10.46. 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

l·el código de

_.

l

en la Figu­ mento exten­

de programa 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 \

http://librosysolucionarios.net

•••

\

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

c.va­ OR._

""""""".. _

E,~

OtspIaztmientO drQIIt ata ¡zQ\ll&f'da

-

1loopII''''''''O_.''

Delpl&zamilnto. la ilquierda arltJMtiCO

OtspIazam18f1to 8 la . . cM, IritméhCO

--

a 11 dere-

.... lógiCO

-"""-

A001l"""-

Tr_""'_

,.Cero._

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

. .. ca



2

2

2

ti 2 lA 2 CA 2

2 II

2 fl

3

J

1

J

2 2 O.

1

H

A.M.C

8·M.C"'8 A' M-A

4

J J

1

2 1J I

J

2 Al 5 2

3

3 1

IJ

1

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

••

• •

ASR

..

SUBe SBA

ca

saCA S8ca TAl TIA

n C2

11 01



1

2 9Q 2 DO

4 1 1

2 2

2 12 2 DI

1 3

2

7t

10 lO 11

2 2

.. le

1

I

11



¡

1

2

l.

I

3

ti I

2 11

I 5 I

1 1 1

4

l

S

10 1

15T

Código do _ _ {1le'IIdecimaI): _ do cídOS do,. MPU: Numero de bytes de program&; Más8littnitiéo:

~ do la posIdón ......1Ida por 01_ do pII;

l

2 10

4 '3





1 1

2

2 2

2 2

1 1 1

1 1

,

l 'A 1-1 00

00 - A-A 00 - a-8la ...... _ _ do CclrMorIo

M-.

car_

Jl

••• •

1

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

¡

2 I

I 1

3'40 10

I

1

2

1

11

n

1

16 11

=} c::a - iJiiitID:l C

I

boQeInI

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

8 +"-8 A'Msr,SP-I-$I' 8'Msp,Sp-I-sr sr-, "$I',Msp-A sr·l--SP,Msp--.B

1

,

1 I

A+M-A

1 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

ti ,tI .... M A t l-A B +1 - 8

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:



.

M-A .. '8

JI

11

2 El

Leyenda:

i

2

31



TSTA

....

2

J J

1

I Bl 2 Fl

1

3

&

2 A2 5

1

DE CONIlICION

••

00 -A 00 -a A M a-II A,a

l

!I

S S

I

53

SC

I

Fl 2 lO 2 fO

1

2

11

SA

1

I

2

1

J

~A

11-11

54

TST' OP

I1

J J J

B ·A

OO-M

J

2 11

Al 2 El 2 AS 1 EO

,,*

a' M ·a A'M a·M 4f SF

1

I

", .. M-A

I

J J

I

.

ASIlA ASRI LSR LSRA LSRI STAA STAI SUlA

2

,

2

J J J

J

~

B'" M +8

la

31

1

"



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

EDRA EORa 'NC INCA INca LDAA LOA'

ORAA ORAa !'$HA !'$HI PULA 'UL8 ROL ROLA ROU ROA RORA RORe ASL ASLA ASLI

;

2 99 1 O, 2 94 2 O.

lO

OEta

I~

T..

IS cs

DEC DeCA

00_

I

O,

Suma

DtspJaI~O

_

1EGlS11IO DI CODIOOS

OI'I!AACIOIIIIQOI.!ANAIAAIl'1IETlCA

lit



http://librosysolucionarios.net

.....

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

..

!.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.

http://librosysolucionarios.net

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

}

Ver ope.-- aspeciale$

3 3 01 3B 3lI

3F lE

2 lO 5 12 9

1 1 1

I

1

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

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 ,

http://librosysolucionarios.net

,

"'·!

-

s

('d!!k! i!. ,ÜIJ.ÚLh ¡a~jAJ411

...

7

395

EL MICROPROCESAOOR MOTOROLA 6800

g

~

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).

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].

10.67. 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 _ _ .

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. 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.

programa

Solución: Ver los detalles de «JSR extendido» en la Figura 10.38. Después de la operación
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF