Instrucciones : MC6809  
   

Mnemonico Op IHNZVC IEXD#R ~ Descripción Notas
ABX 3A ------ X----- 3 Sumar al registro indice X=X+B
ADCa s B9 -***** -XXXXX 5 Suma con acarreo a=a+s+C
ADDa s BB -***** -XXXXX 5 Suma a=a+s
ADDD s F3 -***** -XXX*X 7 Sumar al Doble acc. D=D+s
ANDa s B4 --**0- -XXXXX 5 Y Logico a=a&s
ANDCC s 1C ?????1 ----X- 3 Y Logico con CCR CC=CC&s
ASL d 78 --**** -XXX-X 7 Desplazamiento Aritmetico a la Izq. d=d*2
ASLa 48 --**** X----- 2 Desplazamiento Aritmetico a la Izq. a=a*2
ASR d 77 --**** -XXX-X 7 Desplazamiento Aritmetico a la Der. d=d/2
ASRa 47 --**** X----- 2 Desplazamiento Aritmetico a la Der. a=a/2
BCC m 24 ------ -----x 3 Desvio si no hay acarreo If C=0
BCS m 25 ------ -----x 3 Desvio si hay acarreo If C=1
BEQ m 27 ------ -----x 3 Desvio si es igual If Z=1
BGE m 2C ------ -----x 3 Desvio si es mayor o igual If NxV=0
BGT m 2E ------ -----x 3 Desvio si es mayor If Zv{NxV}=0
BHI m 22 ------ -----x 3 Desvio si es más alto If CvZ=0
BHS m 24 ------ -----x 3 Desvio si es más alto/ igual If C=0
BITa s B5 --**0- -XXXXX 5 Bit Test acumulador a&s
BLE m 2F ------ -----x 3 Desvio si es menor o igual If Zv{NxV}=1
BLO m 25 ------ -----x 3 Devio si es más bajo If C=1
BLS m 23 ------ -----x 3 Desvio se es más bajo/igual If CvZ=1
BLT m 2D ------ -----x 3 Desvio si es menor If NxV=1
BMI m 2B ------ -----x 3 Devio si es negativo If N=1
BNE m 26 ------ -----x 3 Desvio si no es igual If Z=0
BPL m 2A ------ -----x 3 Desvio si es positivo If N=0
BRA m 20 ------ -----x 3 Desviar siempre PC=m
BRN m 21 ------ -----x 3 No desviar NOP
BSR m 8D ------ -----x 7 Desvio a Subrutina -[S]=PC,BRA
BVC m 28 ------ -----x 3 Desvio si no hay desborde If V=0
BVS m 29 ------ -----x 3 Desvio si hay desborde If V=1
CLR d 7F 100 -XXX-X 7 Borrar d=0
CLRa 4F 100 X----- 2 Borrar acumulador a=0
CMPa s B1 --**** -XXXXX 5 Comparar a-s
CMPD s B3 --**** -XXX*X 8 Comparar Doble acc. D-s (10H)
CMPS s BC --**** -XXX*X 8 Comparar puntero de pila S-s (11H)
CMPU s B3 --**** -XXX*X 8 Comparar puntero de pila del Usuario U-s (11H)
CMPi s BC --**** -XXX*X 7 Comparar i-s (Y ~s=8)
COM d 73 --**01 -XXX-X 2 Complementar d=~d
COMa 43 --**01 X----- 7 Complementar acumulador a=~a
CWAI n 3C E????? ----X- K Y CCR, esperar int. CC=CC&n,E=1,
DAA 19 --**** X----- 2 Ajuste Decimal Acumulador A=BCD format
DEC d 7A --***- -XXX-X 7 Decrementar d=d-1
DECa 4A --***- X----- 2 Decrementar acumulador a=a-1
EORa s B8 --**0- -XXXXX 5 O Exclusico Logico a=axs
EXG r,r 1E ------ X----- 8 Intercambiar (tamaño r1=r2) r1<->r2
INC d 7C --***- -XXX-X 7 Incrementar d=d+1
INCa 4C --***- X----- 2 Incrementar acumulador a=a+1
JMP s 7E ------ -XXX-X 4 Saltar PC=EAs
JSR s BD ------ -XXX-X 8 Saltar a Subrutina -[S]=PC,JMP
LBcc nn 10 ------ -----x 5 Desvio condicional largo (~=6) If cc LBRA
LBRA nn 16 ------ -----x 5 Desvio largo incondicional PC=nn
LBSR nn 17 ------ -----x 9 Desvio largo a Subrutina -[S]=PC,LBRA
LDa s B6 --**0- -XXXXX 5 Cargar acumulador a=s
LDD s FC --**0- -XXX*X 6 Cargar Doble acc. D=s
LDS s FE --**0- -XXX*X 7 Cargar puntero de pila S=s (10H)
LDU s FE --**0- -XXX*X 6 Cargar puntero de pila del Usuario U=s
LDi s BE --**0- -XXX*X 6 Cargar registro indice i=s (Y ~s=7)
LEAp s 3X ---i-- -xX--X 4 Cargar dirección Efectiva p=EAs(X=0-3)
LSL d 78 --0*** -XXX-X 7 Desplazamiento a la Izq. Logico d={C,d,0}<-
LSLa 48 --0*** X----- 2 Desplazamiento a la Izq. Logico a={C,a,0}<-
LSR d 74 --0*** -XXX-X 7 Desplazamiento a la Der. Logico d=->{C,d,0}
LSRa 44 --0*** X----- 2 Desplazamiento a la Der. Logico d=->{C,d,0}
MUL 3D ---*-* X----- B Multiplicar D=A*B
NEG d 70 -?**** -XXX-X 7 Negar d=-d
NEGa 40 -?**** X----- 2 Negar acumulador a=-a
NOP 12 ------ X----- 2 No Operación  
ORa s BA --**0- -XXXXX 5 O Logico a=avs
ORCC n 1A ?????? ----X- 3 O CCR CC=CCvn
PSHS r 34 ------ X----- 2 Apilar reg(s) (no S) -[S]={r,...}
PSHU r 36 ------ X----- 2 Apilar reg(s) (no U) -[U]={r,...}
PULS r 35 ?????? X----- 2 Desapilar reg(s) (no S) {r,...}=[S]+
PULU r 37 ?????? X----- 2 Desapilar reg(s) (no U) {r,...}=[U]+
ROL d 79 --**** -XXX-X 7 Rotar a la Izq. d={C,d}<-
ROLa 49 --**** X----- 2 Rotar acc. a la Izq. a={C,a}<-
ROR d 76 --**** -XXX-X 7 Rotar a la Der. d=->{C,d}
RORa 46 --**** X----- 2 Rotar acc. a la Der. a=->{C,a}
RTI 3B -***** X----- 6 Retorno de Interrupción {regs}=[S]+
RTS 39 ------ X----- 5 Retorno de Subrutina PC=[S]+
SBCa s B2 --**** -XXXXX 5 Resta con Acarreo a=a-s-C
SEX 1D --**-- X----- 2 Extender Signo D=B
STa d B7 --**0- -XXX-X 5 Guardar acumulador d=a
STD d FD --**0- -XXX-X 6 Guardar Doble acc. D=a
STS d FF --**0- -XXX-X 7 Guardar puntero de pila S=a (10H)
STU d FF --**0- -XXX-X 6 Guardar puntero de pila del usuario U=a
STi d BF --**0- -XXX-X 6 Guardar registro indice i=a (Y ~s=7)
SUBa s B0 --**** -XXXXX 5 Restar a=a-s
SUBD s B3 --**** -XXX*X 7 Restar al Doble acc. D=D-s
SWI 3F 1----- X----- J Interrupción por Software 1 -[S]={regs}
SWI2 3F E----- X----- K Interrupción por Software 2 SWI (10H)
SWI3 3F E----- X----- K Interrupción por Software 3 SWI (11H)
SYNC 13 ------ X----- 2 Sincronizar con interrupción (min ~s=2)
TFR r,r 1F ------ X----- 6 Transferir (tamaño r1<=r2) r2=r1
TST s 7D --**0- -XXX-X 7 Test s
TSTa 4D --**0- X----- 2 Testear acumulador a
Registro de Codigo de Condición:
CCR -*01?     No afectado/afectado/
reseteado/seteado/desconocido
E E     Flag Entero(Bit 7, si esta seteado RTI~s=F)
F I I     Mascara de interrupción FIRQ/IRQ
(Bit 6/4)
H H     Medio acarreo (Bit 5)
N N     Negativo (Bit 3)
Z Z     Cero (Bit 2)  
V V     Desborde (Bit 1)
C C     Acarreo/prestado (Bit 0)
Modoes de direccionamiento
a I   Inherente (a=A,Op=4XH, a=B,Op=5XH)  
nn,E E   Extendido (Op=E, ~s=e)  
[nn] x   Extendido indirecto  
xx,p! X   Indexado (Op=E-10H, ~s=e-1)  
[xx,p!] X   Indexado indirecto (solo p!=p++,--p)
n,D D   Directo (Op=E-20H, ~s=e-1)  
#n #   Inmediato (8-bit, Op=E-30H, ~s=e-3)
#nn *   Inmediate (16-bit)  
m x   Relativo (PC=PC+2+offset)  
[m] R   Relativo indirecto (igual al anterior)  
Directivas de ensamblador:
DIRECT Modo de direccionamiento directo      
EXTEND Modo de direccionamiento extendido
FCB n Formar Byte Constante      
FCC 'string' Formar Caracteres Constantes      
FDB nn Formar Doble Byte      
RMB nn Reservar Bytes de Memoria      
Registros:
A B Acumuladores (8-bit)      
CC Registro de Codigo de Condición (8-bit)    
D A y B (16-bit, A alto, B bajo)      
DP Registro de Pagina Directa (8-bit)      
PC Contador de Programa (16-bit)      
S U Puntero de pila Hardware/Usuario (16-bit)  
X Y Registros Indice (16-bit)      
Abreviaciones
a Acc A o B (a=A,Op=BXH, a=B,Op=FXH)    
d s EA Destino/fuente/dir. efectiva      
i p r Regs X,Y/regs X,Y,S,U/cualquier reg.    
m Dirección Relativa (-126 to +129)      
n nn expresión de 8/16-bits (0 a 255/65535)  
xx p! A,B,D,nn/p+,-p,p++,--p (indexado)    
+ - * / Suma/resta/multiplicación/división      
& ~ v x Y/NO/O/O exclusivo      
<- -> <-> Rotar a izq./rotar a der./intercambiar    
[ ] [ ]+ -[ ] Dirección Indirecta/incrementar/decr.    
{ } Combinación de operandos      
{regs} Si E {PC,U/S,Y,X,DP,B,A,CC}/{PC,CC}    
(10H) (11H) Opcode hexadecimal que precede el opcode principal  
Vectores del sistema:
FFF0H a FFF1H Reservado por Motorola      
FFF2H a FFF3H Vector de interrupción de la instrucción SWI3      
FFF4H a FFF5H Vector de interrupción de la instrucción SWI2      
FFF6H a FFF7H Vector de int. por hardware rápida (FIRQ)      
FFF8H a FFF9H Vecto de interrupción por Hardware (IRQ)      
FFFAH a FFFBH Vector de interrupción de la instrucción SWI      
FFFCH a FFFDH Vector de interrupción No-enmascarable (NMI)      
FFFEH a FFFFH Vector de Reset      
Esta página es parte del sitio 154iSoftware  
1