MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de...

21
1 MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080 Registro de Estado S Z Ca P C S: Bit de Signo Z: Bit de Cero Ca: Carry Auxiliar P: Bit de Paridad C: Bit de Carry AC: Acumulador ACI -Suma en forma inmediata un dato con el acumulador con carry. Mnemónico ACI Hexa CE Operando D8 Flags afectados C,S,Z,P,AC Ciclos de reloj 7 Esta instrucción suma el dato de 8 bits especificado por D8, mas el contenido del bit de carry, al acumulador. El resultado se guarda en el acumulador. ADC -Suma un registro o lugar de memoria con el acumulador con carry. Mnemónico ADC Operando R Flags afectados C,S,Z,P,AC Donde R es A,B,C,D,E,L,H o M. Ciclos de reloj 4/7 Esta instrucción suma el contenido del registro especificado por R mas el bit de carry al acumulador. Si el registro especificado es M, se usará el lugar de memoria designado por el par HL. Hexa ADC B 88 ADC C 89 ADC D 8A ADC E 8B ADC H 8C ADC L 8D ADC M 8E ADC A 8F ADD -Suma un registro o memoria al acumulador. Mnemónico ADD Operando R Flags afectados C,S,Z,P,AC Donde R es A,B,C,D,E,L,H, o M. Ciclos de reloj 4/7 Esta instrucción suma el contenido del registro designado con R al contenido del acumulador, guardando el resultado en el acumulador. El acarreo, de existir o no, será reflejado en el bit de carry. Si el registro especificado es M, se usará el lugar de memoria designado por el par HL.

Transcript of MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de...

Page 1: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

1

MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080

Registro de Estado

S Z Ca P C

S: Bit de Signo Z: Bit de Cero Ca: Carry Auxiliar P: Bit de Paridad C: Bit de Carry AC: Acumulador

ACI -Suma en forma inmediata un dato con el acumulador con carry. Mnemónico ACI Hexa CE Operando D8 Flags afectados C,S,Z,P,AC Ciclos de reloj 7 Esta instrucción suma el dato de 8 bits especificado por D8, mas el contenido del bit de carry, al acumulador. El resultado se guarda en el acumulador.

ADC -Suma un registro o lugar de memoria con el acumulador con carry. Mnemónico ADC Operando R Flags afectados C,S,Z,P,AC Donde R es A,B,C,D,E,L,H o M.

Ciclos de reloj 4/7

Esta instrucción suma el contenido del registro especificado por R mas el bit de carry al acumulador. Si el registro especificado es M, se usará el lugar de memoria designado por el par HL.

Hexa ADC B 88 ADC C 89 ADC D 8A ADC E 8B ADC H 8C ADC L 8D ADC M 8E ADC A 8F

ADD -Suma un registro o memoria al acumulador. Mnemónico ADD Operando R Flags afectados C,S,Z,P,AC Donde R es A,B,C,D,E,L,H, o M.

Ciclos de reloj 4/7

Esta instrucción suma el contenido del registro designado con R al contenido del acumulador, guardando el resultado en el acumulador. El acarreo, de existir o no, será reflejado en el bit de carry. Si el registro especificado es M, se usará el lugar de memoria designado por el par HL.

Page 2: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

2

Hexa ADD B 80 ADD C 81 ADD D 82 ADD E 83 ADD H 84 ADD L 85 ADD M 86 ADD A 87

ADI -Suma en forma inmediata un dato con el acumulador. Mnemónico ADI Hexa C6 Operando D8 Flags afectados C,S,Z,P,AC Ciclos de reloj 7

Esta instrucción suma el dato de 8 bits representado por D8 con el contenido del acumulador, y el resultado se guarda en el acumulador.

ANA -Realiza la,operación lógica AND entre un registro o lugar de memoria y el acumulador. Mnemónico ANA Operando R Flags afectados C,Z,S,P Donde R es A,B,C,D,E,L,H o M.

Ciclos de reloj 4/7

Esta instrucción realiza la operación lógica AND, bit a bit entre el registro especificado en R y el acumulador. El resultado se guarda en el acumulador. El flag de carry es puesto a 0. Si M es el registro especificado, se usará el contenido del lugar de memoria direccionado por el par HL.

