INSTRUCCIONES 8085

Anuncio
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
Descargar