Sei sulla pagina 1di 93

Conjunto de instrucciones del 8085

A1 Apndice A1 Conjunto de instrucciones del 8085


A1.1. Introducci n

Aunque el conjunto de instrucciones puede encontrarse en cualquier libro que trate este tema especficamente, en este apartado se muestra un "diccionario" de las mismas. La descripcin se lista funcionalmente para una localizacin ms inmediata y todas estn descritas de forma detallada. Si desea hacer una b squeda alfab!tica de las instrucciones puede usar la ayuda incorporada en el pro"rama simulador.

Simulador del microprocesador 8085

A1.2.

Instrucciones del bit de acarreo

A continuacin se describen las instrucciones que operan directamente sobre el bit de acarreo. #stas instrucciones utilizan un byte en la forma si"uiente$

1 0 para STC1 para CMC

A1.2.1.

CM C

Complementar acarreo

Instruccin Bits afectados Direccionamiento


Descripcin

CMC CY

Si el bit de acarreo es %, se pone a &. Si es un &, se pone a %.


Formato

A1.2.2.

ST C

Activar acarreo

Instruccin Bits afectados Direccionamiento

STC CY

Conjunto de instrucciones del 8085 Descripcin

#l bit de acarreo se pone a &.


Formato

Simulador del microprocesador 8085

A1.3.

Instrucciones de un registro

A continuacin se describen las instrucciones que operan sobre un solo re"istro o posicin de memoria. Si se especifica una referencia a memoria, la direccin de la misma 'iene dada por el contenido de los re"istros ( y L, donde el re"istro ( contiene los ocho bits ms si"nificati'os de la direccin, y el re"istro L los restantes.

A1.3.1.

I !

Incrementar registro o memoria

Instruccin Bits afectados Direccionamiento


Descripcin

INR reg Z, S, P, AC Registro indirecto

#l contenido del re"istro o posicin de memoria especificados se incrementa en una unidad.


Formato

REGISTRO

0 000 para registro B001 para registro C010 para registro D011 para registro E100 para registro H101 para registro L110 para MEMORIA111 para ACUMULADOR

Conjunto de instrucciones del 8085

"#emplo

Si el re"istro A contiene )*(, la instruccin +,- A har que este re"istro conten"a la cantidad ))(.

A1.3.2.

DC !

Decrementa registro o memoria

Instruccin Bits afectados Direccionamiento


Descripcin

DCR reg Z, S, P, AC Registro

#l contenido del re"istro o posicin de memoria especificados se decrementa en una unidad.


Formato

REGISTRO

1 000 para registro B001 para registro C010 para registro D011 para registro E100 para registro H101 para registro L110 para MEMORIA111 para ACUMULADOR

Simulador del microprocesador 8085

"#emplo

Si el re"istro A contiene ))(, la instruccin ./- A har que este re"istro conten"a la cantidad )*(. A1.3.3. CM A Complementar acumulador

Instruccin Bits afectados Direccionamiento


Descripcin

CMA

/ada uno de los bits del acumulador se complementa 0operacin denominada a uno1.
Formato

A1.3.$.

DA A

A#uste decimal del acumulador

Instruccin Bits afectados Direccionamiento


Descripcin

DAA Z, S, P, CY, AC Registro

#l n mero he2adecimal de * bits contenido en el acumulador se ajusta como dos d"itos de 3 bits codificados en binario decimal, se" n el proceso si"uiente$

Conjunto de instrucciones del 8085

0&1.Si los cuatro bits menos si"nificati'os del acumulador representan un n mero mayor que ), o si el bit de acarreo au2iliar es i"ual a uno, el acumulador se incrementa en seis unidades. Si no se presentan tales condiciones, el contenido del acumulador no 'ara. 041.Si los cuatro bits ms si"nificati'os del acumulador representan ahora un n mero mayor que ), o si el bit de acarreo es uno, los cuatro bits ms si"nificati'os se incrementan en seis unidades. Asimismo, si no tienen lu"ar las circunstancias e2puestas, el contenido del acumulador no se incrementa. Si hay acarreo de los cuatro bits menos si"nificati'os durante el paso 0&1, el bit de acarreo au2iliar se pone a &5 si no lo hay, se pone a %. 6or otra parte, si hay acarreo de los cuatro bits ms si"nificati'os durante el paso 041, se acti'ar el bit de acarreo, poni!ndose a cero si no se produce acarreo.
Formato

0
ota

#sta instruccin se utiliza en las operaciones de suma de n meros decimales. #s la nica instruccin cuya operacin depende del bit de acarreo au2iliar.
"#emplo

Supon"amos que queremos realizar una suma decimal de dos n meros 03% 7 *%1. Ambos bits de acarreo estn a cero. La secuencia de instrucciones podra ser$ 0&1.89+ :,*%( 041.89+ A,3%( 0<1.A.. : 5 Acumulador ; 3%( 5 Acumulador ; 3%( 7 *%( ; /%(

Simulador del microprocesador 8085

031..AA