Hexa ANA B A0 ANA C A1 ANA D A2 ANA E A3 ANA H A4 ANA L A5 ANA M A6 ANA A A7

ANI -Realiza la operación lógica AND entre un dato y el acumulador. Mnemónico ANI Hexa E6 Operando D8 Flags afectados C,Z,S,AC Ciclos de reloj 7

Esta instrucción realiza la operación lógica AND bit a bit, entre el dato de 8 bits especificado por D8, con el contenido del acumulador, y el resultado se guarda en el acumulador. El flag de carry es puesto a 0.

CALL -Llama a subrutina. Mnemónico CALL Hexa CD Operando D16

Page 3: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

3

Flags afectados --- Ciclos de reloj 18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16. La dirección de retorno se salvaguarda en la memoria y el puntero de pila se decrementa en 2.

CC -Llama si hay carry. Mnemónico CC Hexa DC Operando D16 Flags afectados --- Ciclos de reloj 9/18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16, si el flag de carry está en 1; la dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si está en 0, continúa con la dirección siguiente.

CM -Llama si es negativo. Mnemónico CM Hexa FC Operando D16 Flags afectados --- Ciclos de reloj 8/18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16 si el bit de signo está en 1. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el bit de signo está en 0, continúa con la dirección siguiente.

CMA -Complemento del acumulador. Mnemónico CMA Hexa 2F Operando --- Flags afectados --- Ciclos de reloj 4 El contenido del acumulador es complementado bit a bit

CMC -Complementa el bit de carry. Mnemónico CMC Hexa 3F Operando --- Flags afectados C Ciclos de reloj 4 Esta instrucción causa la complementación del flip flop de carry. Si el flag de carry es 0, CMC lo pone a 1; si está en 1, CMC lo pone a 0.

Page 4: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

4

CMP -Compara el acumulador con un registro o locación de memoria. Mnemónico CMP Operando R Flags afectados C,Z,S,P,AC Donde R es A,B,C,D,E,L,H o M.

Ciclos de reloj 4/7

Compara el acumulador con el registro especificado en la instrucción, realizando una resta entre ambos. El resultado de esta diferencia se pierde, ya que el acumulador no se modifica.

El objetivo de utilizar esta instrucción se basa en el análisis de los bits del registro de estado Z, C y S.

El bit de Z se activa si ambos datos son iguales.

El bit de carry se activa si el valor absoluto del registro es mayor que el del acumulador, en este caso el bit de carry cumple la función de bit de pido (borrow).

El bit de signo (N) se activa si el resultado de la diferencia entre el Ac y el registro posee un ¨1¨ en el bit 7.

Hexa CMP B B8 CMP C B9 CMP D BA CMP E BB CMP H BC CMP L BD CMP M BE CMP A BF

CNC -Llama si no hay carry. Mnemónico CNC Hexa D4 Operando D16 Flags afectados --- Ciclos de reloj 9/18 Esta instrucción hace que la ejecución del programa continúe en la dirección dada por D16 si el bit de carry es 0. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el flag de carry esta en 1, continúa con la dirección siguiente.

CNZ -Llama si el bit de cero es 0. Mnemónico CNZ Hexa C4 Operando D16 Flags afectados --- Ciclos de reloj 9/18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16 si el bit de cero es puesto a 0. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el bit de cero esta en 1, continúa con la dirección siguiente.

CP -Llama si es positivo. Mnemónico CP Hexa F4 Operando D16 Flags afectados --- Ciclos de reloj 9/18

Page 5: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

5

Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16 si el bit de signo está en 0. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el bit de signo está en 1, continúa con la dirección siguiente.

CPE -Llama si la paridad es par. Mnemónico CPE Hexa EC Operando D16 Flags afectados --- Ciclos de reloj 9/18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16 si el bit de paridad está en 1. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el bit de paridad está en 0, continúa con la dirección siguiente.

CPI -Compara en forma inmediata con el acumulador. Mnemónico CPI Hexa FE Operando D8 Flags afectados C,Z,S,P Ciclos de reloj 7

Esta instrucción compara el dato de 8 bits representado por D8 con el contenido del acumulador, realizando una resta entre ambos. El resultado de esta diferencia se pierde, ya que el acumulador no se modifica.

