Mnemonico |
XNZVC |
BWL |
Descripción |
Notas |
ABCD s,d |
*?*?* |
X--
|
Sumar BCD
|
d=BCD{d+s+X}
|
ADD s,d |
***** |
XXX
|
Suma binaria
|
d=d+s
|
ADDA s,An |
----- |
-XX
|
Sumar Direcciones
|
An=An+s
|
ADDI #e,d |
***** |
XXX
|
Suma Inmediata
|
d=d+e
|
ADDQ #q,d |
***** |
XXX
|
Suma Rápida |
d=d+q
|
ADDX s,d |
***** |
XXX
|
Suma Extendida
|
d=d+s+X
|
AND s,d |
-**00 |
XXX
|
Y Logico
|
d=d&s
|
ANDI #e,d |
-**00 |
XXX
|
Y Logico Inmediato
|
d=d&e
|
ASlr d |
***** |
XXX
|
Desplazamiento Aritmetico
|
d=d*2 or d=d/2
|
Bcc l |
----- |
XX-
|
Desvio condicional
|
If cc BRA
|
BCHG s,d |
--*-- |
-XX
|
Bit test y Cambio
|
BTST,d<s>=Z
|
BCLR d |
--*-- |
-XX
|
Bit test y Borrado
|
BTST,d<s>=0
|
BRA l |
----- |
XX
|
Desviar siempre
|
PC=l
|
BSET d |
--*-- |
-XX
|
Bit test y Setear
|
BTST,d<s>=1
|
BSR l |
----- |
XX-
|
Desviar a Subrutina
|
-[SP]=PC,PC=l
|
BTST d |
--*-- |
-XX
|
Bit Test
|
Z=~d<s>
|
CHK s,Dn |
-*??? |
-X-
|
Chequear registro
|
If 0>Dn>s $[18H]
|
CLR d |
-100 |
XXX
|
Borrar operando
|
d=0
|
CMP s,Dn |
-**** |
XXX
|
Comparar
|
Dn-s
|
CMPA s,An |
-**** |
XXX
|
Comparar Direcciones
|
An-s
|
CMPI #e,d |
-**** |
XXX
|
Comparar Inmediato
|
d-e
|
CMPM s,d |
-**** |
XXX
|
Comparar Memoria
|
d-s
|
DBcc Dn,l |
----- |
---
|
Decrementar y Saltar
|
If~cc&Dn-1~-1 BRA
|
DIVS s,Dn |
-***0 |
-X-
|
División con signo
|
Dn={Dn%s,Dn/s}
|
DIVU s,Dn |
-***0 |
-X-
|
División sin signo
|
Dn={Dn%s,Dn/s}
|
EOR Dn,d |
-**00 |
XXX
|
O Exclusiva
|
d=dxDn
|
EORI #e,d |
-**00 |
XXX
|
O Exclusiva Inmediata
|
d=dxe
|
EXG r,r |
----- |
--X
|
Intercambiar registros
|
r<->r
|
EXT Dn |
-**00 |
-XX
|
Extender signo
|
Dn<hi>=Dn<7or15>
|
JMP d |
----- |
---
|
Saltar
|
PC=d
|
JSR d |
----- |
---
|
Salto a Subrutina
|
-[SP]=PC,PC=d
|
LEA s,An |
----- |
--X
|
Cargar Direccion Efectiva
|
An=EA{s}
|
LINK An,#nn |
----- |
---
|
Link y reservar
|
-[SP]=An=SP=SP+nn
|
LSlr d |
***0* |
XXX
|
Logical Shift
|
d=->{C,d,0}<-
|
MOVE s,d |
-**00 |
XXX
|
Mover datos
|
d=s
|
MOVE s,CCR |
***** |
-X-
|
Mover a CCR
|
CCR=s
|
MOVE s,SR |
***** |
-X-
|
Movee a SR
|
SR=s
|
MOVE SR,d |
----- |
-X-
|
Mover desde SR
|
d=SR
|
MOVE USP,An |
----- |
--X
|
Mover USP
|
USP=An or An=USP
|
MOVEA s,An |
----- |
-XX
|
Mover Dirección
|
An=s
|
MOVEM s,d |
----- |
-XX
|
Mover Multiple registros
|
rr=s or d=rr
|
MOVEP s,d |
----- |
-XX
|
Mover datos Perifericos
|
d=Dn or Dn=s
|
MOVEQ #q,d |
-**00 |
--X
|
Mover Rápido
|
d=q
|
MULS s,Dn |
-**00 |
-X-
|
Multiplicación con signo
|
Dn<0:31>=Dn*s
|
MULU s,Dn |
-**00 |
-X-
|
Multiplicación sin signo
|
Dn<0:31>=Dn*s
|
NBCD d |
*?*?* |
X--
|
Negar BCD
|
d=BCD{-d-X}
|
NEG d |
***** |
XXX
|
Negar
|
d=-d
|
NEGX d |
***** |
XXX
|
Negate con Extención
|
d=-d-X
|
NOP |
----- |
---
|
No Operación
|
|
NOT d |
-**00 |
XXX
|
No Logico
|
d=~d
|
OR s,d |
-**00 |
XXX
|
O
|
d=dvs
|
ORI #e,d |
-**00 |
XXX
|
O Inmediato
|
d=dve
|
PEA s |
----- |
--X
|
Empujar Dirección Efectiva
|
-[SP]=EA{s}
|
RESET |
----- |
---
|
Resetear dispositivos externos
|
Reset line=0
|
ROlr d |
-**0* |
XXX
|
Rotar
|
d=->{d}<-
|
ROXlr d |
***0* |
XXX
|
Rotar con Extensión
|
d=->{d}<-,X=C
|
RTE |
***** |
---
|
Retorno desde Excepción
|
SR=[SSP]+,RTS
|
RTR |
***** |
---
|
Returnar y Restaurar
|
SR<0:4>=[SP]+,RTS
|
RTS |
----- |
---
|
Retorno de Subrutina
|
PC=[SP]+
|
SBCD s,d |
*?*?* |
X--
|
Subtraer BCD
|
d=BCD{d-s-X}
|
Scc d |
----- |
X--
|
Setear condicionalmente
|
d=0 or d=-1
|
STOP #nn |
***** |
---
|
Cargar estado y Parar
|
SR=nn, wait
|
SUB s,d |
***** |
XXX
|
Subtraer binario
|
d=d-s
|
SUBA s,An |
----- |
-XX
|
Subtraer Direcciones
|
An=An-s
|
SUBI #e,d |
***** |
XXX
|
Subtraer Inmediato
|
d=d-e
|
SUBQ #q,d |
***** |
XXX
|
Subtraer Rápido
|
d=d-q
|
SUBX s,d |
***** |
XXX
|
Subtraer con Extensión
|
d=d-s-X
|
SWAP Dn |
-**00 |
-X-
|
Intercambiar las mitades del registro
|
Dn<hi><->Dn<lo>
|
TAS d |
-**00 |
X--
|
Testear y Setear
|
d<7>=1
|
TRAP #n |
----- |
---
|
Trap (n=0-15)
|
$[80H+4*n]
|
TRAPV |
----- |
---
|
Trap en Desborde
|
If V=1 $[1CH]
|
TST d |
-**00 |
XXX
|
Testear
|
d
|
UNLK An |
----- |
---
|
Unlink
|
SP=An,An=[SP]+
|
Definición de constantes,
etc... |
DC e(,...) |
XXX |
Definir Constante
|
|
DS e |
XXX |
Definir Espacio de almacenamiento
|
|
Abreviaciones: |
CCR |
-*01? |
|
No afectado/afectado/reset/set/desconocido
|
T |
|
|
Trace mode flag (Bit 15)
|
S |
|
|
Supervisor/user mode select (Bit 13)
|
In |
|
|
Interrupt mask flag #n (Bits 8-10,n=0-2)
|
X |
X |
|
Extend flag (Bit 4)
|
N |
N |
|
Negative flag (Bit 3)
|
Z |
Z |
|
Zero flag (Bit 2)
|
V |
V |
|
Overflow flag (Bit 1)
|
C |
C |
|
Carry flag (Bit 0)
|
.B |
X |
Atributo Byte (8-bit, .S para desvio)
|
.W |
X |
Atributo Palabra (16-bit)
|
|
.L |
X |
Atributo Palabra Larga (32-bit)
|
|
Dn |
Direccionamiento directo
a registro de Datos |
|
An |
Direccionamiento directo
a registro de Direcciones |
|
[An] |
Direccionamiento indirecto
a Registro |
|
[An]+ |
Direccionamiento indirecto
a registro con Post-incremento |
|
-[An] |
Direccionamiento indirecto
a registro con Pre-decrement |
|
n[An] |
Direccionamiento indirecto
a registro con Offset |
|
n[An,r] |
Direccionamiento indirecot
a registro con Indice |
|
nn |
Direccionamiento absoluto
a datos cortos |
|
nnnn |
Direccionamiento absoluto
a datos largos |
|
nn |
Direccionamiento relativo
al contador de Programa |
|
nn[r] |
Direccionamiento contador
de Programa con indice |
|
#e |
Direccionamiento Immediato
de datos |
|
ABSOLUTE_LONG |
Direccionamiento Absoluto
largo (o ABS_LONG) |
|
ABSOLUTE_SHORT |
Direccionamiento Absoluto
corto (o ABS_SHORT) |
|
EVEN |
Poner contador de programa
en dirección par |
|
NO_RORG |
Dishabilitar direccionamiento
Relativo (o PC_DEP) |
|
RORG |
Habilitar direccionamiento
Relativo (o PC_INDEP) |
|
An |
Registro de Direcciones (16/32-bit,
n=0-7) |
|
CCR |
Registro de Codigo de Condición
(8-bit, SR bajo) |
|
Dn |
Registro de Datos (8/16/32-bit,
n=0-7) |
|
PC |
Contador de Programa (24-bit) |
|
SP |
Puntero de Pila Activo (equivalente
a A7) |
|
SR |
Registri de Estado (16-bit) |
|
SSP |
Puntero de pila del Supervisor
(32-bit) |
|
USP |
Pontero de pila del Usuario
(32-bit) |
|
BCD{ } EA{ } |
Binario Codificado Decimal/Dirección
Efectiva |
|
cc |
Condición = (T/F/HI/LS/CC/CS/NE/EQ/
VC/VS/PL/MI/GE/LT/GT/LE) |
|
d s |
Destino/fuente |
|
e n nn nnnn |
Cualquiera/8-bit/16-bit/32-bit
expresión |
|
l |
Etiqueta de desplazamiento
del Desvio (8/16-bit) |
|
lr |
Dirección Izquierda/Derecha
= (L/R) |
|
q |
Expresión Rápida
(1-8) |
|
r |
Cualquier registro An o Dn |
|
rr |
Multiple registros(-=rango,/=separador) |
|
+ - * / % |
Suma/resta/multiplicación/división/resto
|
|
& ~ v x |
Y/NO/O/O exclusivo |
|
->{ }<- <->
|
Rotar izquierda o derecha
/intercambiar operandos |
|
[ ] -[ ] [ ]+ |
Indirecto/autoincrementar/autodecr.
dirección |
|
< > <:> <hi>
<lo> |
Bit número/rango bits/mitad
alta/mitad baja |
|
{ } {,} |
Combinación de operandos |
|
$ |
Software trap -[SP]=PC,-[SP]=SR,PC=... |
|
Vectores
del sistema: |
0000H to 0007H |
Vector Reset (SP y PC inicial)
(0-1) |
|
0008H to 000BH |
Vector de error del Bus (2) |
|
000CH to 000FH |
Vector de error de dirección
(3) |
|
0010H to 0013H |
Vector de instrucción
ilegal (4) |
|
0014H to 0017H |
Vector de división
por cero (5) |
|
0018H to 001BH |
Vector de la instrucción
CHK (6) |
|
001CH to 001FH |
Vector de la instrucción
TRAPV (7) |
|
0020H to 0023H |
Vector de violación
de privilegios (8) |
|
0024H to 0027H |
Trace vector (9) |
|
0028H to 002FH |
Vectore de emulación
de Linea 1010/1111 (10-11) |
|
003CH to 003FH |
Vector de interrupción
no inicializada (15) |
|
0060H to 0063H |
Spurious interrupt vector
(24) |
|
0064H to 007FH |
auto-vectores de interrupción
niveles 1-7 (25-31) |
|
0080H to 00BFH |
vectores de instrucción
TRAP #0-15 (32-47) |
|
|
No asignedos, reservados
(12-14,16-23,48-63) |
|
0100H to 03FFH |
Vectores de interrupción
del usuario (64-255) |
|