Zilog
Instrucciones : Zilog Z80  
   

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

Esta página es parte del sitio 154iSoftware  
Hosted by www.Geocities.ws

1