El objetivo de utilizar esta instrucción se basa en el análisis de los bits del registro de estado Z, C y S.

El bit de Z se activa si ambos datos son iguales.

El bit de carry se activa si el valor absoluto del dato D8 es mayor que el del acumulador, en este caso el bit de carry cumple la función de bit de pido (borrow).

El bit de signo (N) se activa si el resultado de la diferencia entre el Ac y el dato D8 posee un ¨1¨ en el bit 7.

CPO -Llama si la paridad es impar. Mnemónico CPO Hexa E4 Operando D16 Flags afectados --- Ciclos de reloj 9/18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16 si el bit de paridad está en 0. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el bit de paridad está en 1, continúa con la dirección siguiente.

CZ -Llama si el bit de cero es 1. Mnemónico CZ

Page 6: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

6

Hexa CC Operando D16 Flags afectados --- Ciclos de reloj 9/18 Esta instrucción hace que la ejecución del programa continúe en la dirección especificada por D16 si el bit de cero está en 1. La dirección de retorno se salvaguarda en la memoria pila, y el puntero de pila se decrementa en 2. Si el bit de cero está en 0, continúa con la dirección siguiente.

DAA -Ajuste decimal del acumulador. Mnemónico DAA Hexa 27 Operando --- Flags afectados Z,S,P,C,AC Ciclos de reloj 4 La utilización de esta instrucción solo tiene justificación, luego de una instrucción de suma de dos números decimales, representados en BCD.

La operación que realiza es el tradicional ajuste decimal, el cual se puede descomponer en dos pasos:

a- Si el valor del nible bajo del acumulador es mayor que 9 0 si el carry auxiliar es 1, le suma 6 a este nibble.

b- Si el valor del nible alto del acumulador es mayor que 9 0 si el carry es 1, le suma 6 a este nibble.

DAD -Doble adición. Mnemónico DAD Operando RP Flags afectados C Donde RP es B (por los registros B y C), D (por los registros D y E), H (por los registros H y L) o SP (por el puntero de pila).

Ciclos de reloj 10

El contenido de 16 bits del par especificado por RP, es sumado al contenido de 16 Bits del par HL y el resultado se guarda en HL. Si el par especificado es H, el contenido del par HL será duplicado.

Hexa DAD B 09 DAD D 19 DAD H 29 DAD SP 39

DCR -Decrementa un registro o memoria. Mnemónico DCR Operando R Flags afectados Z,S,P,AC Donde R es A,B,C,D,E,H,L o M

Ciclos de reloj 4/10

Esta instrucción decrementa en 1 el contenido del registro especificado por R.

Hexa DCR B 05 DCR C 0D DCR D 15

Page 7: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

7

DCR E 1D DCR H 25 DCR L 2D DCR M 35 DCR A 3D

DCX -Decrementa un registro par. Mnemónico DCX Operando RP Flags afectados --- Ciclos de reloj 6 Donde RP es B (por los registros B y C), D (por los registros D y E), H (por los registros H y L) o SP (por el puntero de pila).

El contenido de 16 bits del par especificado por RP, es decrementado en 1.

Hexa DCX B 0B DCX D 1B DCX H 2B DCX SP 3B

DI -Inhabilita interrupciones. Mnemónico DI Hexa F3 Operando --- Flags afectados --- Ciclos de reloj 4

Esta instrucción pone en 0 el flip flop de habilitación del 8080 de manera que se ignoren las interrupciones que se pidan. El flip flop se pone automáticamente en 0 luego de un ciclo de reset. También se inhabilitan cuando una interrupción es aceptada. Esto asegura que una interrupción no se autointerrumpa.

EI -Habilita interrupciones. Mnemónico EI Hexa FB Operando --- Flags afectados --- Ciclos de reloj 4 Esta instrucción pone en 1 al flip flop de interrupciones en el 8080, de manera que el sistema reconozca y procese las interrupciones que sean pedidas.

HLT -Alto. Mnemónico HLT Hexa 76 Operando --- Flags afectados --- Ciclos de reloj 5

Page 8: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

8

Esta instrucción causa que el 8080 entre en un estado de espera y solo saldrá de éste al recibir una interrupción, o una señal de reset. Los registros y los flags no son afectados.

