CONJUNTO DE INSTRUCCIONES DEL MICROPROCESADOR 8085 Descripción Código Nemotécnico B* C* 1 - INSTRUCCIONES PARA TRANSFERENCIA DE DATOS MOVIMIENTOS AL REGISTRO B Mueva el contenido del Reg. B al Reg. B Mueva el contenido del Reg. C al Reg. B Mueva el contenido del Reg. D al Reg. B Mueva el contenido del Reg. E al Reg. B Mueva el contenido del Reg. H al Reg. B Mueva el contenido del Reg. L al Reg. B Mueva el contenido de M al Reg. B* Mueva el contenido del Reg. A al Reg. B 40 41 42 43 44 45 46 47 MOV B, B MOV B, C MOV B, D MOV B, E MOV B, H MOV B, L MOV B, M MOV B, A 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 48 49 4A 4B 4C 4D 4E 4F MOV C, B MOV C, C MOV C, D MOV C, E MOV C, H MOV C, L MOV C, M MOV C, A 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 50 51 52 53 54 55 56 57 MOV D, B MOV D, C MOV D, D MOV D, E MOV D, H MOV D, L MOV D, M MOV D, A 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 MOVIMIENTOS AL REGISTRO C Mueva el contenido del Reg. B al Reg. C Mueva el contenido del Reg. C al Reg. C Mueva el contenido del Reg. D al Reg. C Mueva el contenido del Reg. E al Reg. C Mueva el contenido del Reg. H al Reg. C Mueva el contenido del Reg. L al Reg. C Mueva el contenido de M al Reg. C* Mueva el contenido del Reg. A al Reg. C MOVIMIENTOS AL REGISTRO D Mueva el contenido del Reg. B al Reg. D Mueva el contenido del Reg. C al Reg. D Mueva el contenido del Reg. D al Reg. D Mueva el contenido del Reg. E al Reg. D Mueva el contenido del Reg. H al Reg. D Mueva el contenido del Reg. L al Reg. D Mueva el contenido de M al Reg. D* Mueva el contenido del Reg. A al Reg. D MOVIMIENTOS AL REGISTRO E Mueva el contenido del Reg. B al Reg. E Mueva el contenido del Reg. C al Reg. E Mueva el contenido del Reg. D al Reg. E Mueva el contenido del Reg. E al Reg. E Mueva el contenido del Reg. H al Reg. E Mueva el contenido del Reg. L al Reg. E Mueva el contenido de M al Reg. E* Mueva el contenido del Reg. A al Reg. E 58 59 5A 5B 5C 5D 5E 5F MOV E, B MOV E, C MOV E, D MOV E, E MOV E, H MOV E, L MOV E, M MOV E, A 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 60 61 62 63 64 65 66 67 MOV H, B MOV H, C MOV H, D MOV H, E MOV H, H MOV H, L MOV H, M MOV H, A 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 68 69 6A 6B 6C 6D 6E 6F MOV L, B MOV L, C MOV L, D MOV L, E MOV L, H MOV L, L MOV L, M MOV L, A 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 MOVIMIENTOS AL REGISTRO H Mueva el contenido del Reg. B al Reg. H Mueva el contenido del Reg. C al Reg. H Mueva el contenido del Reg. D al Reg. H Mueva el contenido del Reg. E al Reg. H Mueva el contenido del Reg. H al Reg. H Mueva el contenido del Reg. L al Reg. H Mueva el contenido de M al Reg. H* Mueva el contenido del Reg. A al Reg. H MOVIMIENTOS AL REGISTRO L Mueva el contenido del Reg. B al Reg. L Mueva el contenido del Reg. C al Reg. L Mueva el contenido del Reg. D al Reg. L Mueva el contenido del Reg. E al Reg. L Mueva el contenido del Reg. H al Reg. L Mueva el contenido del Reg. L al Reg. L Mueva el contenido de M al Reg. L* Mueva el contenido del Reg. A al Reg. L MOVIMIENTOS DE LOS REGISTROS A LA MEMORIA Mueva el contenido del Reg. B a memoria* Mueva el contenido del Reg. C a memoria* Mueva el contenido del Reg. D a memoria* Mueva el contenido del Reg. E a memoria* Mueva el contenido del Reg. H a memoria* Mueva el contenido del Reg. L a memoria* Mueva el contenido del Reg. A a memoria* 70 71 72 73 74 75 77 MOV M, B MOV M, C MOV M, D MOV M, E MOV M, H MOV M, L MOV M, A 1 1 1 1 1 1 1 7 7 7 7 7 7 7 78 MOV A, B 1 4 MOVIMIENTOS AL REGISTRO A Mueva el contenido del Reg. B al Reg. A Descripción Código Mueva el contenido del Reg. C al Reg. A Mueva el contenido del Reg. D al Reg. A Mueva el contenido del Reg. E al Reg. A Mueva el contenido del Reg. H al Reg. A Mueva el contenido del Reg. L al Reg. A Mueva el contenido de M al Reg. A* Mueva el contenido del Reg. A al Reg. A Nemotécnico B* C* 79 7A 7B 7C 7D 7E 7F MOV A, C MOV A, D MOV A, E MOV A, H MOV A, L MOV A, M MOV A, A 1 1 1 1 1 1 1 4 4 4 4 4 7 4 3E 06 0E 16 1E 26 2E 35 MVI A, data MVI B, data MVI C, data MVI D, data MVI E, data MVI H, data MVI L, data MVI M, data 2 2 2 2 2 2 2 2 7 7 7 7 7 7 7 10 31 01 11 21 2A 3A LXI SP, data16 LXI B, data16 LXI D, data16 LXI H, data16 LHLD addr LDA addr 3 3 3 3 3 3 10 10 10 10 16 13 0A LDAX B 1 7 1A LDAX D 1 7 02 STAX B 1 7 12 32 22 F9 STAX D STA addr SHLD addr SPHL 1 3 3 1 7 13 16 6 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E C6 CE 09 19 29 39 ADD B ADD C ADD D ADD E ADD H ADD L ADD M ADC B ADC C ADC D ADC E ADC H ADC L ADC M ADC A ADI data ACI data DAD B DAD D DAD H DAD SP 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 4 4 4 4 4 4 7 4 4 4 4 4 4 7 4 7 7 10 10 10 10 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D SUB B SUB C SUB D SUB E SUB H SUB L SUB M SUB A SBB B SBB C SBB D SBB E SBB H SBB L 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 4 4 4 4 4 7 4 4 4 4 4 4 4 CARGA INMEDIATA DE LOS REGISTROS Mueva data al Registro A Mueva data al Registro B Mueva data al Registro C Mueva data al Registro D Mueva data al Registro E Mueva data al Registro H Mueva data al Registro L Mueva data a la memoria* CARGA Y ALMACENAMIENTO (load y store) Cargue el apuntador de la pila con data16 Cargue los registros B y C con data16 Cargue los registros D y E con data16 Cargue los registros H y L con data16 Cargue H y L con el contenido de addr Cargue el Reg. A con el contenido de addr Cargue Reg. A con el contenido de la posición de memoria definida por B y C Cargue Reg. A con el contenido de la posición de memoria definida por D y E Almacena Reg. A en la posición de memoria definida por los Reg. B y C Almacena Reg. A en la posición de memoria definida por los Reg. D y E Almacena Reg. A en la dirección Almacena Regs. H y L en la dirección Mueva el contenido de H y L al stack pointer 2 - INSTRUCCIONES LOGICAS Y ARITMETICAS SUMAS O ADICIONES Sume el Reg. B al Reg. A Sume el Reg. C al Reg. A Sume el Reg. D al Reg. A Sume el Reg. E al Reg. A Sume el Reg. H al Reg. A Sume el Reg. L al Reg. A Sume el contenido de M al Reg. A* Sume el Reg. B y el acarreo al Reg. A Sume el Reg. C y el acarreo al Reg. A Sume el Reg. D y el acarreo al Reg. A Sume el Reg. E y el acarreo al Reg. A Sume el Reg. H y el acarreo al Reg. A Sume el Reg. L y el acarreo al Reg. A Sume el contenido de M y el acarreo al Reg. A* Sume el Reg. A y el acarreo al Reg. A Sume data al registro A Sume data y el acarreo al registro A Sume los Regs. B y C a los Regs. H y L Sume los Regs. D y E a los Regs. H y L Sume los Regs. H y L a los Regs. H y L Sume el apuntador de la pila a los Regs. H y L RESTAS O SUSTRACCIONES Reste el Reg. B del Reg. A Reste el Reg. C del Reg. A Reste el Reg. D del Reg. A Reste el Reg. E del Reg. A Reste el Reg. H del Reg. A Reste el Reg. L del Reg. A Reste el contenido de M del Reg. A* Reste el Reg. A del Reg. A Reste el Reg. B y el préstamo del Reg. A Reste el Reg. C y el préstamo del Reg. A Reste el Reg. D y el préstamo del Reg. A Reste el Reg. E y el préstamo del Reg. A Resta el Reg H y el préstamo del Reg. A Resta el Reg H y el préstamo del Reg. A Descripción Resta el contenido de M. y el préstamo del Registro A Resta el Reg A y el préstamo del Reg. A Resta data del Registro A Resta data y el préstamo del Reg. A Código Nemotécnico B* C* SBB M SBB A SUI data SBI data 1 1 2 2 7 4 7 7 3C 04 0C 14 1C 24 2C 03 13 23 34 33 INR A INR B INR C INR D INR E INR H INR L INX B INX D INX H INR R INX SP 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 6 1 6 1 6 1 10 1 6 3D 05 0D 15 1D 25 2D 0B 1B 2B 35 3B DCR A DCR B DCR C DCR D DCR E DCR H DCR L DCX B DCX D DCX H DCR M DCX SP 1 4 1 4 1 4 1 4 1 4 1 4 1 4 1 6 1 6 1 6 1 10 1 6 A0 A1 A2 A3 A4 A5 ANA B ANA C ANA D ANA E ANA H ANA L 1 1 1 1 1 1 4 4 4 4 4 4 A6 A7 E6 ANA M ANA A ANI data 1 1 2 7 4 7 B0 B1 B2 B3 B4 B5 ORA B ORA C ORA D ORA E ORA H ORA L 1 1 1 1 1 1 4 4 4 4 4 4 B6 B7 F6 ORA M ORA A ORI data 1 1 2 7 4 7 DECREMENTOS Decremente el Registro A Decremente el Registro B Decremente el Registro C Decremente el Registro D Decremente el Registro E Decremente el Registro H Decremente el Registro L Decremente los Registros B y C Decremente los Registros D y E Decremente los Registros H y L Decremente el contenido de M* Decremente el apuntador de la pila OPERACIÓN LOGICA AND Haga un AND lógico entre Reg. B y Reg. A Haga un AND lógico entre Reg. C y Reg. A Haga un AND lógico entre Reg. D y Reg. A Haga un AND lógico entre Reg. E y Reg. A Haga un AND lógico entre Reg. H y Reg. A Haga un AND lógico entre Reg. L y Reg. A Haga un AND lógico entre el contenido de M y el Reg. A* Haga un AND lógico entre Reg. A y Reg. A Haga un AND lógico entre data y Reg. A Código Nemotécnico B* C* 1 1 1 1 1 1 1 1 4 4 4 4 4 4 4 4 OTRAS 9E 9F D6 DE INCREMENTOS Incremente el Registro A Incremente el Registro B Incremente el Registro C Incremente el Registro D Incremente el Registro E Incremente el Registro H Incremente el Registro L Incremente los Registros B y C Incremente los Registros D y E Incremente los Registros H y L Incremente el contenido de M* Incremente el apuntador de la pila Descripción Rotar el Registro A a la derecha Rotar el Registro A a la izquierda Rotar el Reg. A a la der. con acarreo Rotar el Reg. A a la izq. con acarreo Complemente A Fijar la bandera e acarreo Complementar la bandera de acarreo Haga un ajuste decimal a A 0F 07 1F 17 2F 37 3F 27 RRC RLC RAR RAL CMA STC CMC DAA 3 - INSTRUCCIONES DE CAMBIO DE SECUENCIA EN EL PROGRAMA SALTOS Salte incondicionalmente a la dirección Salte a addr si hay acarreo Salte a addr si no hay acarreo Salte a addr si es cero Salte a addr si no es cero Salte a addr si hay paridad impar Salte a addr si hay paridad par Salte a addr si el signo es positivo Salte a addr si el signo es negativo C3 DA D2 CA CA E2 EA F2 FA JMP addr JC addr JNC addr JZ addr JNZ addr JPO addr JPE addr JP addr JM addr 3 3 3 3 3 3 3 3 3 10 7/10 7/10 7/10 7/10 7/10 7/10 7/10 7/10 Mueva los Regs. H y L al contador de programa E9 PCHL 1 8 CD DC D4 CC C4 E4 EC F4 FC CALL addr CC addr CNC addr CZ addr CNZ addr CPO addr CPE addr CP addr CM addr 3 3 3 3 3 3 3 3 3 16 9/18 9/18 9/18 9/18 9/18 9/18 9/18 9/18 C9 D8 D0 C8 C0 E0 E8 F0 F8 RET RC RNC RZ RNZ RPO RPE RP RM 1 1 1 1 1 1 1 1 1 10 6/12 6/12 6/12 6/12 6/12 6/12 6/12 6/12 C7 CF D7 DF E7 EF F7 FF RST 0 RST 1 RST 2 RST 3 RST 4 RST 5 RST 6 RST 7 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 12 12 12 12 10 10 10 16 16 6 4 4 4 6 10 10 4 4 LLAMADAS Llame a la subrutina de la dirección Llame a la subrutina si hay acarreo Llame a la subrutina si no hay acarreo Llame a la subrutina si es cero Llame a la subrutina si no es cero Llame a la subrutina si hay paridad impar Llame a la subrutina si hay paridad par Llame a la subrutina si es positivo Llame a la subrutina si es negativo RETORNOS Retorne incondicionalmente Retorne si hay acarreo Retorne si no hay acarreo Retorne si es cero Retorne si no es cero Retorne si hay paridad impar Retorne si hay paridad par Retorne si el signo es positivo Retorne si el signo es negativo OPERACIÓN LOGICA OR REINICIACIONES (RESTARTS) Haga un OR lógico entre Reg. B y Reg. A Haga un OR lógico entre Reg. C y Reg. A Haga un OR lógico entre Reg. D y Reg. A Haga un OR lógico entre Reg. E y Reg. A Haga un OR lógico entre Reg. H y Reg. A Haga un OR lógico entre Reg. L y Reg. A Haga un OR lógico entre el contenido de M y el Reg. A* Haga un OR lógico entre Reg. A y Reg. A Haga un OR lógico entre data y Reg. A Reinicie en la posición 0 Reinicie en la posición 1 Reinicie en la posición 2 Reinicie en la posición 3 Reinicie en la posición 4 Reinicie en la posición 5 Reinicie en la posición 6 Reinicie en la posición 7 de interrupción de interrupción de interrupción de interrupción de interrupción de interrupción de interrupción de interrupción 4 - INSTRUCCIONES DE PILA, ENTRADA/SALIDA Y DE CONTROL OR EXCLUSIVO Haga un OR Exclusivo entre Reg. B y Reg. A Haga un OR Exclusivo entre Reg. C y Reg. A Haga un OR Exclusivo entre Reg. D y Reg. A Haga un OR Exclusivo entre Reg. E y Reg. A Haga un OR Exclusivo entre Reg. H y Reg. A Haga un OR Exclusivo entre Reg. L y Reg. A Haga un OR Exclusivo entre el contenido de M y el Reg. A* Haga un OR Exclusivo entre Reg. A y Reg. A Haga un OR Exclusivo entre data y Reg. A A8 A9 AA AB AC AD XRA B XRA C XRA D XRA E XRA H XRA L 1 1 1 1 1 1 4 4 4 4 4 4 AE AF EE XRA M XRA A XRI data 1 1 2 7 4 7 B8 B9 BA BB BC BD CMP B CMP C CMP D CMP E CMP H CMP L 1 1 1 1 1 1 4 4 4 4 4 4 BE BF FE CMP M CMP A CPI data 1 1 2 7 4 7 COMPARACION Compare Registro B con Registro A Compare Registro B con Registro A Compare Registro B con Registro A Compare Registro B con Registro A Compare Registro B con Registro A Compare Registro B con Registro A Haga un OR Exclusivo entre el contenido de M y el Reg. A* Compare Registro B con Registro A Compare data con Reg. A Inserte los Regs. B y C en la pila Inserte los Regs. D y E en la pila Inserte los Regs. H y L en la pila Inserte el contenido del PSW en la pila Recupere los Regs. B y C de la pila Recupere los Regs. D y E de la pila Recupere los Regs. H y L de la pila Recupere PSW de la pila Intercambie H y L con el tope de la pila Mueva Regs. H y L al apuntador de la pila Deshabilite las interrupciones Habilite las interrupciones No opere (no funcione) Para la operación del microprocesador Pase la señal del puerto port al Reg. A Pase el Reg. A al puerto port Leer mascarilla de interrupción Fijar mascarilla de interrupción C5 D5 E5 F5 C1 D1 E1 F1 E3 F9 F3 FB 00 76 DB D3 20 30 PUSH B PUSH D PUSH H PUSH PSW POP B POP D POP H POP PSW XTHL SPHL DI EI NOP HLT IN port OUT port RIM SIM Notas: B*: Número de bytes ocupados en el código objeto. C*: Número de ciclos o estados de reloj (T) empleados por la instrucción Cuando hay mas de dos espscificaciones (7/10, 9/18, 6/12) la primera corresponde al número de estados cuando no se produce bifurque y el segundo cuando sí se produce addr: dirección de memoria (16 bits). data: dato de 8 bits (un Byte). data16: Un dato de 16 bits (2 Bytes) *: la dirección de memoria (M) está especificada por el contenido de los registros H y L