5 Acumulador ; 4%( 5 :it de acarreo ; &

La instruccin .AA opera de la si"uiente forma$ &. /omo el contenido de los bits =% > <? del acumulador es menor que ) y el bit de acarreo au2iliar es cero, el contenido del acumulador no 'ara. 4. /omo los 3 bits ms si"nificati'os del acumulador representan un n mero mayor que ), estos 3 bits se incrementan en @ unidades, poniendo a uno el bit de acarreo. Acumulador #$ Nue%o acumulador C ! $ ! & ! " " " " " CY ; CY ; CY ; "

Conjunto de instrucciones del 8085

A1.$.

Instruccin %& Instruccin Bits afectados Direccionamiento N'P

Descripcin

,o se realiza nin"una operacin.


Formato

10

Simulador del microprocesador 8085

A1.'.

Instrucciones de trans(erencia de datos

#sta serie de instrucciones transfieren datos entre los re"istros, la memoria y el acumulador. Acupan un byte en la forma si"uiente$

A1.'.1.

M% )

Movimiento

Instruccin Bits afectados Direccionamiento


Descripcin

M'( reg, reg Registro o registro indirecto

6odemos distin"uir < casos$ 0A1. 0:1. 0/1. 0A1. Bransferencia entre re"istros 0direccionamiento re"istro1. Bransferencia desde la memoria 0direccionamiento re"istro indirecto1. Bransferencia a la memoria 0direccionamiento re"istro indirecto1. 8A9 -&, -4 #l contenido del re"istro -4 es transferido al re"istro -&. -& y -4 pueden ser los re"istros :, /, ., #, (, L o el acumulador A.

Conjunto de instrucciones del 8085

11

0:1.

8A9 -, 8 #l contenido de la direccin de memoria, cuya direccin est en los re"istros (CL, es transferido al re"istro -. - puede ser cualquiera de los re"istros A, :, /, ., #, ( o L.

0/1.

8A9 8, #l contenido del re"istro - es transferido a la direccin de memoria indicada por los re"istros (CL.

12

Simulador del microprocesador 8085

Formato

Registro

Registro 000 para registro B001 para registro C010 para registro D011 para registro E100 para registro H101 para registro L110 para MEMORIA111 para ACUMULADOR

"#emplos

1. Supon"amos que el re"istro : contiene %%( y el re"istro / contiene <%(. La instruccin 8A9 :,/ almacenar <%( en el re"istro :. 2. Supon"amos que el re"istro ( contiene %%( y el re"istro L contiene <%(. La instruccin 8A9 8, A almacenar el contenido del acumulador en la posicin de memoria %%<%(.

A1.'.2.

STA *

Almacenar el contenido del acumulador

Instruccin Bits afectados

STA) r*

Conjunto de instrucciones del 8085

13

Direccionamiento
Descripcin

Registro indirecto

#l contenido del acumulador se almacena en la posicin de memoria especificada por los re"istros : y /, o los re"istros . y #.
Formato

0 Par de registros pr (BD o DE

"#emplo

Si el re"istro : contiene <D( y el re"istro / contiene &@(, la instruccin SBAE : almacenar el contenido del acumulador en la posicin de memoria <D&@(.

A1.'.3.

+DA *

Cargar el acumulador

Instruccin Bits afectados Direccionamiento


Descripcin

+DA) r* Registro indirecto

#l contenido de la posicin de memoria especificada por los re"istros : y /, o los re"istros . y #, reemplaza el contenido del acumulador.

14

Simulador del microprocesador 8085

Formato

0 Par de registros pr (BD o DE

"#emplo

Si el re"istro . contiene <D( y el re"istro # contiene &@(, la instruccin L.AE . car"ar en el acumulador el contenido de la posicin de memoria <D&@(.

Conjunto de instrucciones del 8085

15

A1.,.

Instrucciones de registro o memoria acumulador

A continuacin 'amos a 'er las instrucciones que operan con el contenido del acumulador y el de uno de los re"istros o posicin de memoria. #stas instrucciones ocupan un byte en la forma si"uiente$

OPERACI!"

REGISTRO 000 para registro B001 para registro C010 para registro D011 para registro E100 para registro H101 para registro L110 para MEMORIA111 para ACUMULADOR

000 para ADD001 para ADC010 para SUB011 para SBB100 para A"A101 para XRA110 para ORA111 para CMP

La instruccin opera sobre el contenido del acumulador, con la cantidad definida por el re"istro especificado por -#F+SB-A. Si se especifica una referencia a memoria, la cantidad utilizada por la instruccin es la correspondiente a la posicin de memoria determinada por los re"istros ( y L, en los que el re"istro ( "uarda los * bits ms si"nificati'os, y el re"istro L, los * restantes. Banto el contenido del re"istro como de la posicin de memoria no 'aran al finalizar la instruccin, "uardndose el resultado en el acumulador.

A1.,.1.

ADD

Sumar registro o memoria al acumulador Instruccin Bits afectados Direccionamiento ADD reg Z, S, P, CY, AC Registro

16

Simulador del microprocesador 8085

Descripcin

#l contenido del re"istro o posicin de memoria especificados se suma al contenido del acumulador, usando aritm!tica de complemento a dos. #l resultado se "uarda en el acumulador.
Formato

1
"#emplos

REGISTRO

1. Si el re"istro : contiene el 'alor <A( y el acumulador contiene @/(, la instruccin A.. : realiza la si"uiente suma$ Registro B Acumulador Nue%o acumulador ,A! $C! A$! " " " " " " " " " " " "

2. La instruccin A.. A duplica el contenido del acumulador.

A1.,.2.

AD C

Sumar registro o memoria al acumulador

Conjunto de instrucciones del 8085

17

con acarreo Instruccin Bits afectados Direccionamiento


Descripcin

ADC reg Z, S, P, CY, AC Registro indirecto

#l contenido del re"istro o posicin de memoria especificados ms el contenido del bit de acarreo, se suman al contenido del acumulador.
Formato

1
"#emplo

REGISTRO

Supon"amos que el re"istro : contiene el 'alor <%(, el acumulador G@(, y el bit de acarreo est puesto a cero. La instruccin A./ / realizar la si"uiente suma$ Registro B Acumulador Bit de acarreo Nue%o acumulador , ! -$! " " " " "

" "

A$!

"

"

" "

#l nue'o contenido del acumulador ser A@(, mientras que todos los bits de condicin quedarn puestos a cero e2cepto los de si"no y paridad. Si el bit de acarreo hubiera sido & antes de realizar la operacin, hubiera tenido lu"ar la si"uiente suma$

18

Simulador del microprocesador 8085

Registro B Acumulador Bit de acarreo Nue%o acumulador

, ! -$!

" " " " "

" " "

A-!

"

"

" " "

#l acumulador contendra ahora AG( y todos los bits de condicin e2cepto el de si"no, estaran puestos a cero.

A1.,.3.

S./

!estar registro o memoria del acumulador Instruccin Bits afectados Direccionamiento S.B reg Z, S, P, CY, AC Registro

Descripcin

#l contenido del re"istro o posicin de memoria especificados se resta al contenido del acumulador, usando aritm!tica de complemento a dos. #l resultado se "uarda en el acumulador. Si no hay acarreo del bit de ms peso, el bit de acarreo se pone a uno, y 'ice'ersa, al contrario de lo que ocurre con la operacin de suma
Formato

1
"#emplos

REGISTRO

Antes de entrar en los ejemplos recordamos que restar utilizando aritm!tica de complemento a dos equi'ale a complementar cada bit del se"undo operando y sumar &.

Conjunto de instrucciones del 8085

19

1. Si el acumulador contiene @%( y el re"istro # contiene 4*(, la instruccin SH: # realizar la si"uiente operacin de resta$ Acumulador +/Registro B0 Bit de acarreo Nue%o acumulador $ ! +/&1!0 " " " " "

" " " "

,1!

" " "

Al final de la operacin el acumulador contendr <*( y el bit de acarreo se pondr a cero debido a que ha habido acarreo del bit ms si"nificati'o.

2. La instruccin SH: A restar al acumulador a s mismo, obteni!ndose un resultado de cero. Se utiliza en muchas ocasiones para poner a cero el bit de acarreo y el acumulador.

A1.,.$.

S/ /

!estar registro o memoria del acumulador con acarreo Instruccin Bits afectados Direccionamiento SBB reg Z, S, P, CY, AC Registro indirecto

Descripcin

20

Simulador del microprocesador 8085

#l 'alor del bit de acarreo se suma internamente al contenido del re"istro o posicin de memoria especificados. #ste 'alor se resta del acumulador usando aritm!tica de complemento a dos. #sta instruccin es de "ran utilidad en la realizacin de restas de 'arios bytes, pues tiene en cuenta el 'alor positi'o o ne"ati'o de la sustraccin anterior.

Formato

1
"#emplo

REGISTRO

Si el re"istro / contiene %*(, el acumulador almacena %I( y el bit de acarreo est acti'ado, la instruccin S:: / efect a la si"uiente operacin$ 1. %*( 7 bit de acarreo ; %)(. 2. /omplemento a dos de %)( ; &&&&%&&& 0DG(1 3. Lo anterior se suma al acumulador$ Acumulador 2! 3-! 3C! " " " " "

" " " "

Nue%o acumulador

" " " " " "

4. ,o hay acarreo al final por lo que el bit de acarreo se queda a uno. Los bits de si"no y paridad estn puestos a uno mientras que es bit de cero est a cero.

Conjunto de instrucciones del 8085

21

A1.,.'.

A A

Funcin lgica A D entre registro o memoria con acumulador Instruccin Bits afectados Direccionamiento ANA reg Z, S, P, CY, AC Registro indirecto

Descripcin

Se realiza la funcin l"ica A,. bit a bit entre el contenido del re"istro o posicin de memoria especificados y el contenido del acumulador. #l bit de acarreo se pone a cero.
Formato

1
ota

REGISTRO

La tabla de 'erdad de la funcin l"ica A,. es$ A B " " "


"#emplo

"

"

Si el re"istro : contiene @/( y el acumulador almacena <A(, la instruccin A,A : realiza la si"uiente operacin$ Acumulador Registro B ,A! $C! " " " " " " " "

22

Simulador del microprocesador 8085

Nue%o acumulador

&1!

"

"

A1.,.,.

*! A

Funcin lgica %0"*C+.SI)% entre registro o memoria con acumulador Instruccin Bits afectados Direccionamiento )RA reg Z, S, P, CY, AC Registro

Descripcin

Se realiza la funcin l"ica AC#E/LHS+9A bit a bit entre el contenido del re"istro o posicin de memoria especificados y el contenido del acumulador, "uardndose el resultado en este ltimo.
Formato

1
ota

REGISTRO

La tabla de 'erdad de la funcin l"ica AC#E/LHS+9A es$ A B " " "


"#emplos

R " "

"

1. Si el re"istro : contiene @/( y el acumulador almacena <A(, la instruccin

Conjunto de instrucciones del 8085

23

E-A : realiza la si"uiente operacin$ Acumulador Registro B Nue%o acumulador ,A! $C! 2$! " " " " " " " " " " " "

2. La funcin AC#E/LHS+9A de cualquier bit con uno da lu"ar al complemento del mismo. As, si el acumulador contiene todo unos, la instruccin E-A : produce el complemento a uno del contenido del re"istro :, y lo "uarda en el acumulador.

3. #n al"unas ocasiones, un byte se utiliza para reflejar los estados de ciertas condiciones dentro de un pro"rama, donde cada uno de los ocho bits puede responder a una determinada condicin de falso o 'erdadero, actuado o inhibido, etc. 8ediante la funcin AC#E/LHS+9A podemos determinar cuntos bits de la palabra han cambiado de estado en un determinado lapsus de tiempo.

A1.,.1.

%! A

Funcin lgica %! entre registro o memoria con acumulador Instruccin Bits afectados Direccionamiento 'RA reg Z, S, P, CY, AC Registro indirecto

24

Simulador del microprocesador 8085

Descripcin

Se realiza la funcin l"ica A,. bit a bit entre el contenido del re"istro o posicin de memoria especificados y el contenido del acumulador, quedando en este ltimo el resultado. #l bit de acarreo se pone a cero.
Formato

1
ota

REGISTRO

La tabla de 'erdad de la funcin l"ica A- es$ A B " " "


"#emplo

R " " "

"

/omo sea que la funcin A- de cualquier bit con un uno da como resultado uno, y de cualquier bit con cero, lo deja in'ariable, esta funcin se utiliza frecuentemente para poner a uno "rupos de bits. Si el re"istro : contiene AD( y el acumulador almacena <<(, la instruccin A-A : realiza la si"uiente operacin$ Acumulador Registro B Acumulador ,,! 3! ,3! " " " " " " " "

" " " " " "

Conjunto de instrucciones del 8085

25

#ste ejemplo concreto "arantiza que los cuatro bits de menos peso del acumulador son unos, mientras que los dems permanecen in'ariables.

A1.,.2.

CM &

Comparar registro o memoria con acumulador Instruccin Bits afectados Direccionamiento CMP reg Z, S, P, CY, AC Registro indirecto

Descripcin

#l contenido del re"istro o posicin de memoria especificados se compara con el contenido del acumulador. #sta comparacin se realiza restando internamente el contenido del re"istro al del acumulador, permaneciendo !ste in'ariable, y colocando los bits de condicin en funcin del resultado. /oncretamente, el bit de cero se pone a uno si las cantidades comparadas son i"uales, y se pone a cero si son desi"uales. /omo sea que se realiza una operacin de resta, el bit de acarreo se pondr a uno si no hay acarreo del bit G, indicando que el contenido del re"istro o posicin de memoria es mayor que el contenido del acumulador, y se pondr a cero si es mayor que el acumulador. Si las dos cantidades difieren en si"no, el acarreo adopta el 'alor contrario a lo anteriormente e2puesto.
Formato

1
"#emplos

REGISTRO

A continuacin e2ponemos < ejemplos de esta operacin.

26

Simulador del microprocesador 8085

1. Si el acumulador almacena %A( y el re"istro : contiene %I(, cuando se realiza la instruccin /86 : Biene lu"ar la si"uiente resta interna$ Acumulador +/ Registro B0 Acumulador A! 2! 2! " " " " " " " " " " "

#2iste acarreo en el bit G por lo que el bit de acarreo se pone a cero. #l acumulador si"ue almacenando %A( y el re"istro :, %I(. ,o obstante, el bit de acarreo se pone a cero, as como el bit de cero, indicando que el contenido del re"istro : es menor que el acumulador. 2. Ahora el acumulador tiene el 'alor %4(. #ntonces$ Acumulador +/ Registro B0 Acumulador &! 2! 3D! " " " "

" " " " " " " " " " "

#n este el bit de acarreo se pone a uno 0no e2iste acarreo del bit G1 y el bit de cero estar a cero, indicando que el contenido del re"istro : es mayor que el acumulador. 3. 6or ltimo supon"amos un 'alor >&:( para el acumulador. #n esta situacin$ Acumulador +/ Registro B0 Acumulador "B! 2! 4 ! " " " " " " " " " " " " " " "

Aqu el bit de acarreo est a cero. /omo los dos n meros difieren en si"no, el hecho de que el bit de acarreo est! a cero indica que el contenido del re"istro :

Conjunto de instrucciones del 8085

27

es mayor que el del acumulador, al contrario de cmo ocurra en el ejemplo anterior.

A1.1.

Instrucciones de rotacin del acumulador

A continuacin se describen las instrucciones que pro'ocan una rotacin del contenido del acumulador. #sta operacin nicamente puede realizarse con el acumulador, no con nin" n re"istro o posicin de memoria.

OPERAC

1 00 para RLC01 para RRC10 para RAL11 para RAR

A1.1.1.

!+ C

Despla3ar el acumulador a la i34uierda

Instruccin Bits afectados Direccionamiento


Descripcin

R+C CY

28

Simulador del microprocesador 8085

-L/ rota un bit hacia la izquierda todo el contenido del acumulador, transfiriendo el bit de ms alto orden al bit de acarreo y al mismo tiempo a la posicin de menor orden del acumulador.
Formato

0
"#emplo

Supon"amos que el acumulador contiene *4(.

Bit de acarreo

Acumulador

A1.1.2.

!! C

Despla3ar el acumulador a la derec5a

Instruccin Bits afectados Direccionamiento


Descripcin

RRC CY

--/ rota el contenido del acumulador un bit a la derecha, transfiriendo el bit de ms bajo orden a la posicin de ms alto orden del acumulador, adems pone el bit de acarreo i"ual al bit de menor orden del acumulador.

Conjunto de instrucciones del 8085 Formato

29

0
"#emplo

Supon"amos que el acumulador contiene D4(. La instruccin --/ realizar la si"uiente operacin sobre el acumulador y el bit de acarreo$

Acumulador

Bit de acarreo

A1.1.3.

!A +

Despla3ar el acumulador 5acia la i34uierda a trav6s del bit de acarreo Instruccin Bits afectados Direccionamiento RA+ CY

Descripcin

-AL hace "irar el contenido del acumulador y el bit de acarreo un espacio de un bit hacia la salida 0izquierda1. #l bit de acarreo que es tratado como si fuera del

30

Simulador del microprocesador 8085

acumulador, se transfiere el bit de menor orden del acumulador. #l bit de mayor orden del acumulador se transfiere al bit de acarreo. ,o tiene operandos.
Formato

0
"#emplo

Supon"amos que el acumulador contiene :I(. La instruccin -AL efectuar las si"uientes modificaciones en el re"istro acumulador y en el bit de acarreo$

Bit de acarreo

Acumulador

A1.1.$.

!A !

Despla3ar el acumulador 5acia la derec5a a trav6s del bit de acarreo Instruccin Bits afectados Direccionamiento RAR CY

Descripcin

-A- rota el contenido del acumulador y del bit de acarreo & bit de posicin a la derecha. #l bit de acarreo que es tratado como si fuera parte del acumulador se transfiere al bit de ms alto orden del acumulador. #l bit de menor peso del acumulador

Conjunto de instrucciones del 8085

31

se car"a en el bit de acarreo. ,o e2isten operandos en la instruccin -A-.


Formato

0
"#emplo

#n este caso el acumulador contendr el 'alor @A(. La instruccin -AL efectuar las si"uientes modificaciones en el re"istro acumulador y en el bit de acarreo$

Acumulador

Bit de acarreo

32

Simulador del microprocesador 8085

A1.2.

Instrucciones con pares de registros

A continuacin se describen las instrucciones que dan lu"ar a operaciones con pares de re"istros. A1.2.1. &.S 7 Colocar datos en stac8

Instruccin Bits afectados Direccionamiento


Descripcin

P.S! *r Registro indirecto

#l contenido del par de re"istros especificado se "uarda en dos bytes de memoria definidos por el puntero de stacJ. #l contenido del primer re"istro se "uarda en la posicin de memoria inmediatamente inferior a la del puntero de stacJ. #l contenido del se"undo re"istro del par se "uarda en la posicin de memoria dos unidades inferior al puntero de stacJ. Si se hace referencia al para de re"istros 6SK, en el primer byte de informacin se "uarda el estado de los cinco bits de condicin. #l formato de este byte es el si"uiente$

Conjunto de instrucciones del 8085

33

signo

cero

arrrastre au5iliar

*aridad

"

acarreo

Sea cual sea el par de re"istros especificado, una 'ez que los datos se han "uardado, el puntero de pila se decrementa en dos unidades.
Formato

pr

1 00 para registros B # C01 para registros D # E10 para registros H # L11 para $its de %o&di%i'& # reg( A

B, D, ! o PS7

"#emplos

1. Supon"amos que el re"istro : contiene <D(, el re"istro / contiene &@( y el puntero de pila 'ale 4%<%(. La instruccin 6HS( : almacenar el contenido del re"istro : en posicin de memoria 4%4)(, el contenido del re"istro / en la direccin de memoria 4%4*(, y decrementa dos unidades el puntero de stacJ, dejndolo en 4%4*(. Frficamente podemos 'er el proceso anterior$ Antes de P.S! Puntero stac6 & , Registro B ,3 Registro C "$

34

Simulador del microprocesador 8085

M4M'RIA

DIR4CCI'N & && &1 & &8 & ,

Des*u9s de P.S! Puntero stac6 & &1 Registro B ,3 M4M'RIA "$ ,3 Registro C "$ DIR4CCI'N & && &1 & &8 & ,

2. Supon"amos ahora que el acumulador contiene <<(, el puntero de pila tiene &%4A(, y los bits de condicin de cero, acarreo y paridad estn a uno, mientras que los de si"no y acarreo au2iliar estn a cero. La instruccin 6HS( 6SK Almacena el contenido del acumulador en la posicin de memoria &%4*(, y coloca el 'alor 3G(, correspondiente a los citados estados de los bits de condicin, en la posicin &%4)(, mientras que en el puntero de pila queda el 'alor &%4*(.

A1.2.2.

&% &

Sacar datos del stac8

Instruccin Bits afectados Direccionamiento


Descripcin

P'P *r Registro indirecto

Conjunto de instrucciones del 8085

35

6A6 6- copia el contenido de la posicin de memoria direccionada por el stacJ pointer en el re"istro de bajo orden del par de re"istros especificados. A continuacin se incrementa el stacJ pointer en & y copia el contenido de la direccin resultante en el re"istro de ms alto orden del par. Lue"o se incrementa el stacJ pointer otra 'ez de modo que se apunta al si"uiente dato del stacJ. #l operando debe especificar el par de re"istros :/, .#, (L o 6SK. 6A6 6SK usa el contenido de la localizacin de memoria especificada por el stacJ pointer para restablecer los bits de condiciones.
Formato

pr

1 00 para registros B # C01 para registros D # E10 para registros H # L11 para $its de %o&di%i'& # reg( A

B, D, ! o PS7

"#emplos

1. Supon"amos que las posiciones de memoria 4%4*( y 4%4)( contienen respecti'amente &@( y <D(, mientras que el puntero de pila contiene 4%4*(. La instruccin 6A6 : /ar"a el re"istro / con el 'alor de &@( de la posicin de memoria 4%4*(, car"a el re"istro : con el 'alor <D( de la posicin 4%4)(, e incrementa dos unidades el puntero de stacJ, dejndolo en 4%<%(. Frficamente podemos 'er este proceso$

36

Simulador del microprocesador 8085

Antes de P'P Puntero stac6 & &1 Registro B Registro C

Des*u9s de P'P Puntero stac6 & , Registro B ,3 M4M'RIA "$ ,3 Registro C "$ DIR4CCI'N & && &1 & &8 & ,

M4M'RIA "$ ,3

DIR4CCI'N & && &1 & &8 & ,

2. Si las posiciones de memoria &%%*( y &%%)( poseen respecti'amente %%( y &@(, y el puntero de pila 'ale &%%*(, la instruccin 6A6 6SK car"a %%( en el acumulador y pone los bits de estado de la si"uiente forma$ S "$: ; Z AC " P " CY "

A1.2.3.

DA D

Suma doble

Instruccin Bits afectados

DAD *r CY

Conjunto de instrucciones del 8085

37

Direccionamiento

Registro

Descripcin

.A. -6 suma el 'alor de un dato de &@ bits contenido en un determinado par de re"istros 06-1 al contenido del par de re"istros (L. #l resultado es almacenado en el par (L. Los operandos 06-1 pueden ser : ; :/, . ; .#, ( ; (L, S6. B!n"ase en cuenta que la letra ( debe ser empleada para especificar que el par de re"istros (L debe ser doblado. .A. pone el bit de acarreo a & si hay una salida de acarreo de los re"istros (L. L adems no afecta a nin" n otro bit.
Formato

pr

1 00 para registros B # C01 para registros D # E10 para registros H # L11 para registros de p)&tero de pi*a

B, D, ! o SP

"#emplos

1. Supuesto que los re"istros ., #, ( y L contienen <<(, )D(, A&( y G:( respecti'amente, la instruccin .A. . -ealiza la si"uiente suma$ B;C !;+ !;+ ,,83 A"-B 2"A

38

Simulador del microprocesador 8085

2. Al ejecutar la instruccin .A. ( se duplica el 'alor del n mero de &@ bits contenido en ( > L 0equi'ale a desplazar los &@ bits una posicin hacia la izquierda1.

A1.2.$.

I *

Incrementar par de registros

Instruccin Bits afectados Direccionamiento


Descripcin

IN) *r Registro

#l n mero de &@ bits contenido en el par de re"istros especificado se incrementa en una unidad.
Formato

pr

1 00 para registros B # C01 para registros D # E10 para registros H # L11 para registros de p)&tero de pi*a

B, D, ! o SP

"#emplos

1. Suponiendo que los re"istros ( y L contienen respecti'amente <%( y %%(, la instruccin

Conjunto de instrucciones del 8085

39

+,E ( hace que el re"istro ( conten"a <%( y el re"istro L el 'alor %&(. 2. Si el puntero de pila contiene DDDD(, la instruccin +,E S6 hace que !ste conten"a %%%%(.

A1.2.'.

DC *

Decrementar par de registros

Instruccin Bits afectados Direccionamiento


Descripcin

DCR *r Registro

#l n mero de &@ bits contenido en el par de re"istros especificado se decrementa en una unidad.
Formato

pr

1 00 para registros B # C01 para registros D # E10 para registros H # L11 para registros de p)&tero de pi*a

B, D, ! o SP

"#emplo

40

Simulador del microprocesador 8085

Suponiendo que los re"istros ( y L contienen respecti'amente <%( y %%(, la instruccin ./E ( hace que el re"istro ( conten"a 4D( y el re"istro L el 'alor DD(. A1.2.,. *C7 9 Intercambiar datos entre registros

Instruccin Bits afectados Direccionamiento


Descripcin

)C!< Registro

E/(F cambia el contenido de los re"istros ( y L con el contenido de los re"istros . y #.


Formato

1
"#emplo

Si los re"istros (, L, . y # contienen respecti'amente %&(, %4(, %<( y %3(, la instruccin E/(F realiza el si"uiente intercambio$ Antes de e=ecutar )C!< D , 4 > ! " + & D " Des*u9s de e=ecutar )C!< 4 & ! , + >

A1.2.1.

*T7+

Intercambiar datos con el stac8 Instruccin )T!+

Conjunto de instrucciones del 8085

41

Bits afectados Direccionamiento


Descripcin

Registro indirecto

EB(L cambia los dos bytes de la posicin ms alta del stacJ con los dos bytes almacenados en los re"istros ( y L. As EB(L sal'a el contenido actual del par (L y car"a nue'os 'alores en (L. EB(L cambia el contenido del L con la posicin de memoria especificada por el stacJ pointer y el re"istro ( es intercambiado con el contenido del S67&.
Formato

1
"#emplo

Si el puntero de pila contiene 3%:3(, los re"istros ( y L contienen AA( y ::( respecti'amente, y las posiciones de memoria 3%:3( y 3%:I( contienen //( y ..( respecti'amente, la instruccin EB(L realizar la si"uiente operacin$

42

Simulador del microprocesador 8085

Antes de )T!+ Puntero stac6 > B> Registro ! AA M4M'RIA ? ? CC DD ? ? Registro + BB DIR4CCI'N ? ? > B, > B> > B2 > B$ ? ?

Des*u9s de )T!+ Puntero stac6 > B> Registro ! DD M4M'RIA ? ? BB AA ? ? Registro + CC DIR4CCI'N ? ? > B, > B> > B2 > B$ ? ?

A1.2.2.

S&7 +

Cargar el puntero de stac8 desde los registros 7 - + Instruccin Bits afectados Direccionamiento SP!+

Descripcin

Conjunto de instrucciones del 8085

43

Los &@ bits contenidos en los re"istros ( y L reemplazan el contenido del puntero de stacJ. #l contenido de los re"istros ( y L permanece in'ariable.
Formato

1
"#emplo

Si los re"istros ( y L contienen respecti'amente I%( y @/(, la instruccin S6(L car"a el puntero de stacJ con el 'alor I%@/(.

A1.:.

Instrucciones con datos inmediatos

A continuacin se describen las instrucciones que realizan operaciones utilizando bytes de datos que forman parte de la propia instruccin. #stas instrucciones forman un "rupo amplio en el que no todas tienen la misma lon"itud y formato. Las instrucciones ocupan dos o tres bytes del si"uiente modo$

44

Simulador del microprocesador 8085

1. La instruccin LE+ ocupa < bytes con el si"uiente formato$

0 0

pr

0 0 0 1

Parte a*ta de datos

Parte $a+a de datos

00 para registros B # C01 para registros D # E10 para registros H # L11 para registro p)&tero de pi*a

2. La instruccin 89+ ocupa 4 bytes si"uiente el formato si"uiente$

0 0

REG

1 1 0

Datos 000 para registro B001 para registro C010 para registro D011 para registro E100 para registro H101 para registro L110 para MEMORIA111 para ACUMULADOR

3. 6or ltimo, para el resto de las instrucciones, que ocupan 4 bytes, se cuenta con este formato$

1 1

OPER

1 1 0

Datos

Conjunto de instrucciones del 8085

45

000 para i&str)%%i'& ADI001 para i&str)%%i'& ACI010 para i&str)%%i'& SUI011 para i&str)%%i'& SBI100 para i&str)%%i'& A"I101 para i&str)%%i'& XRI110 para i&str)%%i'& DRI111 para i&str)%%i'& CPI

La instruccin LE+ opera sobre el par de re"istros especificado por 6-, usando dos bytes de datos inmediatos. La instruccin 89+ opera sobre el re"istro especificado por -#F, usando un byte de datos inmediatos. Si se hace referencia a la memoria, la instruccin opera sobre la posicin de memoria de la misma determinada por los re"istros ( y L. #l re"istro ( contiene los * bits ms si"nificati'os de la direccin, mientras que el re"istro L contiene los * bits menos si"nificati'os. Las restantes instrucciones operan sobre el acumulador, usando un byte de datos inmediatos. #l resultado sustituye al contenido del acumulador.

A1.:.1.

+*I

Cargar un par de registros con un dato Inmediato Instruccin Bits afectados Direccionamiento +)I *r, datos Inmediato

Descripcin

LE+ es una instruccin de < bytes5 su se"undo y tercer byte contienen el dato que ha de ser car"ado en el par de re"istros 06-1. #l primer operando debe especificar el par de re"istros a ser car"ados, pueden ser los pares :/, .#, (L, o el S6. #l se"undo operando especifica los dos bytes a ser car"ados. LE+ es la nica instruccin inmediata que acepta un 'alor de &@ bits. #l resto trabajan con datos de * bits.

46

Simulador del microprocesador 8085

Si el par de re"istros especificados es S6, el se"undo byte de la instruccin sustituye a los * bits menos si"nificati'os del puntero de pila, mientras que el tercer byte de la instruccin reemplaza a los * bits ms si"nificati'os del puntero de pila.
Formato

0 0

pr

0 0 0 1

Parte a*ta de datos

Parte $a+a de datos

B, D, ! o SP

00 para registros B # C01 para registros D # E10 para registros H # L11 para registro p)&tero de pi*a

"#emplos

1. La instruccin LE+ :, %%DD( car"a en el re"istro : el 'alor %%( y en el re"istro / el 'alor DD(. 2. La si"uiente instruccin car"a en el puntero de pila el 'alor &%%%( LE+ S6, &%%%(

A1.:.2.

M) I

Cargar un registro con un dato Inmediato

Instruccin Bits afectados Direccionamiento

M(I reg, datos Inmediato

Conjunto de instrucciones del 8085 Descripcin

47

#l primer operando debe ser uno de los re"istros A, :, /, ., #, ( o L, que ser car"ado con el dato especificado en el se"undo operando 0.ABAS1. #l dato no debe e2ceder de un byte.
Formato

0 0

REG

1 1 0

Datos 00 para registros B # C01 para registros D # E10 para registros H # L11 para registro p)&tero de pi*a

A, B, C, D, 4, !, + o M

"#emplos

0&1.La instruccin 89+ (, <<( car"a en el re"istro ( el 'alor <<(. 041.La instruccin 89+ L, 33( car"a en el re"istro L el 'alor 33(. 0<1.Supuestos los dos ejemplos anteriores, la instruccin 89+ 8, 4A(

48

Simulador del microprocesador 8085

car"a en la posicin de memoria <<33( 0direccin aportada por los re"istros ( y L1 el 'alor 4A(.

A1.:.3.

ADI

Sumar al acumulador un dato Inmediato Instruccin Bits afectados Direccionamiento ADI datos Z, S, P, CY, AC Inmediato

Descripcin

Suma el 'alor del byte especificado en la instruccin 0.ABAS1, al contenido del acumulador y deja el resultado en el acumulador. #l dato debe ser e2presado en forma de n mero, un AS/++ constante, la etiqueta de un 'alor pre'iamente definido o una e2presin. #l dato no debe e2ceder de un byte. Se utiliza aritm!tica de complemento a dos.
Formato

1 1 0 0 0 1 1 0
"#emplo

Datos

A continuacin presentamos un ejemplo con < instrucciones$ 0&1.89+ A, <3 041.A.+ 4% 0<1.A.+ C4% #n todas las instrucciones se utilizan datos en base decimal. As, por ejemplo, en la instruccin 041 el 'alor 4% es &3(. La instruccin 0&1 car"a en el acumulador el 'alor 44(.

Conjunto de instrucciones del 8085

49

La instruccin 041 realiza la si"uiente suma$ Acumulador Dato inmediato Nue%o acumulador &&! ">! ,,! " " " " " " " "

#l bit de paridad se pone a uno y el resto se quedan a cero. La instruccin 0<1 restaura el 'alor del acumulador realizando la si"uiente suma$ Acumulador Dato inmediato Nue%o acumulador ,,! 4C! &&! " " " " " " " " " " "

Ahora los bits de paridad, acarreo y acarreo au2iliar se quedan a uno y el resto a cero.

A1.:.$.

ACI

Sumar al acumulador un dato Inmediato con arrrastre Instruccin Bits afectados Direccionamiento ACI datos Z, S, P, CY, AC Inmediato

Descripcin

Suma el contenido del byte especificado 0.ABAS1 en la instruccin, al contenido del acumulador, aMadiendo adems el bit del acarreo. #l resultado se almacena en el acumulador 0perdi!ndose as el anterior contenido del Acumulador1. #l dato 0.ABAS1 debe estar especificado en forma de n mero, en AS/++ constante, como etiqueta de un 'alor pre'iamente definido o una e2presin. #l dato no debe e2ceder de un byte.

50

Simulador del microprocesador 8085

Formato

1 1 0 0 1 1 1 0
"#emplo

Datos

Benemos las si"uientes instrucciones$ 0&1.89+ A, <3 041.A/+ 4% y suponemos el bit de acarreo puesto a uno. La instruccin 0&1 car"a en el acumulador el 'alor 44(. La instruccin 041 realiza la si"uiente suma$ Acumulador Dato inmediato Bit de acarreo Nue%o acumulador &&! ">! " " " " ,-! " " " " " "

Bodos los bits se ponen a cero.

A1.:.'.

S.I

!estar del acumulador un dato Inmediato Instruccin Bits afectados Direccionamiento S.I datos Z, S, P, CY, AC Inmediato

Descripcin

Conjunto de instrucciones del 8085

51

#l byte de datos inmediato se resta del contenido del acumulador usando aritm!tica de complemento a dos. #l resultado se deja en el acumulador. La que se trata de una operacin de resta, el bit de acarreo se pone a uno cuando no hay acarreo del bit de ms peso, y se pone a cero si tiene dicho acarreo.
Formato

1 1 0 1 0 1 1 0

Datos

"#emplo

A continuacin presentamos un ejemplo con 4 instrucciones$ 0&1.89+ A, :<( 041.SH+ :<( La instruccin 0&1 car"a en el acumulador el 'alor :<(. La instruccin 041 realiza la si"uiente suma 0usando el complemento a dos del dato inmediato1$ Acumulador Dato inmediato Nue%o acumulador B,! $D! ! " " " " " " " " "

/omo era de esperar el resultado final del acumulador es cero ya que le estamos restando su propio 'alor. #l 'alor @.( del dato inmediato corresponde al complemento a dos del 'alor :<( que estamos restando. .ebido a que e2iste desbordamiento del s!ptimo bit se produce acarreo y se pone el bit de acarreo a cero.

52

Simulador del microprocesador 8085

#l bit de paridad se pone a uno mientras que los dems permanecen inacti'os.

A1.:.,.

S/I

!estar del acumulador un dato Inmediato con arrrastre Instruccin Bits afectados Direccionamiento SBI datos Z, S, P, CY, AC Inmediato

Descripcin

#l bit de acarreo se suma internamente al byte de datos inmediato. #l 'alor obtenido se resta del contenido del acumulador usando aritm!tica de complemento a dos. #l resultado se deja en el acumulador. #sta instruccin, al i"ual que S::, se usa preferentemente para realizar restas multiCbyte. Al i"ual que en el apartado anterior, el bit de acarreo se pone a uno si no hay acarreo del bit de ms peso, poni!ndose a cero si lo hay.
Formato

1 1 0 1 1 1 1 0
"#emplo

Datos

Benemos las si"uientes instrucciones$ 0&1.89+ A, %%( 041.S:+ %&( y suponemos el bit de acarreo puesto a cero.

Conjunto de instrucciones del 8085

53

La instruccin 0&1 car"a en el acumulador el 'alor %%(. La instruccin 041 realiza la si"uiente suma 0usando el complemento a dos del dato inmediato1$ Acumulador Dato inmediato Bit de acarreo Nue%o acumulador ! 33!

" " " " " " " "

@ "!

" " " " " " " "

,o hay acarreo, por lo que el bit de acarreo se pone a uno. Los bits de cero y acarreo au2iliar estn a cero, mientras que los de si"no y paridad se ponen a uno.

A1.:.1.

A I

Funcin lgica A D entre el acumulador - un Dato Inmediato Instruccin Bits afectados Direccionamiento ANI datos Z, S, P, CY, AC Inmediato

Descripcin

-ealiza una operacin L l"ica entre el dato 0.ABAS1 especificado en la instruccin y el contenido del acumulador, el resultado queda en el acumulador. Se pone a cero el bit de acarreo. #l dato, que no debe e2ceder de un byte, puede ser e2presado en forma de n mero, un AS/++ constante, la etiqueta de al" n 'alor pre'iamente definido o una e2presin.
Formato

1 1 1 0 0 1 1 0

Datos

54

Simulador del microprocesador 8085

"#emplo

.isponemos de las si"uientes instrucciones$ 0&1.89+ A, A%( 041.A,+ %D( La instruccin 0&1 car"a en el acumulador el 'alor A%(. La instruccin 041 realiza la si"uiente operacin A,. bit a bit entre el acumulador y el dato inmediato %D($ Acumulador Dato inmediato Nue%o acumulador A ! '3! ! " " " " " "

La instruccin A,+ del ejemplo pone a cero los cuatro bits de mayor peso, dejando in'ariables los cuatro menores. La que los cuatro bits de menor peso del acumulador eran cero, el resultado final es %%( con lo que el bit de cero se pondr a cero.

A1.:.2.

*!I

Funcin lgica %0"*C+.SI)% entre el acumulador - un dato Inmediato Instruccin Bits afectados Direccionamiento )RI datos Z, S, P, CY, AC Inmediato

Descripcin

Se realiza la funcin l"ica AC#E/LHS+9A bit a bit entre un byte de datos inmediatos y el contenido del acumulador. #l resultado se "uarda en el acumulador. #l bit de acarreo se pone a cero.

Conjunto de instrucciones del 8085 Formato

55

1 1 1 0 1 1 1 0

Datos

"#emplo

#sta instruccin se suele utilizar para complementar bits especficos del acumulador dejando los restantes en su estado ori"inal. .e este modo y suponiendo que el acumulador contiene A:(, la instruccin E-+ *%( complementa el bit de ms peso del acumulador, tal y como se muestra en la si"uiente fi"ura$ Acumulador Dato inmediato Nue%o acumulador AB! 1 ! &B! " " " " " "

"

"

" "

A1.:.:.

%!I

Funcin lgica %! entre el acumulador - un dato Inmediato Instruccin Bits afectados Direccionamiento 'RI datos Z, S, P, CY, AC Inmediato

Descripcin

A-+ desarrolla una operacin l"ica A- entre el contenido especificado por .ABAS y el contenido del acumulador. #l resultado se deja en el acumulador. Los bits de acarreo y acarreo au2iliar se ponen a cero.

56

Simulador del microprocesador 8085

Formato

1 1 1 1 0 1 1 0

Datos

"#emplo

Si el acumulador inicialmente contiene </(, la instruccin A-+ D%( realiza la si"uiente operacin A- bit a bit$ Acumulador Dato inmediato Nue%o acumulador ,C! 3 ! 3C! " " " " " " " " " " " " " "

/omo 'emos la instruccin A-+ de nuestro ejemplo acti'a los cuatro bits de menor peso, dejando in'ariables los restantes.

A1.:.1;.

C&I

Comparar el contenido del acumulador con un dato Inmediato Instruccin Bits afectados Direccionamiento CPI datos Z, S, P, CY, AC Registro indirecto

Descripcin

/ompara el 'alor del byte especificado 0.ABAS1 con el contenido del acumulador y posiciona los bits de cero y acarreo para indicar el resultado. #l bit de cero indica i"ualdad. Hn % en el acarreo indica que el contenido del acumulador es mayor que

Conjunto de instrucciones del 8085

57

.ABAS. Hn & en el acarreo indica que el acumulador es menor que .ABAS. Sin embar"o, el si"nificado del bit de acarreo es contrario cuando los 'alores tienen diferente si"no o cuando uno de los 'alores est complementado. #l 'alor de .ABAS no debe e2ceder de un byte.
Formato

1 1 1 1 1 1 1 0

Datos

"#emplo

Si tenemos la secuencia de instrucciones 0&1.89+ A, 4I( 041./6+ 4%( La instruccin 0&1 car"a en el acumulador el 'alor 4I(. La instruccin 041 realiza la si"uiente operacin de suma 0tomando el complemento a dos del dato inmediato, es decir, #&(1$ Acumulador Dato inmediato Nue%o acumulador &2! 4"! ,! " " " " " " " " "

#2iste desbordamiento del ltimo bit, por lo que el bit de acarreo se pone a cero. #l acumulador continua con su 'alor inicial pero el bit de cero est a cero, indicando que las cantidades no son i"uales. Al estar el bit de acarreo a cero, nos indica que los datos inmediatos son menores que el contenido del acumulador.

58

Simulador del microprocesador 8085

A1.1;.

Instrucciones de direccionamiento directo

A continuacin se describen las instrucciones que hacen referencia a una posicin de memoria especfica, cuyos dos bytes de direccin forman parte de la propia instruccin. Las instrucciones de este tipo ocupan tres bytes en la forma si"uiente$

0 0 1 OPER 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& 00 para i&str)%%i'& STA01 para i&str)%%i'& LDA10 para i&str)%%i'& SHLD11 para i&str)%%i'& LHLD

A1.1;.1.

ST A

Almacenamiento directo desde el Acumulador Instruccin Bits afectados Direccionamiento STA dir Directo

Descripcin

SBA .+- almacena una copia del contenido actual del acumulador en la posicin de memoria especificada por .+-.
Formato

0 0 1 1 0 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

Conjunto de instrucciones del 8085 "#emplo

59

Bodas las instrucciones que se muestran a continuacin introducen el contenido del acumulador en la posicin de memoria %%*%($ SBA %%*%( SBA &4* SBA %%%%%%%%&%%%%%%%: NN :ase he2adecimal NN :ase decimal NN :ase binaria

A1.1;.2.

+D A

Carga directa en el acumulador

Instruccin Bits afectados Direccionamiento


Descripcin

+DA dir Directo

L.A .+- car"a el acumulador con el contenido de la memoria direccionada por .+-. La direccin puede ser puesta como un n mero, una etiqueta pre'iamente definida o una e2presin.
Formato

0 0 1 1 1 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&


"#emplo

Bodas las instrucciones que se muestran a continuacin introducen en el acumulador el contenido de la posicin de memoria <%%($ L.A <%%( L.A < O 0&@ O &@1 L.A 4%%( 7 4I@

60

Simulador del microprocesador 8085

A1.1;.3.

S7+ D

Cargar directamente con 7 - +

Instruccin Bits afectados Direccionamiento


Descripcin

S!+D dir Directo

Almacena una copia del re"istro L en la posicin de memoria especificada por .+-, a continuacin almacena una copia del re"istro ( en la si"uiente posicin de memoria 0.+-7&1.
Formato

0 0 1 0 0 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&


"#emplo

Suponiendo que los re"istros ( y L contienen respecti'amente los 'alores </( y I3(, la instruccin S(L. <3:< efectuar las si"uientes modificaciones en memoria$

Memoria antes de e=ecutar S!+D 33 33 DIR4CCIAN ,>B& ,>B,

Memoria des*u9s de e=ecutar S!+D 33 2>

Conjunto de instrucciones del 8085

61

33 33

,>B> ,>B2

,C 33

A1.1;.$.

+7+ D

Cargar 7 - + directamente

Instruccin Bits afectados Direccionamiento


Descripcin

+!+D dir Directo

L(L. .+- car"a el re"istro L con una copia del byte almacenado en la posicin de memoria especificada por .+-. .espu!s car"a el re"istro ( con una copia del byte almacenado en la posicin si"uiente de memoria especificada por .+-. La instruccin L(L. esta pre'ista para car"ar direcciones nue'as en los re"istros ( y L.
Formato

0 0 1 0 1 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&


"#emplo

#n el caso en el que las posiciones de memoria A:43( y A:4I( conten"an respecti'amente 44( y <<(, la ejecucin de la instruccin L(L. A:43( har que el re"istro L conten"a 44( y el re"istro ( conten"a <<(.

62

Simulador del microprocesador 8085

A1.11.

Instrucciones de salto

A continuacin se describen las instrucciones que modifican la secuencia normal de ejecucin de las instrucciones de un pro"rama. #stas instrucciones ocupan uno o tres bytes en la forma si"uiente$

1. La instruccin 6/(L ocupa un byte con el si"uiente formato$

1 1 1 0 1 0 0 1

2. #l resto de instrucciones de salto ocupan tres bytes con el formato si"uiente$

1 1

OPER

0 1 X Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& 1 para ,MP . 0 para e* resto 000 para i&str)%%i'& ,MP o ,"-001 para i&str)%%i'& ,-010 para i&str)%%i'& ,"C011 para i&str)%%i'& ,C100 para i&str)%%i'& ,P0101 para i&str)%%i'& ,PE110 para i&str)%%i'& ,P111 para i&str)%%i'& ,M

Conjunto de instrucciones del 8085

63

/iertas instrucciones de tres bytes de este tipo pro'ocan un cambio en la secuencia normal de operaciones en la ejecucin de un pro"rama se" n unas determinadas condiciones. Si la condicin especfica es 'erdadera, la ejecucin del pro"rama contin a en la direccin de memoria formada por la parte alta 0tercer byte de la instruccin1, y los ocho bits de la parte baja 0se"undo byte de la instruccin1. Si la condicin especfica es falsa, la ejecucin del pro"rama contin a en la pr2ima instruccin en secuencia.

A1.11.1.

&C7 +

Cargar el contador de programa

Instruccin Bits afectados Direccionamiento


Descripcin

PC!+ Registro

6/(L car"a el contenido de los re"istros ( y L en el contador de pro"rama. /omo el procesador busca la si"uiente instruccin en la si"uiente direccin del contador de pro"rama, 6/(L tiene el efecto de una instruccin de salto. #l contenido de ( 'a a los * bits ms altos de contador de pro"rama y el contenido de L 'a a los * bits ms bajos.
Formato

1 1 1 0 1 0 0 1
"#emplo

Si el re"istro ( contiene AI( y el re"istro L contiene ).(, la instruccin 6/(L

64

Simulador del microprocesador 8085

hace que el pro"rama en curso contin e ejecutndose en la direccin de memoria AI).(.

A1.11.2.

<M&

Salto incondicional Instruccin Bits afectados Direccionamiento BMP dir Inmediato

Descripcin

La instruccin P86 .+- altera la ejecucin del pro"rama car"ando el 'alor especificado por .+- en el contador de pro"rama.
Formato

1 1 0 0 0 0 1 1 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.3.

<C

Saltar si 5a- acarreo Instruccin Bits afectados Direccionamiento BC dir Inmediato

Descripcin

La instruccin P/ .+- comprueba el 'alor del bit de acarreo. Si es un & la ejecucin del pro"rama contin a en la direccin especificada por .+-. Si es un % el pro"rama contin a su ejecucin normal de forma secuencial.

Conjunto de instrucciones del 8085 Formato

65

1 1 0 1 1 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.$.

< C

Saltar si no 5a- acarreo Instruccin Bits afectados Direccionamiento BNC dir Inmediato

Descripcin

La instruccin P,/ .+- comprueba el estado del bit acarreo. Si esta a % el pro"rama cambia a la direccin especificada por .+-. Si esta a & la ejecucin del pro"rama contin a normalmente.
Formato

1 1 0 1 0 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.'.

<=

Saltar si 5a- cero Instruccin Bits afectados Direccionamiento BZ dir Inmediato

Descripcin

La instruccin PQ .+- comprueba el bit de cero. Si est a & el pro"rama contin a en la direccin e2presada por .+-. Si est a % contin a con la ejecucin secuencial normal.

66

Simulador del microprocesador 8085

Formato

1 1 0 0 1 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.,.

< =

Saltar si no 5a- cero Instruccin Bits afectados Direccionamiento BNZ dir Inmediato

Descripcin

La instruccin P,Q .+- comprueba el 'alor del bit de cero. Si el contenido del acumulador no es cero 0:it de cero ; %1 el pro"rama contin a en la direccin especificada por .+-. Si el contenido del acumulador es cero 0:it de cero ; &1 el pro"rama contin a su ciclo normal.
Formato

1 1 0 0 0 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.1.

<M

Saltar si 5a- signo negativo Instruccin Bits afectados Direccionamiento BM dir Inmediato

Descripcin

La instruccin P8 .+- comprueba el estado del bit de si"no. Si el contenido del acumulador es ne"ati'o 0bit de si"no ; &1 la ejecucin del pro"rama contin a en la

Conjunto de instrucciones del 8085

67

direccin especificada por .+-. Si el contenido del acumulador es positi'o 0bit de si"no ; %1 contin a la ejecucin de la secuencia normal.
Formato

1 1 1 1 1 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& A1.11.2. <& Saltar si 5a- signo positivo Instruccin Bits afectados Direccionamiento
Descripcin

BP dir Inmediato

La instruccin P6 .+- comprueba el estado de bit del si"no. Si el contenido del acumulador es positi'o 0bit de si"no ; %1 la ejecucin del pro"rama contin a con la direccin especificada por .+-. Si el contenido del acumulador es ne"ati'o 0bit de si"no ; &1 contin a el pro"rama con su ejecucin normal.
Formato

1 1 1 1 0 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.:.

<&"

Saltar si la paridad es par Instruccin Bits afectados Direccionamiento BP4 dir Inmediato

Descripcin

La paridad e2iste si el byte que esta en el acumulador tiene un n mero par de bits. #l bit de paridad se pone a & para indicar esta condicin.

68

Simulador del microprocesador 8085

La instruccin P6# .+- comprueba la situacin del bit de paridad. Si esta a &, la ejecucin del pro"rama contin a en la direccin especificada por .+-. Si esta a %, contin a con la si"uiente instruccin de forma secuencial. Las instrucciones P6# y P6A son especialmente usadas para comprobar la paridad de los datos de entrada. 0Sin embar"o con la instruccin +, los bits no act an. #sto puede e'itarse sumando %%( al acumulador para acti'arlos1.
Formato

1 1 1 0 1 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.11.1;.

<&;

Saltar si la paridad es impar Instruccin Bits afectados Direccionamiento BP' dir Inmediato

Descripcin

La instruccin P6A .+- comprueba el estado del bit de paridad. Si esta a %, el pro"rama contin a en la direccin marcada por .+-. Si est a & contin a con la secuencia normal.
Formato

1 1 1 0 0 0 1 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

Conjunto de instrucciones del 8085

69

A1.12.

Instrucciones de llamada a subrutina

A continuacin se describen las instrucciones que llaman a subrutinas. #stas instrucciones operan en la misma forma que las instrucciones de salto, pro'ocando una alteracin en la secuencia de ejecucin de las instrucciones, pero adems, en el momento de su ejecucin, se almacena en la pila una direccin de retorno, que es utilizada por las instrucciones de -#BA-,A 0'er instrucciones de -etorno de Subrutinas en este mismo captulo1. Las instrucciones de este tipo utilizan tres bytes en el formato si"uiente$

1 1

OPER

1 0 X Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& 1 para CALL . 0 para e* resto 000 para i&str)%%i'& C"- o CALL001 para i&str)%%i'& C-010 para i&str)%%i'& C"C011 para i&str)%%i'& CC100 para i&str)%%i'& CP0101 para i&str)%%i'& CPE110 para i&str)%%i'& CP111 para i&str)%%i'& CM

#n las instrucciones de llamada, las instrucciones se codifican como en las instrucciones de salto, es decir, almacenando en primer lu"ar el byte de direccin de memoria menos si"nificati'o.

70

Simulador del microprocesador 8085

A1.12.1.

CA++

+lamada incondicional Instruccin Bits afectados Direccionamiento CA++ dir Inmediato C Registro indirecto

Conjunto de instrucciones del 8085 Descripcin

71

/ALL "uarda el contenido del contador de pro"rama 0la direccin de la pr2ima instruccin secuencial1 dentro del stacJ y a continuacin salta a la direccin especificada por .+-. /ada instruccin /ALL o al"una de sus 'ariantes implica una instruccin -#B 0retorno1, de lo contrario el pro"rama podra "perderse" con consecuencias impredecibles. La direccin debe ser especificada como un n mero, una etiqueta, o una e2presin. La etiqueta es lo ms normal 0#l ensamblador in'ierte los bytes alto y bajo de direccin durante el proceso de ensamblado1. Las instrucciones /ALL se emplean para llamadas a subrutinas y debemos tener presente que siempre emplean el stacJ.
Formato

1 1 0 0 0 1 0 1 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.12.2.

CC

+lamar si 5a- acarreo Instruccin Bits afectados Direccionamiento CC dir Inmediato C Registro indirecto

Descripcin

// comprueba el estado del bit de acarreo. Si el bit est a &, // car"a el contenido del contador de pro"rama en el stacJ y a continuacin salta a la direccin especificada por .+-. Si el bit esta a %, la ejecucin del pro"rama contin a con la pr2ima instruccin de su secuencia normal. Aunque el uso de una etiqueta es lo ms normal, la direccin puede ser especificada tambi!n como un n mero o una e2presin.
Formato

1 1 0 1 1 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

72

Simulador del microprocesador 8085

A1.12.3.

C C

+lamar si no 5a- acarreo Instruccin Bits afectados Direccionamiento CNC dir Inmediato C Registro indirecto

Descripcin

/,/ chequea el 'alor del bit de acarreo. Si est en cero /,/ car"a el contenido de contador de pro"rama en el stacJ y a continuacin salta a la direccin especificada por la instruccin en .+-. Si el bit est a &, el pro"rama contin a con su secuencia normal. Aunque el uso de una etiqueta es lo ms com n, la direccin puede tambi!n estar indicada por un n mero o por una e2presin.
Formato

1 1 0 1 0 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.12.$.

C=

+lamar si 5a- cero Instruccin Bits afectados Direccionamiento CZ dir Inmediato C Registro indirecto

Descripcin

/Q chequea el bit de cero. Si el bit esta a & 0indicando que el contenido del acumulador es cero1, /Q car"a el contenido del contador de pro"rama en el stacJ y salta a la direccin especificada en .+-. Si el bit est a % 0indicando que el contenido del acumulador es distinto de cero1 el pro"rama contin a su desarrollo normal.
Formato

Conjunto de instrucciones del 8085

73

1 1 0 0 1 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& A1.12.'. C = +lamar si no 5a- cero Instruccin Bits afectados Direccionamiento
Descripcin

CNZ dir Inmediato C Registro indirecto

/,Q chequea el bit de /ero. Si est en % 0indicando que el contenido del acumulador no es cero1, /,Q manda el contenido del contador de pro"rama al stacJ y salta a la direccin especificada por .+-. Si el bit est a & el pro"rama contin a su desarrollo normal.
Formato

1 1 0 0 0 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.12.,.

CM

+lamar si 5a- signo negativo Instruccin Bits afectados Direccionamiento CM dir Inmediato C Registro indirecto

Descripcin

/8 comprueba el estado del bit del si"no. Si el bit esta a & 0indicando que el contenido del acumulador es ne"ati'o1 /8 manda el contenido del contador de pro"rama al stacJ y salta a la direccin especificada por .+-. Si el bit es % la ejecucin del pro"rama contin a con su secuencia normal. #l uso de la etiqueta es lo ms corriente, pero la direccin puede especificarse tambi!n por un n mero o una e2presin.

74

Simulador del microprocesador 8085

Formato

1 1 1 1 1 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& A1.12.1. C& +lamar si 5a- signo positivo Instruccin Bits afectados Direccionamiento
Descripcin

CP dir Inmediato C Registro indirecto

/6 chequea el 'alor del bit de si"no. Si est a % 0indicando que el contenido del acumulador es positi'o1, /6 en'a el contenido del contador de pro"rama al stacJ y salta a la direccin especificada por .+-. Si el bit tiene un &, contin a el pro"rama normalmente con la instruccin si"uiente.
Formato

1 1 1 1 0 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

A1.12.2.

C&"

+lamar si la paridad es par Instruccin Bits afectados Direccionamiento CP4 dir Inmediato C Registro indirecto

Descripcin

#2iste paridad en un byte si el n mero de unos que tiene es par. #l bit de paridad se pone a & para indicar esta condicin. /6# chequea el 'alor del bit de paridad. Si tiene un &, /6# en'a el contenido del contador de pro"rama al stacJ y salta a la direccin especificada por la instruccin en .+-. Si el bit tiene un cero, el pro"rama contin a normalmente.

Conjunto de instrucciones del 8085

75

Formato

1 1 1 0 1 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'& A1.12.:. C&% +lamar si la paridad es impar Instruccin Bits afectados Direccionamiento
Descripcin

CP' dir Inmediato C Registro indirecto

/6A chequea el bit de paridad. Si el bit esta a %, /6A car"a el contenido del contador de pro"rama en el stacJ y salta a la direccin especificada en .+-. Si el bit est a & el pro"rama contin a su desarrollo normal.
Formato

1 1 1 0 0 1 0 0 Parte $a+a de *a dire%%i'& Parte a*ta de *a dire%%i'&

76

Simulador del microprocesador 8085

A1.13.

Instrucciones de retorno desde subrutinas

A continuacin se describen las instrucciones utilizadas para realizar un retorno desde las subrutinas. #stas instrucciones colocan en el contador de pro"rama la direccin. Las instrucciones de este tipo utilizan un byte en el formato si"uiente$ ltima direccin puesta en la pila, haciendo que la ejecucin del pro"rama contin e en esta

1 1

OPER

1 0 X

1 para RET . 0 para e* resto 000 para i&str)%%i'& R"- o RET001 para i&str)%%i'& R-010 para i&str)%%i'& R"C011 para i&str)%%i'& RC100 para i&str)%%i'& RP0101 para i&str)%%i'& RPE110 para i&str)%%i'& RP111 para i&str)%%i'& RM

/iertas instrucciones de este tipo realizan la operacin de retorno bajo ciertas condiciones especficas. Si la condicin especificada se cumple 0es 'erdadera1, tendr lu"ar la operacin de retorno. 6or el contrario, si la condicin no se cumple, la ejecucin del pro"rama continuar en la pr2ima instruccin en secuencia.

Conjunto de instrucciones del 8085

77

A1.13.1.

!"T

!etorno incondicional Instruccin Bits afectados Direccionamiento R4T Registro indirecto

Descripcin

Se realiza una operacin de retorno incondicional. La instruccin -#B echa fuera dos bytes de datos del stacJ y los mete en el re"istro contador de pro"rama. #l pro"rama contin a entonces en la nue'a direccin. ,ormalmente -#B se emplea conjuntamente con /ALL.
Formato

1 1 0 0 1 0 0 1

A1.13.2.

!C

!etorno si 5a- acarreo Instruccin Bits afectados Direccionamiento RC Registro indirecto

Descripcin

La instruccin -/ comprueba el estado del bit de acarreo. Si tiene un & 0indicando que hay acarreo1 la instruccin saca dos bytes del stacJ y los mete en el contador de pro"rama. #l pro"rama contin a en la nue'a direccin suministrada. Si el bit es %, el pro"rama contin a en la si"uiente instruccin de la secuencia normal.
Formato

78

Simulador del microprocesador 8085

1 1 0 1 1 0 0 0

A1.13.3.

! C

!etorno si no 5a- acarreo Instruccin Bits afectados Direccionamiento RNC Registro indirecto

Descripcin

La instruccin -,/ comprueba el bit de acarreo. Si est a % indicando que no hay acarreo, la instruccin echa fuera del stacJ dos bytes y los car"a en el contador de pro"rama. Si el bit est a & contin a el ciclo normal.
Formato

1 1 0 1 0 0 0 0

A1.13.$.

!=

!etorno si 5a- cero Instruccin Bits afectados Direccionamiento RZ Registro indirecto

Descripcin

La instruccin -Q comprueba el bit de cero. Si est a &, indicando que el contenido del acumulador es cero, la instruccin echa fuera del stacJ dos bytes y los car"a en el contador de pro"rama. Si el bit est a %, contin a el ciclo normal.

Conjunto de instrucciones del 8085 Formato

79

1 1 0 0 1 0 0 0

A1.13.'.

! =

!etorno si no 5a- cero Instruccin Bits afectados Direccionamiento RNZ Registro indirecto

Descripcin

La instruccin -,Q comprueba el bit cero. Si est a %, indicando que el contenido del acumulador no es cero, la instruccin echa fuera del stacJ dos bytes y los car"a en el contador de pro"rama. Si el bit est a &, contin a el ciclo normal.
Formato

1 1 0 0 0 0 0 0

A1.13.,.

!M

!etorno si 5a- signo negativo Instruccin Bits afectados Direccionamiento RM Registro indirecto

Descripcin

La instruccin -8 comprueba el bit de si"no. Si tiene un &, indicando dato ne"ati'o en el acumulador, la instruccin echa dos bytes fuera del stacJ y los mete en el contador de pro"rama. Si el bit tiene %, contin a el pro"rama normal con la si"uiente instruccin.

80

Simulador del microprocesador 8085

Formato

1 1 1 1 1 0 0 0

A1.13.1.

!&

!etorno si 5a- signo positivo Instruccin Bits afectados Direccionamiento RP Registro indirecto

Descripcin

La instruccin -6 comprueba el bit si"no. Si est a %, indicando que el contenido del acumulador es positi'o, la instruccin echa fuera del stacJ dos bytes y los car"a en el contador de pro"rama. Si el bit est a & contin a el ciclo normal.
Formato

1 1 1 1 0 0 0 0

A1.13.2.

!&"

!etorno si la paridad es par Instruccin Bits afectados Direccionamiento RP4 Registro indirecto

Descripcin

La instruccin -6# comprueba el bit de paridad. Si est a &, indicando que e2iste paridad, la instruccin echa fuera del stacJ dos bytes y los car"a en el contador de pro"rama. Si el bit est a % contin a el ciclo normal. 0#2iste paridad si el byte que est en el acumulador tiene un n mero par de bits, colocndose el bit de paridad a & en este caso1.

Conjunto de instrucciones del 8085

81

Formato

1 1 1 0 1 0 0 0 A1.13.:. !&% !etorno si la paridad es impar Instruccin Bits afectados Direccionamiento


Descripcin

RP' Registro indirecto

La instruccin -6A comprueba el bit de paridad. Si est a %, indicando que no hay paridad, la instruccin echa fuera del stacJ dos bytes y los car"a en el contador de pro"rama. Si el bit est a &, contin a el ciclo normal.
Formato

1 1 1 0 0 0 0 0

82

Simulador del microprocesador 8085

A1.1$.

Instruccin !ST Instruccin Bits afectados Direccionamiento RST e5* Registro indirecto

Descripcin

#s una instruccin /ALL para usar con interrupciones. -SB car"a el contenido del contador de pro"rama en el stacJ, para pro'eerse de una direccin de retorno y salta a una de las "ocho" direcciones determinadas pre'iamente. Hn cdi"o de tres bits incluido en el cdi"o de operacin de la instruccin -SB especifica la direccin de salto. #sta instruccin es empleada por los perif!ricos cuando intentan una interrupcin. 6ara 'ol'er a la instruccin en que ha tenido lu"ar la interrupcin, se debe utilizar una instruccin de -#BA-,A.
Formato

EXP

donde #E6 es un n mero binario entre %%%: y &&&:. 6or tanto, se" n la combinacin de % y & que demos a #E6 obtendremos los distintos formatos y las distintas direcciones de las interrupciones, que sern$ 3'RMAT' C'NTAD'R D4 PR'<RAMA

Conjunto de instrucciones del 8085

83

"" """ "" """" "" " """ "" " """" """ """ """ """" """" """ """" """"
"#emplos

C-! C3! D-! D3! 4-! 43! 3-! 33!

" " "" " " " "" "" "

! 1! " ! "1! & ! &1! , ! ,1!

1. La instruccin -SB < llama a la subrutina de la posicin %%&*(. 2. La instruccin -SB &% es una instruccin ile"al ya que el ar"umento de -SB debe ser un n mero entre % y G.

84

Simulador del microprocesador 8085

A1.1'.

Instrucciones del F+I&0F+%& de interrupcin

#n este apartado estudiamos las instrucciones que operan directamente sobre el flipCflop de actuacin de interrupciones. Bodas estas instrucciones ocupan un byte si"uiendo el formato que se muestra$

1 1 1 1 X 0 1 1

1 para i&str)%%i'& EI0 para i&str)%%i'& DI

A1.1'.1.

"I

Activar interrupciones Instruccin Bits afectados Direccionamiento 4 I

Descripcin

La instruccin #+ pone en ser'icio el sistema de interrupciones a partir de la si"uiente instruccin secuencial del pro"rama. #sta instruccin acti'a el flipCflop +,B#.

Conjunto de instrucciones del 8085

85

Se puede desconectar el sistema de interrupciones poniendo una instruccin .+ al principio de una secuencia, puesto que no se puede predecir la lle"ada de una interrupcin. Al final de la secuencia se incluye la instruccin #+ que 'uel'e a habilitar el sistema de interrupciones. 0-#S#B tambi!n pone fuera de ser'icio el sistema de interrupciones adems de poner el contador de pro"rama a cero1.
Formato

1 1 1 1 1 0 1 1 A1.1'.2. DI Desactivar interrupciones Instruccin Bits afectados Direccionamiento


Descripcin

D I

#sta instruccin desacti'a el flipCflop +,B#. .espu!s de la ejecucin de una instruccin .+, el sistema de "interrupciones" esta sin posibilidad de ponerse en marcha. #n aplicaciones que empleen las interrupciones, la instruccin .+ se emplea solamente cuando una determinada secuencia no debe ser interrumpida. 6or ejemplo, se puede poner fuera de ser'icio el sistema de interrupciones incluyendo una instruccin .+ el principio del cdi"o de secuencia. La interrupcin B-A6 del *%*I no puede ser puesta fuera de ser'icio. #sta interrupcin especial esta pre'ista para serios problemas que pueden presentarse independientemente del bit de interrupcin 0fallo de alimentacin, etc.1.
Formato

1 1 1 1 0 0 1 1

86

Simulador del microprocesador 8085

A1.1,.

Instrucciones de "ntrada > Salida

Ahora nos ocuparemos de las instrucciones que hacen que los datos entren o sal"an de la /6H. #stas instrucciones ocupan dos bytes en la forma si"uiente$

1 1 0 1 X 0 1 1

"/0ero de p)erto 0 para i&str)%%i'& OUT1 para i&str)%%i'& I"

#l n mero de puerto 'iene definido por el hardRare del sistema, no estando bajo el control del pro"ramador. #ste, nicamente selecciona uno de ellos para realizar la correspondiente operacin.

A1.1,.1.

"ntrada Instruccin Bits afectados Direccionamiento IN *ort Directo

Conjunto de instrucciones del 8085

87

Descripcin

La instruccin +, 6A-B lee los * bits de datos que hay en el "6A-B" especificado y los car"a en el acumulador. #l operando debe ser un n mero o una e2presin que produzca un 'alor comprendido entre %%( y DD(.

Formato

1 1 0 1 1 0 1 1
"#emplos

"/0ero de p)erto

1. La instruccin +, 4 deposita en el acumulador los datos de entrada del puerto 4. 2. La instruccin +, <O4 deposita en el acumulador los datos de entrada del puerto @.

A1.1,.2.

%.T

Salida Instruccin Bits afectados Direccionamiento '.T *ort Directo

Descripcin

88

Simulador del microprocesador 8085

AHB 6A-B pone el contenido del acumulador en el bus de datos de * bits del puerto seleccionado. #l n mero de puertos oscila de % a 4II y es duplicado en el bus de direcciones. #s la l"ica e2terna la encar"ada de seleccionar el puerto y aceptar el dato de salida. #l operando 06A-B1 debe especificar el n mero del puerto de salida seleccionado.

Formato

1 1 0 1 0 0 1 1
"#emplos

"/0ero de p)erto

1. La instruccin AHB 4 en'a el contenido del acumulador al puerto de salida n mero 4. 2. La instruccin AHB <O4 en'a el contenido del acumulador al puerto de salida n mero @.

Conjunto de instrucciones del 8085

89

A1.11.

Instruccin de alto 7+T Instruccin Bits afectados Direccionamiento !+T

Descripcin

La instruccin (LB detiene el procesador. #l contador de pro"rama contiene la direccin de la pr2ima instruccin secuencial. 6or otro lado los bits y re"istros permanecen inacti'os. Hna 'ez en estado de parada el procesador puede 'ol'er a ser arrancado solamente por un acontecimiento e2terno, es decir una interrupcin. 6or tanto debemos ase"urarnos que las interrupciones est!n en disposicin de ser acti'adas antes de ejecutar la instruccin (LB. Si se ejecuta (LB estando las interrupciones fuera de ser'icio, la nica manera de 'ol'er arrancar el procesador ser mediante un -#S#B o a tra'!s de la interrupcin B-A6. #l procesador puede salir temporalmente del estado de parada para ser'ir un acceso directo a memoria, sin embar"o terminado el acceso directo 'uel'e al estado de parada.

90

Simulador del microprocesador 8085

Hn propsito bsico de la instruccin (LB es permitir una pausa al procesador mientras espera por la interrupcin de un perif!rico.
Formato

A1.12.

Instruccin !IM para la lectura de la m?scara de interrupciones Instruccin Bits afectados Direccionamiento RIM

Descripcin

-+8 car"a los * bits de datos si"uientes en el acumulador$

Dit SID

Dit $ I-E2

Dit 2 I$E2

Dit > I2E2

Dit , I4

Dit & M-E2

Dit " M$E2

Dit M2E2

donde$ S+.$ :it presente en la entrada serie. +G.I$ +nterrupcin G.I pendiente si est a &. +@.I$ +nterrupcin @.I pendiente si est a &. +I.I$ +nterrupcin I.I pendiente si est a &.

Conjunto de instrucciones del 8085

91

+#$ Las interrupciones son autorizadas si est a &. 8G.I$ La interrupcin G.I est prohibida si est a &. 8@.I$ La interrupcin @.I est prohibida si est a &. 8I.I$ La interrupcin I.I est prohibida si est a &.

Formato

92

Simulador del microprocesador 8085

A1.1:.

Instruccin SIM para posicionar la m?scara de interrupciones Instruccin Bits afectados Direccionamiento SIM

Descripcin

S+8 es una instruccin de usos m ltiples que utiliza el contenido del acumulador para posicionar el enmascaramiento de interrupciones para las -SB I.I, -SB @.I, -SB G.I5 pone a cero el flanco sensiti'o de la entrada -SB G.I y saca el bit G del acumulador al latch de datos de salida serie. La estructura de la instruccin S+8 es como si"ue$

Dit S'D

Dit $ S'4

Dit 2 )

Bit > R-E2

Dit , MS4

Dit & M-E2

Dit " M$E2

Dit M2E2

donde$ SA.$ :it a presentar sobre la salida serie. SA#$ La salida serie est autorizada si est a &.

Conjunto de instrucciones del 8085

93

-G.I$ -eset de -SB G.I. Si es & el flipCflop se pone a %. 8S#$ Si es & los enmascarados estn autorizados. 8G.I$ La interrupcin G.I queda prohibida si est a &. 8@.I$ La interrupcin @.I queda prohibida si est a &. 8I.I$ La interrupcin I.I queda prohibida si est a &.

Si el bit < se pone a &, la funcin poner "masJ" pasa a estar permitida. Los bits % al 4 ponen en ser'icio la correspondiente interrupcin -SB colocando un % en la interrupcin que deseamos habilitar. Si colocamos un & en al"uno de los bits % al 4, la interrupcin correspondiente no se cumplir. Si el bit < tiene un %, los bits % al 4 no tienen efectos. Se debe usar esta peculiaridad para en'iar un bit de salida serie sin afectar al enmascaramiento de las interrupciones. 0La instruccin .+ anula la S+81. Si el bit @ 0SA#1 se pone a & se habilita la funcin de salida serie. #l bit G se sit a en la salida SA. donde puede ser tratado por los aparatos perif!ricos. Si el bit @ se pone a cero, el bit G no tendr efecto al"uno, siendo i"norado.

Formato

Potrebbero piacerti anche