IN -Entrada. Mnemónico IN Hexa DB Operando D8 Flags afectados --- Ciclos de reloj 10 Donde D8 es la dirección del periférico de entrada. Esta instrucción hace que el acumulador lea un dato de 8 bits de la puerta especificada por D8.

INR -Incremento de registro o memoria. Mnemónico INR Operando R Flags afectados Z,S,P,AC Donde R es A,B,C,D,E,H,L o M

Ciclos de reloj 4 Esta instrucción causa que un registro, especificado por R, sea incrementado en 1. El carry no se modifica.

Hexa INR B 04 INR C 0C INR D 14 INR E 1C INR H 24 INR L 2C INR M 34 INR A 3C

INX -Incremento de registro par. Mnemónico INX Operando RO Flags afectados --- Ciclos de reloj 6 Donde RP es B (por los registros B y C), D (por los registros D y E), H (por los registros H y L) o SP (por el puntero de pila).

El contenido de 16 bits del registro par especificado por RP, es incrementado en 1.

Hexa INX B 03 INX D 13 INX H 23 INX SP 33

JC -Salta si el bit de carry es 1 Mnemónico JC Hexa DA Operando D16 Flags afectados --- Ciclos de reloj 7/10 Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el flag de carry está en 1. Si el flag de carry está en 0, continúa con la proxima instrucción.

Page 9: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

9

JM -Salta si el flag de signo es 1. Mnemónico JM Hexa FA Operando D16 Flags afectados --- Ciclos de reloj 7/10 Esta instrucción hace que el programa continúe en el lugar de memoria especificado por D16, si el flag de signo es 1. Si es 0, continúa con la proxima instrucción.

JMP -Salto incondicional. Mnemónico JMP Hexa C3 Operando D16 Flags afectados --- Ciclos de reloj 10 Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16.

JNC -Salta si el flag de carry es 0. Mnemónico JNC Hexa D2 Operando D16 Flags afectados --- Ciclos de reloj 7/10

Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el flag de carry está en 0. Si el flag de carry está en 1, continúa con la proxima instrucción.

JNZ -Salta si el flag de cero es 0. Mnemónico JNZ Hexa C2 Operando D16 Flags afectados --- Ciclos de reloj 7/10

Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el flag de cero está en 0. Si el flag de cero está en 1, continúa con la proxima instrucción.

JP -Salta si es positivo. Mnemónico JP Hexa F2 Operando D16 Flags afectados --- Ciclos de reloj 7/10

Page 10: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

10

Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el bit de signo está en 0. Si el bit de signo está en 1, continúa con la proxima instrucción.

JPE -Salta si la paridad es par. Mnemónico JPE Hexa EA Operando D16 Flags afectados --- Ciclos de reloj 7/10 Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el flag de paridad está activo en 1, indicando paridad par. Si el flag de paridad está en 0, continúa con la proxima instrucción.

JPO -Salta si la paridad es impar. Mnemónico JPO Hexa E2 Operando D16 Flags afectados --- Ciclos de reloj 7/10 Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el flag de paridad está en 0, indicando paridad impar. Si el flag de paridad está en 1, continúa con la proxima instrucción.

JZ -Salta si el flag de cero es 1. Mnemónico JZ Hexa CA Operando D16 Flags afectados --- Ciclos de reloj 7/10 Esta instrucción hace que la ejecución del programa continúe en el lugar de memoria especificado por D16, si el flag de cero está en 1. Si el flag de cero está en 0, continúa con la proxima instrucción.

LDA -Carga el acumulador en forma directa. Mnemónico LDA Hexa 3A Operando D16 Flags afectados --- Ciclos de reloj 13 Esta instrucción carga el acumulador con el contenido del lugar de memoria especificado en la instrucción por la dirección D16.

Page 11: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

11

LDAX -Carga el acumulador. Mnemónico LDAX Operando RP Flags afectados --- Donde RP es uno de los pares B (B/C) o D (D/E).

Ciclos de reloj 7

Carga en el acumulador el contenido de la locación de memoria direccionada por el par registro RP especificado en la instrucción.

Hexa LDAX B 0A LDAX D 1A

LHLD -Carga H y L en forma directa. Mnemónico LHLD Hexa 2A Operando D16 Flags afectados --- Ciclos de reloj 16 Esta instrucción hace que el contenido de la locación de memoria especificado por D16 se cargue en L. El contenido de la locación siguiente que D16 se carga en el registro H.

