Instrucciones : MC68000/68008  
   

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)

 


Esta página es parte del sitio 154iSoftware  
1