Mnemonico |
SZHPNC |
Descripción |
Notas |
ADC A,s |
***V0* |
Suma con Acarreo |
0 |
ADC HL,ss |
**?V0* |
Suma con Acarreo |
HL=HL+ss+CY |
ADD A,s |
***V0* |
Suma |
A=A+s |
ADD HL,ss |
--?-0* |
Suma |
HL=HL+ss |
ADD IX,pp |
--?-0* |
Suma |
IX=IX+pp |
ADD IY,rr |
--?-0* |
Suma |
IY=IY+rr |
AND s |
***P00 |
Y Logico |
A=A&s |
BIT b,m |
?*1?0- |
Testear Bit |
m&{2^b} |
CALL cc,nn |
------ |
Llamada Conditional |
Si cc CALL |
CALL nn |
------ |
LLamada Inconditional |
-[SP]=PC,PC=nn |
CCF |
--?-0* |
Negar Acarreo |
CY=~CY |
CP s |
***V1* |
Comparar |
A-s |
CPD |
****1- |
Comparar y Decrementar |
A-[HL],HL=HL-1,BC=BC- |
CPDR |
****1- |
Comparar, Dec.,
Repetir |
CPD hasta que
A=[HL]o BC=0 |
CPI |
****1- |
Comparar y Incrementar |
A-[HL],HL=HL+1,BC=BC-1 |
CPIR |
****1- |
Comparar, Inc.,
Repetir |
CPI hasta que
A=[HL]o BC=0 |
CPL |
--1-1- |
Complementar |
A=~A |
DAA |
***P-* |
Ajute Decimal
Acc. |
A=format BCD |
DEC s |
***V1- |
Decrementar |
s=s-1 |
DEC xx |
------ |
Decrementar |
xx=xx-1 |
DEC ss |
------ |
Decrementar |
ss=ss-1 |
DI |
------ |
Deshabilitar
Interrupciones |
|
DJNZ e |
------ |
Dec., Saltar
No-Cero |
B=B-1 hasta que
B=0 |
EI |
------ |
Habilitar Interrupciones |
|
EX [SP],HL |
------ |
Intercambiar |
[SP]<->HL |
EX [SP],xx |
------ |
Intercambiar |
[SP]<->xx |
EX AF,AF' |
------ |
Intercambiar |
AF<->AF' |
EX DE,HL |
------ |
Intercambiar |
DE<->HL |
EXX |
------ |
Intercambiar |
qq<->qq'
(excepto AF) |
HALT |
------ |
Parar |
|
IM n |
------ |
Modo de Interrupción |
(n=0,1,2) |
IN A,[n] |
------ |
Entrada |
A=[n] |
IN r,[C] |
***P0- |
Entrada |
r=[C] |
INC r |
***V0- |
Incrementar |
r=r+1 |
INC [HL] |
***V0- |
Incrementar |
[HL]=[HL]+1 |
INC xx |
------ |
Incrementar |
xx=xx+1 |
INC [xx+d] |
***V0- |
Incrementar |
[xx+d]=[xx+d]+1 |
INC ss |
------ |
Incrementar |
ss=ss+1 |
IND |
?*??1- |
Entrada y Decrementar |
[HL]=[C],HL=HL-1,B=B-1 |
INDR |
?1??1- |
Entrada, Dec.,
Repetir |
IND hasta que
B=0 |
INI |
?*??1- |
Entrada e Incrementar |
[HL]=[C],HL=HL+1,B=B-1 |
INIR |
?1??1- |
Entrada, Inc.,
Repetir |
INI hasta que
B=0 |
JP [HL] |
------ |
Salto incondicional |
PC=[HL] |
JP [xx] |
------ |
Salto incondicional |
PC=[xx] |
JP nn |
------ |
Salto incondicional |
PC=nn |
JP cc,nn |
------ |
Salto Condicional |
Si cc JP |
JR e |
------ |
Salto incondicional |
PC=PC+e |
JR cc,e |
------ |
Salto Conditional |
Si cc JR(cc=C,NC,NZ,Z) |
LD dst,src |
------ |
Cargar |
dst=src |
LD A,i |
**0*0- |
Cargar |
A=i (i=I,R) |
LDD |
--0*0- |
Cargar y Decrementar |
[DE]=[HL],HL=HL-1,# |
LDDR |
--000- |
Cargar, Dec.,
Repetir |
LDD hasta que
BC=0 |
LDI |
--0*0- |
Cargar e Incrementar |
[DE]=[HL],HL=HL+1,# |
LDIR |
--000- |
Cargar, Inc.,
Repetir |
LDI hasta que
BC=0 |
NEG |
***V1* |
Negar |
A=-A |
NOP |
------ |
No Operación |
|
OR s |
***P00 |
O Logico |
A=Avs |
OTDR |
?1??1- |
Salida, Dec.,
Repetir |
OUTD hasta que
B=0 |
OTIR |
?1??1- |
Salida, Inc.,
Repetir |
OUTI hasta que
B=0 |
OUT [C],r |
------ |
Salida |
[C]=r |
OUT [n],A |
------ |
Salida |
[n]=A |
OUTD |
?*??1- |
Salida y Decrementar |
[C]=[HL],HL=HL-1,B=B-1 |
OUTI |
?*??1- |
Salida e Incrementar |
[C]=[HL],HL=HL+1,B=B-1 |
POP xx |
------ |
Desapilar |
xx=[SP]+ |
POP qq |
------ |
Desapilar |
qq=[SP]+ |
PUSH xx |
------ |
Apilar |
-[SP]=xx |
PUSH qq |
------ |
Apilar |
-[SP]=qq |
RES b,m |
------ |
Resetear bit |
m=m&{~2^b} |
RET |
------ |
Retornar |
PC=[SP]+ |
RET cc |
------ |
Retorno Condicional |
Si cc RET |
RETI |
------ |
Retorno de Interrupción |
PC=[SP]+ |
RETN |
------ |
Retorno de NMI |
PC=[SP]+ |
RL m |
**0P0* |
Rotar a la Izquierda |
m={CY,m}<- |
RLA |
--0-0* |
Rotar a la Izq.
Acc. |
A={CY,A}<- |
RLC m |
**0P0* |
Rotar a la Izq.
Circular |
m=m<- |
RLCA |
--0-0* |
Rotar a la Izq.
Circular |
A=A<- |
RLD |
**0P0- |
Rotar 4 bits
a la Izq. |
{A,[HL]}={A,[HL]}<-
## |
RR m |
**0P0* |
Rotar a la Derecha |
m=->{CY,m} |
RRA |
--0-0* |
Rotar a la Derecha
Acc. |
A=->{CY,A} |
RRC m |
**0P0* |
Rotar a la Der.
Circular |
m=->m |
RRCA |
--0-0* |
Rotar a la Der.
Circular |
A=->A |
RRD |
**0P0- |
Rotar 4 bits
a la Der. |
{A,[HL]}=->{A,[HL]}
## |
RST p |
------ |
Restart |
(p=0H,8H,10H,...,38H) |
SBC A,s |
***V1* |
Resta con Acarreo |
A=A-s-CY |
SBC HL,ss |
**?V1* |
Resta con Acarreo |
HL=HL-ss-CY |
SCF |
-1 |
Setear Acarreo |
CY=1 |
SET b,m |
------ |
Setear bit |
m=mv{2^b} |
SLA m |
**0P0* |
Desplazamiento
a Izq. Aritmetico. |
m=m*2 |
SRA m |
**0P0* |
Desplazamiento
a Der. Aritmetico. |
m=m/2 |
SRL m |
**0P0* |
Dezplazamiento
a Der. Logico |
m=->{0,m,CY} |
SUB s |
***V1* |
Resta |
A=A-s |
XOR s |
***P00 |
O Exclusivo Logico |
A=Axs |
Flags de estado: |
|
F |
-*01?
|
Flag no afectado/afectado/reseteado/seteado/desconocido |
S |
S
|
Sign flag (Bit
7) |
Z |
Z
|
Zero flag (Bit
6) |
HC |
H
|
Half Carry flag
(Bit 4) |
P/V |
P
|
Parity/Overflow
flag (Bit 2, V=overflow) |
N |
N
|
Add/Subtract flag
(Bit 1) |
CY |
C |
Carry flag (Bit
0) |
Modos de Direccionamiento: |
|
n |
Direccionamiento
Inmediato |
|
nn |
Direccionamiento
Immediato extendido |
e |
Direccionamiento
Relativo (PC=PC+2+offset) |
[nn] |
Direccionamiento
Extendido |
|
[xx+d] |
Direccionamient
Indexado |
|
r |
Direccionamiento
a Registro |
|
[rr] |
Direccionamiento
Indirecto a Registro |
|
|
Direccionamiento
Implicito |
|
b |
Direccionamient
a Bit |
|
p |
Direccionamiento
Modificado a pagina cero (ver RST) |
Definición
de constantes, etc: |
|
DEFB n(,...) |
Definir Byte(s) |
|
DEFB 'str'(,...) |
Definir cadena(s)
ASCII |
|
DEFS nn |
Definir Bloque
de Almacenamiento |
|
DEFW nn(,...) |
Definir Word(s) |
|
Registros: |
|
A B C D E |
Registros (8-bit) |
|
AF BC DE HL |
Pares de Registros(16-bit) |
|
F |
Registro de Flags(8-bit) |
|
I |
Interrupt page
address register (8-bit) |
|
IX IY |
Registros Indice
(16-bit) |
|
PC |
Contador de Programa
(16-bit) |
|
R |
Registro de Refresco
de Memoria |
|
SP |
Puntero de Pila
(16-bit) |
|
Abreviaciones: |
b |
Un bit (0 to 7) |
|
cc |
Condición
(C,M,NC,NZ,P,PE,PO,Z) |
d |
Expresión
de 1-byte (-128 to +127) |
dst |
Destino s, ss,
[BC], [DE], [HL], [nn] |
|
e |
Expresión
de 1-byte (-126 to +129) |
m |
Cualquier registro
r, [HL] o [xx+d] |
|
n |
Expresión
de 1-byte
(0 to 255) |
|
nn |
Expresión
de 2-bytes
(0 to 65535) |
|
pp |
Pares de Registros
BC, DE, IX o SP |
|
qq |
Pares de Registros
AF, BC, DE o HL |
|
qq' |
Par alternativo
de registros AF, BC, DE o HL |
r |
Registro A, B,
C, D, E, H o L |
|
rr |
Pares de Registros
BC, DE, IY o SP |
|
s |
Cualquier registro
r, valor n, [HL] o [xx+d] |
|
src |
Fuente s, ss, [BC],
[DE], [HL], nn, [nn] |
ss |
Pares de Registros
BC, DE, HL o SP |
|
xx |
Registro Indice
IX o IY |
|
+ - * / ^ |
Suma/resta/multiplicación/divición/exponente
|
& ~ v x |
Y/NO/O/O exclusivo
logicos |
<- -> |
Rotar Izq./Derecha. |
|
[ ] |
Direccionamiento
Indirecto |
|
[ ]+ -[ ] |
Direccionamiento
Indirecto auto-incremento /decremento |
{ } |
Combinación
de operandos |
|
# |
También
BC=BC-1,DE=DE-1 |
|
## |
Solo los 4 bits
inferiores de acumulador A son usados |
|
|