LXI -Carga en forma inmediata un registro par. Mnemónico LXI Operando RP, D16 Flags afectados --- Ciclos de reloj 10 Donde RP es B (por los registros B y C), D (por los registros D y E), H (por los registros H y L) o SP (por el puntero de pila).

Esta instrucción carga en el par especificado por RP, los 16 bits especificados por D16 en la instrucción.

Hexa LXI B 01 LXI D 11 LXI H 21 LXI SP 31

MOV -Transferencia entre registros. Mnemónico MOV Operandos R,S Flags afectados --- Donde R y S son A,B,C,D,E,L,H o M.

Ciclos de reloj 4/7

Esta instrucción hace que el byte de datos del registro designado por S (fuente) se transfiera al registro designado por R (destino). Si M es uno de los registros especificados, se usará el contenido del lugar de memoria direccionado por el par HL. MOV A,A y demás variantes donde R y S designan el mismo registro, son instrucciones válidas, pero no serán ejecutadas.(equivalen a una NOP).

Hexa MOV B,B 40 MOV B,C 41 MOV B,D 42 MOV B,E 43

Page 12: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

12

MOV B,H 44 MOV B,L 45 MOV B,M 46 MOV B,A 47 MOV C,B 48 MOV C,C 49 MOV C,D 4A MOV C,E 4B MOV C,H 4C MOV C,L 4D MOV C,M 4E MOV C,A 4F MOV D,B 50 MOV D,C 51 MOV D,D 52 MOV D,E 53 MOV D,H 54 MOV D,L 55 MOV D,M 56 MOV D,A 57 MOV E,B 58 MOV E,C 59 MOV E,D 5A MOV E,E 5B MOV E,H 5C MOV E,L 5D MOV E,M 5E MOV E,A 5F MOV H,B 60 MOV H,C 61 MOV H,D 62 MOV H,E 63 MOV H,H 64 MOV H,L 65 MOV H,M 66 MOV H,A 67 MOV L,B 68 MOV L,C 69 MOV L,D 6A MOV L,E 6B MOV L,H 6C MOV L,L 6D MOV L,M 6E MOV L,A 6F MOV M,B 70 MOV M,C 71 MOV M,D 72 MOV M,E 73 MOV M,H 74 MOV M,L 75 MOV M,A 77 MOV A,B 78 MOV A,C 79 MOV A,D 7A MOV A,E 7B MOV A,H 7C MOV A,L 7D MOV A,M 7E MOV A,A 7F

MVI -Carga inmediata de un registro o memoria. Mnemónico MVI Operando R,D8 Flags afectados --- Donde R es A,B,C,D,E,L,H o M.

Ciclos de reloj 4/7

Esta instrucción carga el dato de 8 bits en el registro designado por R.

Hexa MVI B 06 MVI D 16 MVI H 26 MVI M 36 MVI C 0E MVI E 1E MVI L 2E MVI A 3E

NOP -No opera. Mnemónico NOP Hexa 00 Operando --- Flags afectados --- Ciclos de reloj 4 No realiza ninguna operación. El contador de programa (PC) se incrementa en uno y la ejecución continúa en la próxima instrucción.

ORA -Or entre un lugar de memoria o registro y el acumulador. Mnemónico ORA Operando R Flags afectados C,Z,S,P Donde R es A,B,C,D,E,L,H o M.

Ciclos de reloj 7

Page 13: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

13

Esta instrucción realiza la operación OR bit a bit entre el registro especificado por R y el acumulador. El resultado se guarda en el acumulador. El flag de carry es puesto a 0. Si M es el registro especificado, usará el contenido del lugar de memoria direccionado por el par HL.

Hexa ORA B B0 ORA C B1 ORA D B2 ORA E B3 ORA H B4 ORA L B5 ORA M B6 ORA A B7

ORI -Or inmediato con el acumulador. Mnemónico ORI Hexa EE Operando D8 Flags afectados C,Z,S,P Ciclos de reloj 7 Esta instrucción realiza la operación lógica OR bit a bit entre el dato de 8 bits representado por D8 y el contenido del acumulador. El resultado es almacenado en el acumulador. El flag de carry es puesto en 0.

OUT -Salida. Mnemónico OUT Hexa D3 Operando D8 Flags afectados --- Ciclos de reloj 10 Donde D8 representa la dirección del periférico de salida. Esta instrucción transfiere el contenido de 8 bits del acumulador por el bus de datos, al periférico especificado por D8.

PCHL -Carga el contador de programa. Mnemónico PCHL Hexa E9 Operando --- Flags afectados --- Ciclos de reloj 6 Esta instrucción hace que el PC se cargue con el contenido de los registros HL. Esto hace que la ejecución del programa siga en la dirección de memoria especificada por H y L.

POP -Saca datos de la pila. Mnemónico POP Operando RP Flags afectados --- Ciclos de reloj 10 Donde RP es B (por los registros B y C), D (por los registros D y E), H (por los registros H y L), o PSW (por los flags y el acumulador).

Page 14: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

14

El contenido del lugar de memoria cuya dirección está en el registro SP, es transferido a la parte baja del registro par especificado, y el dato contenido en el lugar de memoria siguiente, es cargado en la parte alta del registro especificado.

El SP es incrementado en dos.

Para el caso de PSW, la parte alta del registro corresponde al acumulador y la parte baja al código de condición.

Hexa POP B C1 POP D D1 POP H E1 POP PSW F1

PUSH -Guarda datos en la pila. Mnemónico PUSH Operando RP Flags afectados --- Ciclos de reloj 12 Donde RP es B (por los registros B y C), D (por los registros D y E), H (por los registros H y L), o PSW (por los flags y el acumulador).

Esta instrucción salvaguarda el par especificado por RP en la pila, y decrementa el puntero de pila en 2. La parte alta del registro del par (el que se usa como operando), se salvaguarda en la dirección anterior a la que contiene SP. La parte baja es guardada dos lugares anteriores al puntero. Note que el puntero de pila es primero decrementado y luego se salvaguarda el registro. Esto significa que la instrucción PUSH B no guardará el registro B en la locación direccionada por el puntero sino en un lugar anterior, y el registro C dos lugares anteriores.

Cuando se usa PUSH PSW, los flags se guardan en un lugar anterior al indicado por el puntero, y el acumulador, dos lugares menos que donde indica el puntero. Los flags se salvaguardan como sigue.

bit 7 6 5 4 3 2 1 0 flag S Z 0 AC 0 P 1 C Hexa PUSH B C5 PUSH D D5 PUSH H E5 PUSH PSW F5

RAL -Rota el acumulador hacia la izquierda a través del bit de carry. Mnemónico RAL Hexa 17 Operando --- Flags afectados C Ciclos de reloj 4 Esta instrucción hace rotar a la izquierda un bit, cada uno de los bits del acumulador. En esta instrucción el bit de carry se trata como un noveno bit; así el bit mas significativo va al lugar del bit de carry, y el contenido de este, pasa a ocupar el lugar del bit menos significativo.

RAR -Rota el acumulador a la derecha a través del bit de carry. Mnemónico RAR Hexa 1F Operando --- Flags afectados C Ciclos de reloj 4

Page 15: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

15

Esta instrucción hace rotar a la derecha un bit, cada uno de los bits del acumulador. En esta instrucción el bit de carry se trata como un noveno bit; así el bit menos significativo va al lugar del bit de carry, y el contenido de este, pasa a ocupar el lugar del bit mas significativo.

RC -Retorna si hay carry. Mnemónico RC Hexa D8 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de carry es 1, saca una dirección de la memoria pila e incrementa el puntero de pila en dos , esta direcciión se carga en el PC. La ejecución del programa continúa en esa dirección. Si el bit de carry es 0 se trata como una NOP.

RET -Retorno. Mnemónico RET Hexa C9 Operando --- Flags afectados --- Ciclos de reloj 10 Esta ejecución saca un dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección.

RLC -Rota el acumulador a la izquierda. Mnemónico RLC Hexa 07 Operando --- Flags afectados C Ciclos de reloj 4 Esta instrucción hace correr (rotar) un lugar los bits del acumulador. El bit mas significativo pasa a ser el menos significativo; además, el BMS queda almacenado en el bit de carry.

RM -Retorna si el bit de signo es 1(negativo). Mnemónico RM Hexa F8 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de signo es 1, saca una dirección de la memoria pila e incrementa el puntero de pila en dos . La ejecución del programa continúa en esa dirección. Si el bit de signo es 0 se trata como una NOP.

Page 16: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

16

RNC -Retorna si no hay carry. Mnemónico RNC Hexa D0 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de carry es 0 saca una dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección. Si el bit de carry es 1 se trata como una NOP.

RNZ -Retorna si el bit de cero es 0. Mnemónico RNZ Hexa C0 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de cero es 0, saca una dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección. Si el bit de cero es 1 se trata como una NOP.

RRC -Rota el acumulador a la derecha. Mnemónico RRC Hexa 0F Operando --- Flags afectados C Ciclos de reloj 4 Esta instrucción hace correr (rotar) un lugar los bits del acumulador hacia la derecha .El bit menos significativo pasa a ser el mas significativo; además, el bms queda almacenado en el bit de carry.

RP -Retorna si el bit de signo es 0(positivo). Mnemónico RP Hexa F0 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de signo es 0, saca una dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección. Si el bit de signo es 1 se trata como una NOP.

RPE -Retorna si la paridad es par. Mnemónico RPE Hexa E8 Operando ---

Page 17: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

17

Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de paridad es 1, saca una dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección. Si el bit de paridad es 0 se trata como una NOP.

RPO -Retorna si la paridad es impar. Mnemónico RPO Hexa E0 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de paridad es 0, saca una dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección. Si el bit de paridad es 1 se trata como una NOP.

RST -Restablecimiento. Mnemónico RST Operando N Flags afectados --- Ciclos de reloj 12 Donde N es un número entero entre 0 y 7. Esta instrucción rara vez es usada en el listado de un programa. En lugar de eso, se implementa por hardware, y entra por el bus de datos, cuando el 8080 acepta un pedido de interrupción. Esta instrucción se comporta como un llamado incondicional a subrutina a una dirección fija, por lo tanto causa que la ejecución del programa continúe en la dirección dada por 00EXP000, donde EXP es el número N en binario. El contenido del PC, se almacena en la memoria pila, para proveer posteriormente la dirección de retorno. Cada una de las instrucciones RST, tiene un código diferente, y acceden a distintos lugares fijos de memoria (distintas rutinas de servicio).

Hexa RST0 C7 RST1 CF RST2 D7 RST3 DF RST4 E7 RST5 EF RST6 F7 RST7 FF

RZ -Retorna si el bit de cero es 1. Mnemónico RZ Hexa C8 Operando --- Flags afectados --- Ciclos de reloj 6/12 Esta instrucción si el bit de cero es 1, saca una dirección de la memoria pila e incrementa el puntero de pila en dos. La ejecución del programa continúa en esa dirección. Si el bit de cero es 0 se trata como una NOP.

SBB -Resta del acumulador un registro o lugar de memoria con pido (borrow). Mnemónico SBB

Page 18: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

18

Operando R Flags afectados C,S,Z,P,AC Donde R es A,B,C,D,E,H,L o M.

Ciclos de reloj 4

Esta instrucción suma el contenido del flip flop de carry con el registro especificado por R. Este valor luego se resta del acumulador y el resultado se guarda en el acumulador.Si M es el registro especificado, se usará el contenido del lugar de memoria direccionado por el par HL. El flag de carry cumple la función de pido (borrow)

Hexa SBB B 98 SBB C 99 SBB D 9A SBB E 9B SBB H 9C SBB L 9D SBB M 9E SBB A 9F

SBI -Resta en forma inmediata del acumulador con pido. Mnemónico SBI Hexa DE Operando D8 Flags afectados C,S,Z,P,AC Ciclos de reloj 7 Esta instrucción suma el bit de carry al dato de 8 bits especificado en la instrucción por D8. Este valor luego se resta del acumulador usando complemento a dos. El resultado se guarda en el acumulador. Si un exceso ocurre en el bit de mayor orden, el bit de carry es puesto en 1; caso contrario; es puesto en 0. El flag de carry cumple la función de pido (borrow)

SHLD -Almacena H y L en forma directa. Mnemónico SHLD Hexa 22 Operando D16 Flags afectados --- Ciclos de reloj 16 Esta instrucción hace que el contenido del registro L sea almacenado en la dirección especificada en la instrucción por D16. El registro H es almacenado en la dirección posterior a D16.

SPHL -Carga el puntero de pila con el contenido de HL. Mnemónico SPHL Hexa F9 Operando --- Flags afectados --- Ciclos de reloj 6

Page 19: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

19

El contenido de los registros H y L se carga en el puntero de pila. Se pierde el contenido anterior del puntero SP, H y L permanecen invariables.

STA -Almacena en el acumulador en forma directa. Mnemónico STA Hexa 32 Operando D16 Flags afectados --- Ciclos de reloj 13 Esta instrucción almacena el contenido del acumulador en la dirección de memoria especificada en la instrucción por D16.

STAX -Salvaguarda el acumulador. Mnemónico STAX Operando RP Flags afectados --- Ciclos de reloj 7 Donde RP es uno de los pares B (B/C) o D (D/E).

Esta instrucción guarda el contenido del acumulador en la dirección de memoria direccionada por el registro par especificado por RP.

Hexa STAX B 02 STAX D 12

STC -Pone en 1 el bit de carry. Mnemónico STC Hexa 37 Operando --- Flags afectados C Ciclos de reloj 4 Esta instrucción pone en 1 el flip flop de carry. Si estaba en 1, STC lo deja en ese estado.

SUB -Resta del acumulador un registro o lugar de memoria. Mnemónico SUB Operando R Flags afectados C,S,Z,P,AC Donde R es A,B,C,D,E,H,L o M.

Ciclos de reloj 4

Esta instrucción resta del acumulador el registro designado por R, el resultado se guarda en el acumulador. Si el registro especificado es M, se usará el contenido de la locación de memoria direccionada por el par HL. El flag de carry cumple la función de pido (borrow).

Page 20: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

20

Hexa SUB B 90 SUB C 91 SUB D 92 SUB E 93 SUB H 94 SUB L 95 SUB M 96 SUB A 97

SUI -Resta en forma inmediata del acumulador. Mnemónico SUI Hexa D6 Operando D8 Flags afectados C,Z,S,P,AC Ciclos de reloj 7 Esta instrucción resta el dato de 8 bits especificado por D8, del contenido del acumulador. El resultado se guarda en el acumulador. El flag de carry cumple la función de pido (borrow)

XCHG -Intercambia registros. Mnemónico XCHG Hexa EB Operando --- Flags afectados --- Ciclos de reloj 4 El contenido de 16 bits de los registros D y E, se intercambian con el contenido de los registros H y L. El intercambio es entre D y H, y entre E y L.

XRA -Or exclusivo de un registro o lugar de memoria con el acumulador. Mnemónico XRA Operando R Flags afectados C,Z,S,P Donde R es A,B,C,D,E,L,H o M.

Ciclos de reloj 4

Esta instrucción realiza la operación Or exclusivo entre el registro especificado por R y el acumulador. El flag de carry es puesto a 0. Si M es el registro especificado, usará el contenido del lugar de memoria direccionado por el par HL.

Hexa XRA B A8 XRA C A9 XRA D AA XRA E AB XRA H AC XRA L AD XRA M AE XRA A AF

XRI -Or exclusivo en forma inmediata con el acumulador. Mnemónico XRI Hexa EE Operando D8 Flags afectados C,Z,S,AC Ciclos de reloj 7

Page 21: MICROPROCESADORES I SET DE INSTRUCCIONES DEL 8080dea.unsj.edu.ar/mp1/APUNTES/Catedra Set de instrucciones 8085.pdf · El objetivo de utilizar esta instrucción se basa en el análisis

21

Esta instrucción realiza la operación lógica Or exclusivo bit a bit entre el dato de 8 bits representado por D8 y el contenido del acumulador. El resultado se guarda en el acumulador, y el flag de carry es puesto en 0.

XTHL -Intercambia contenido de la memoria pila con el puntero HL. Mnemónico XTHL Hexa E3 Operando --- Flags afectados --- Ciclos de reloj 16 El contenido del registro L es intercambiado con el contenido de la locación de memoria direccionada por el puntero de pila. El contenido del registro H es intercambiado con el contenido de la locación de memoria un lugar mayor que el direccionado por el puntero.