para MC68K

Anuncio
Universidad
Rey Juan Carlos
ESTRUCTURA Y TECNOLOGÍA DE
COMPUTADORES
Repertorio de instrucciones y modos de
direccionamiento en el MC68000
Luis Rincón Córcoles
Licesio J. Rodríguez-Aragón
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Programa
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Introducción.
Modos de direccionamiento en el MC68000.
Direccionamiento directo a registro de datos.
Direccionamiento directo a registro de direcciones.
Direccionamiento indirecto a registro de direcciones.
Direccionamiento indirecto a registro de direcciones con posincremento.
Direccionamiento indirecto a registro de direcciones con predecremento.
Direccionamiento indirecto a registro de direcciones con desplazamiento.
Direccionamiento indirecto a registro de direcciones con desplazamiento e índice.
Direccionamiento absoluto corto.
Direccionamiento absoluto largo.
Direccionamiento relativo a PC con desplazamiento.
Direccionamiento relativo a PC con desplazamiento e índice.
Direccionamiento inmediato.
Direccionamiento implícito.
Clasificación de los modos de direccionamiento.
2
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Programa
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Tipos de instrucciones en el MC68000
Instrucciones de transferencia de datos.
Instrucciones aritméticas para enteros.
Instrucciones lógicas.
Instrucciones de rotación y desplazamiento.
Instrucciones de manipulación de bits.
Instrucciones para datos en BCD.
Instrucciones de control de programa.
Instrucciones de control de sistema.
Las instrucciones y el CCR.
Formatos de instrucción.
Tiempos de ejecución de las instrucciones.
3
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Bibliografía
 M68000 8/16/32 Bit Microprocessors User’s Manual. 9th edition. Motorola, 1993.
 Motorola M68000 Family Programmer’s Reference Manual. Motorola, 1992.
 A. CLEMENTS. Microprocessor Systems Design. 3rd edition, ITP - PWS
Publishing Company, 1997.
 J. SEPTIÉN, H. MECHA, R. MORENO, K. OLCOZ. La familia del MC68000.
Síntesis, 1995.
 C. CERRADA, V. FELIU. Estructura y Tecnología de Computadores I. UNED,
1993
4
Repertorio de instrucciones y modos de direccionamiento en el MC68000
1. Introducción
 El MC68000 es un microprocesador CISC.
 El repertorio de instrucciones del MC68000 se diseñó para ser implementado mediante
una unidad de control microprogramada.
 El MC68000 presenta una amplia variedad de modos de direccionamiento y de códigos
de operación.
 Cuando se diseñó el MC68000, la mayoría de los programadores trabajaban con
lenguajes de alto nivel, pero se programaban manualmente en ensamblador muchas
tareas de bajo nivel.
 Las instrucciones de máquina del MC68000 tienen longitudes variadas, que van desde
los 2 hasta los 10 octetos, dependiendo del código de operación y de los modos de
direccionamiento de los operandos utilizados.
 En este tema vamos a revisar:
•
•
•
•
El repertorio de instrucciones del MC68000.
Los modos de direccionamiento del MC68000.
Los formatos de instrucción del MC68000.
Las duraciones de las instrucciones del MC68000.
5
Repertorio de instrucciones y modos de direccionamiento en el MC68000
2. Modos de direccionamiento en el MC68000
 Direccionamiento directo a registro
• A registro de datos.
• A registro de direcciones.
 Direccionamiento indirecto
• A registro de direcciones.
• A registro de direcciones con predecremento.
• A registro de direcciones con posincremento.
• A registro de direcciones con desplazamiento.
• A registro de direcciones con desplazamiento e índice.
Direccionamiento directo absoluto:
• Absoluto corto.
• Absoluto largo.
 Direccionamiento relativo a PC.
• Con desplazamiento.
• Con desplazamiento e índice.
 Direccionamiento inmediato.
6
Repertorio de instrucciones y modos de direccionamiento en el MC68000
3. Direccionamiento directo a registro de datos
 Subcampos:
• Modo: 000
• Registro: número del registro de datos (3 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
Modo
Reg
000
n
Dn
 Notación: Dn
Ejemplo: NEG.W D4
7
Repertorio de instrucciones y modos de direccionamiento en el MC68000
4. Direccionamiento directo a registro de
direcciones
 Subcampos:
• Modo: 001
• Registro: número del registro de direcciones (3 bits)
 Tamaños: .W, .L
 Permitido para operando fuente o destino.
OW
Modo
Reg
001
n
An
 Restricción: si se usa como operando destino en modo .W, se hace extensión
de signo a 32 bits.
 Notación: An
Ejemplo: MOVEA.W D4,A5
8
Repertorio de instrucciones y modos de direccionamiento en el MC68000
5. Direccionamiento indirecto a registro de
direcciones
 Subcampos:
• Modo: 010
• Registro: número del registro de direcciones (3 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
Modo
Reg
010
n
Memoria
An
 Notación: (An)
Ejemplo: MOVE.W D4,(A5)
9
Repertorio de instrucciones y modos de direccionamiento en el MC68000
6. Direccionamiento indirecto a registro de
direcciones con posincremento
 Subcampos:
• Modo: 011
• Registro: número del registro de direcciones (3 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
Modo
Reg
011
n
Memoria
An
 Notación: (An)+
Ejemplo: MOVE.W D4,(A5)+
+1 si .B
+2 si .W
+4 si .L
El contenido del registro de direcciones se incrementa
en 1, 2 ó 4 según el tamaño del dato accedido después
del acceso.
10
Repertorio de instrucciones y modos de direccionamiento en el MC68000
7. Direccionamiento indirecto a registro de
direcciones con predecremento
 Subcampos:
• Modo: 100
• Registro: número del registro de direcciones (3 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
Modo
Reg
100
n
Memoria
An
-1 si .B
-2 si .W
-4 si .L
 Notación: -(An)
Ejemplo: MOVE.W D4,-(A5)
El contenido del registro de direcciones se decrementa
en 1, 2 ó 4 según el tamaño del dato accedido antes
del acceso.
11
Repertorio de instrucciones y modos de direccionamiento en el MC68000
8. Direccionamiento indirecto a registro de
direcciones con desplazamiento
 Subcampos:
• Modo: 101
• Registro: número del registro de direcciones (3 bits)
• CD: desplazamiento de 16 bits (que se extiende en signo a 32 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
EW
Modo
Reg
101
n
Memoria
CD (desplazamiento 16 bits)
An
Extensión de signo (de 16 a 32 bits)
+
 Notación: desp(An)
Ejemplo: MOVE.W D4,8(A5)
12
Repertorio de instrucciones y modos de direccionamiento en el MC68000
9. Direccionamiento indirecto a registro de
direcciones con desplazamiento e índice
 Subcampos:
• Modo: 110
• Registro: número del registro de direcciones (3 bits)
• T=D/A ⇒ si T=D(0), Xm=Dm; si T=A(1), Xm=Am
• Registro2 (m): número del registro índice Xm (3 bits)
• S=W/L ⇒ si S=W(0), Xm.W; si S=L(1), Xm.L
• CD: desplazamiento de 8 bits (que se extiende en signo a 32 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
EW T
m
S 000
Modo
Reg
110
n
Memoria
CD (8 bits)
An
Extensión de signo
(de 8 a 32 bits)
+
Xm
Si S=W, extensión de
signo de 16 a 32 bits
 Notación: desp(An,Xm.S)
Ejemplo: MOVE.W D4,8(A5,D3.L)
13
Repertorio de instrucciones y modos de direccionamiento en el MC68000
10. Direccionamiento absoluto corto
 Subcampos:
• Modo: 111
• Registro: 000
• CD: 16 bits (que se extienden en signo para formar una dirección de
32 bits)
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
OW
EW
Modo
Reg
111
000
Memoria
CD (desplazamiento 16 bits)
Extensión de signo (de 16 a 32 bits)
 Notación: direccion
Ejemplo: MOVE.W D4,$1234
14
Repertorio de instrucciones y modos de direccionamiento en el MC68000
11. Direccionamiento absoluto largo
 Subcampos:
• Modo: 111
• Registro: 001
• CD: 32 bits
 Tamaños: .B, .W, .L
 Permitido para operando fuente o destino.
Modo
Reg
111
001
OW
EW1
EW2
00000000
Memoria
b23 ... b16
b15 ... b0
Concatenación
de las dos
palabras de
extensión
 Notación: direccion
Ejemplo: MOVE.W D4,500000
15
Repertorio de instrucciones y modos de direccionamiento en el MC68000
12. Direccionamiento relativo a PC con
desplazamiento
 Subcampos:
• Modo: 111
• Registro: 010
• CD: desplazamiento de 16 bits (que se extiende en signo a 32 bits)
 Tamaños: .B, .W, .L
 Permitido únicamente para operando fuente.
OW
EW
Modo
Reg
111
010
PC
Memoria
CD (desplazamiento 16 bits)
Extensión de signo (de 16 a 32 bits)
+
 Notación: desp(PC)
Ejemplo: MOVE.W 8(PC),D4
16
Repertorio de instrucciones y modos de direccionamiento en el MC68000
13. Direccionamiento relativo a PC con
desplazamiento e índice
 Subcampos:
• Modo: 111
• Registro: 011
• T=D/A ⇒ si T=D(0), Xm=Dm; si T=A(1), Xm=Am
• Registro2 (m): número del registro índice Xm (3 bits)
• S=W/L ⇒ si S=W(0), Xm.W; si S=L(1), Xm.L
• CD: desplazamiento de 8 bits (que se extiende en signo a 32 bits)
 Tamaños: .B, .W, .L
 Permitido únicamente para operando fuente.
Modo
Reg
111
011
OW
EW T
m
S 000
PC
Memoria
CD (8 bits)
Extensión de signo
(de 8 a 32 bits)
+
Xm
Si S=W, extensión de
signo de 16 a 32 bits
 Notación: desp(PC,Xm.S) Ejemplo: MOVE.W 8(PC,D3.L),D4
17
Repertorio de instrucciones y modos de direccionamiento en el MC68000
14. Direccionamiento inmediato
 Subcampos:
• Modo: 111
• Registro: 100
• CD: 16 ó 32 bits en palabras de extensión.
 Tamaños: .B, .W, .L
 Permitido únicamente para operando fuente.
 Inmediato de 16 bits
 Inmediato de 8 bits
OW
EW
Modo
Reg
111
100
00000000
b7 ... b0
 Inmediato de 32 bits
OW
Modo
Reg
111
100
EW1
b31 ... b16
EW2
b15 ... b0
OW
EW
Modo
Reg
111
100
b15 ... b0
 Notación: #dato
Ejemplo: MOVE.B #8,D4
18
Repertorio de instrucciones y modos de direccionamiento en el MC68000
15. Direccionamiento implícito
 Un operando tiene direccionamiento implícito cuando está determinado por el
código de operación.
 Los operandos con direccionamiento implícito no llevan campo de Modo, y a
veces ni tan siquiera llevan campo de Registro.
 Algunos ejemplos:
• Las instrucciones ADD, SUB, AND, OR y otras llevan al menos un
operando en un registro de datos (no llevan campo Modo en el mismo).
• Las instrucciones ADDQ y SUBQ llevan un operando inmediato que
ocupa 3 bits y que puede valer entre 1 y 8 (sin campo Modo).
• La instrucción MOVEQ lleva un operando inmediato de 8 bits que puede
valer entre –128 y +127 (sin campo Modo).
• Las instrucciones BSR y JSR tienen como operandos implícitos –(SP) y
PC (sin campos Modo ni Registro).
• La instrucción RTS tiene como operandos implícitos (SP)+ y PC (sin
campos Modo ni Registro).
19
Repertorio de instrucciones y modos de direccionamiento en el MC68000
16. Clasificación de los direccionamientos
Inmediato
d(PC,Xm)
d(PC)
Abs.L
Abs.W
d(An,Xm)
d(An)
-(An)
(An)+
(An)
An
Dn
ea = Cualquier dirección efectiva
ea
* * * * * * * * * * * *
rea = Dirección efectiva de un REGISTRO
rea
* *
dea = Dirección efectiva de DATOS
dea
*
* * * * * * * * * *
mea
* * * * * * * * * *
cea
*
* * * * * * *
mea = Dirección efectiva de MEMORIA
cea = Dirección efectiva de CONTROL
aea = Dirección efectiva ALTERABLE
adea = Dirección efectiva ALTERABLE de DATOS
aea
* * * * * * * * *
amea = Dirección efectiva ALTERABLE de MEMORIA
adea
*
acea = Dirección efectiva ALTERABLE de CONTROL
* * * * * * *
amea
* * * * * * *
acea
*
* * * *
20
Repertorio de instrucciones y modos de direccionamiento en el MC68000
17. Tipos de instrucciones en el MC68000
 Instrucciones de transferencia de datos.
 Instrucciones aritméticas para enteros.
 Instrucciones lógicas.
 Instrucciones de rotación y desplazamiento.
 Instrucciones de manipulación de bits.
 Instrucciones para datos en BCD.
 Instrucciones de control de programa.
 Instrucciones de control de sistema.
21
Repertorio de instrucciones y modos de direccionamiento en el MC68000
18. Instrucciones de transferencia de datos
Nemónico
---------EXG
LEA
LINK
MOVE
MOVEA
MOVEM
MOVEP
MOVEQ
Direccionamiento
-----------------Rm,Rn
<cea>,An
An,#<d16>
<ea>,<adea>
<ea>,An
<lista-reg>,<acea>+
<lista-reg>,-(An)
<lista-reg>,(An)+
<cea>+,<lista-reg>
(An)+,<lista-reg>
Dn,d(An) o d(An),Dn
#<d8>,Dn
PEA
SWAP
UNLK
<cea>
Dn
An
Long. operando
---------------L
L
Sin longitud
L,W,{B}
L,W
L,W
Descripción
------------------------Rm <--> Rn
An=<ea>
-(SP)=An;An=SP;SP=SP+d16
Dest=Fnte
Dest=Fnte
Dest=lista-reg
X N Z V C
--------- - - - - - - - - - - - - * * 0 0
- - - - - - - - -
L,W
lista-reg=Fnte
L,W
L(extensión de
signo a 32 bits)
L
W
Sin longitud
Dest=Fnte
Dest=d8
- - - - - * * 0 0
-(SP)=<ea>
Dn[31:16] <--> Dn[15:0]
SP=An;An=(SP)+
- - - - - * * 0 0
- - - - -
22
Repertorio de instrucciones y modos de direccionamiento en el MC68000
19. Instrucciones aritméticas para enteros
Nemónico
---------ADD
ADDA
ADDI
ADDQ
ADDX
CLR
CMP
CMPA
CMPI
CMPM
DIVS/DIVU
Direccionamiento
-----------------<ea>,Dn o Dn,<amea>
<ea>,An
#<datos>,<adea>
#<d3>,<aea>
Dm,Dn o -(Am),-(An)
<adea>
<ea>,Dn
<ea>,An
#<dato>,<adea>
(Am)+,(An)+
<dea>,Dn
Long. operando
---------------L,W,B
L,W
L,W,B
L,W,{B}
L,W,B
L,W,B
L,W,{B}
L,W
L,W,B
L,W,B
W
EXT
MULS/MULU
NEG
NEGX
SUB
SUBA
SUBI
SUBQ
SUBX
TAS
TST
Dn
<dea>,Dn
<adea>
<adea>
<ea>,Dn o Dn,<amea>
<ea>,An
#<datos>,<adea>
#<d3>,<aea>
Dm,Dn o -(Am),-(An)
<adea>
<adea>
L,W
W
L,W,B
L,W,B
L,W,B
L,W
L,W,B
L,W,{B}
L,W,B
B
L,W,B
Descripción
------------------------Dest=Fnte+Dest
Dest=Fnte+Dest
Dest=dato+Dest
Dest=d3+Dest
Dest=Fnte+Dest+X
Dest=0
Dest-Fnte;activa CCR
Dest-Fnte;activa CCR
Dest-dato;activa CCR
Dest-Fnte;activa CCR
Dest=Dest/Fnte;
(inferior=cociente;
palabra superior=Rem)
Dn=Dn/signo-extendido
Dest=Fnte*Dest
Dest=0-Dest
Dest=0-Dest-X
Dest=Dest-Fnte
Dest=Dest-Fnte
Dest=Dest-dato
Dest=Dest-d3
Dest=Dest-Fnte-X
CCR=Test Dest;Dest[bit7]=1
CCR=Test Dest
X N Z V C
--------* * * * *
- - - - * * * * *
* * * * *
* * * * *
- 0 1 0 0
- * * * *
- * * * *
- * * * *
- * * * *
- * * * 0
*
*
*
*
*
*
-
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0
0
*
*
*
*
*
*
0
0
0
0
*
*
*
*
*
*
0
0
23
Repertorio de instrucciones y modos de direccionamiento en el MC68000
20. Instrucciones lógicas
Nemónico
---------AND
ANDI
EOR
EORI
NOT
OR
ORI
Direccionamiento
-----------------<dea>,Dn o Dn,<amea>
#<datos>,<adea>
Dn,<adea>
#<datos>,<adea>
<adea>
<dea>,Dn o Dn,<amea>
#<datos>,<adea>
Long. operando
---------------L,W,B
L,W,B
L,W,B
L,W,B
L,W,B
L,W,B
L,W,B
Descripción
------------------------Dest=Fnte AND Dest
Dest=datos AND Dest
Dest=Fnte OR-EX Dest
Dest=dato OR-EX Dest
Dest=INV(Dest)
Dest=Fnte OR Dest
Dest=datos OR Dest
X N Z V C
--------- * * 0 0
- * * 0 0
- * * 0 0
- * * 0 0
- * * 0 0
- * * 0 0
- * * 0 0
24
Repertorio de instrucciones y modos de direccionamiento en el MC68000
21. Instrucciones de rotación y desplazamiento
Nemónico
---------ASL/ASR
ASL/ASR
LSL/LSR
LSL/LSR
ROL/ROR
ROL/ROR
ROXL/ROXR
ROXL/ROXR
Direccionamiento
-----------------Dm,Dn o #<d3>,Dn
<amea>
Dm,Dn o #<d3>,Dn
<amea>
Dm,Dn o #<d3>,Dn
<amea>
Dm,Dn o #<d3>,Dn
<amea>
Long. operando
---------------L,W,B (Dm mod 64)
W
L,W,B (Dm mod 64)
W
L,W,B (Dm mod 64)
W
L,W,B (Dm mod 64)
W
Descripción
------------------------Desplaza (arit.) n veces
Desplaza (arit.) 1 bit
Desplaza (log.) n veces
Desplaza (log.) 1 bit
Rota n veces
Rota 1 bit
Rota con extensión n veces
Rota con extensión 1 bit
X N Z V C
--------* * * * *
* * * * *
* * * 0 *
* * * 0 *
- * * 0 *
- * * 0 *
* * * 0 *
* * * 0 *
25
Repertorio de instrucciones y modos de direccionamiento en el MC68000
22. Instrucciones de manipulación de bits
Nemónico
---------BCHG
BCLR
BSET
BTST
BTST
Direccionamiento
-----------------Dm,Dn o #<d3>,<amea>
o Dm,<amea> o #<d5>,Dn
Dm,Dn o #<d3>,<amea>
o Dm,<amea> o #<d5>,Dn
Dm,Dn o #<d3>,<amea>
o Dm,<amea> o #<d5>,Dn
Dm,Dn o #<d5>,Dn
Dm,<mea> o
Long. operando
---------------L (Dm mod 32)
L (Dm mod 32)
L (Dm mod 32)
L (Dm mod 32)
B (Dm mod 8)
Descripción
------------------------Z=INV(Dest[bit]);
Dest[bit]=INV(Dest[bit])
Z=INV(Dest[bit]);
Dest[bit]=0
Z=INV(Dest[bit]);
Dest[bit]=1
Z=INV(Dest[bit])
Z=INV(Dest[bit])
X N Z V C
--------- - * - - - * - - - * - - - * - - - * - -
26
Repertorio de instrucciones y modos de direccionamiento en el MC68000
23. Instrucciones para datos en BCD
Nemónico
---------ABCD
NBCD
SBCD
Direccionamiento
-----------------Dm,Dn o -(Am),-(An)
<adea>
Dm,Dn o -(Am),-(An)
Long. operando
---------------B
B
B
Descripción
------------------------Dest=Fnte+Dest+X
Dest=0-Dest-X
Dest=Fnte-Dest-X
X N Z V C
--------* ? * ? *
* ? * ? *
* ? * ? *
27
Repertorio de instrucciones y modos de direccionamiento en el MC68000
24. Instrucciones de control de programa
Nemónico
---------Bcc
Bcc.S
DBcc
Direccionamiento
-----------------<etiqueta>
<etiqueta>
Dm,<etiqueta>
Scc
<adea>
BRA
BSR
JMP
JSR
RTR
RTS
NOP
Long. operando
---------------Desp. de 16 bits
Desp. de 8 bits
Desp. de 16 bits
<etiqueta>
<etiqueta>
<cea>
<cea>
Sin operando
Sin operando
Descripción
------------------------IF cc THEN PC=PC+Desp
IF cc THEN PC=PC+Desp
IF NOT cc THEN Dm=Dm-1
IF Dm<>-1 THEN PC=PC+Desp
ELSE PC=PC+2
B
IF cc THEN Dest=$FF
ELSE Dest=$00
Desp. de 8/16 bits PC=PC+Desp
Desp. de 8/16 bits -(SP)=PC;PC=PC+Desp
Sin longitud
PC=Dest
Sin longitud
-(SP)=PC;PC=Dest
Sin longitud
CCR=(SP)+;PC=(SP)+
Sin longitud
PC=(SP)+
*
-
Sin operandos
Sin longitud
- - - - -
PC=PC+2
X N Z V C
--------- - - - - - - - - - - - -
- - - - *
-
*
-
*
-
*
-
28
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Condiciones en el MC68000
Nemotécnico
Codificación
Expresión booleana
Cierto
Condición
T (true)
0000
1
ST , BRA, DBT
Falso
F (false)
0001
0
SF, DBF, DBRA
HI (higher)
0010
¬C·¬Z
SHI, BHI, DBHI
SLS, BLS, DBLS
Mayor que sin signo
LS (lower or same)
0011
C+Z
CC ó HS (carry clear,
higher or same)
0100
¬C
SCC, SHS, BCC, BHS,
DBCC, DBHS
CS ó LO (carry set, lower)
0101
C
SCS, SLO, BCS, BLO,
DBCS, DBLO
NE (not equal)
0110
¬Z
SNE, BNE, DBNE
EQ (equal)
0111
Z
SEQ, BEQ, DBEQ
VC (overflow clear)
1000
¬V
SVC, BVC, DBVC
VS (overflow set)
1001
V
SVS, BVS, DBVS
Menor o igual que sin signo
Mayor o igual (no desbordamiento) sin signo
Menor (desbordamiento) sin signo
Instrucciones
Distinto de
Igual a
No desbordamiento con signo
Desbordamiento con signo
PL (plus)
1010
¬N
SPL, BPL, DBPL
MI (minus)
1011
N
SMI, BMI, DBMI
GE (greater or equal than)
1100
N·V + ¬N·¬V
SGE, BGE, DBGE
Menor que con signo
LT (less than)
1101
N·¬V + ¬N·V
SLT, BLT, DBLT
Mayor que con signo
GT (greater than)
1110
N·V·¬Z + ¬N·¬V·¬Z
SGT, BGT, DBGT
LE (less or equal than)
1111
Z + N·¬V + ¬N·V
SLE, BLE, DBLE
Positivo ó 0 con signo
Negativo con signo
Mayor o igual que con signo
Menor o igual que con signo
29
Repertorio de instrucciones y modos de direccionamiento en el MC68000
25. Instrucciones de control de sistema
 Instrucciones no privilegiadas
Nemónico
---------ANDI
EORI
MOVE
MOVE
MOVE
ORI
CHK
Direccionamiento
-----------------#<d8>,CCR
#<d8>,CCR
<dea>,CCR
CCR,<adea>
SR,<adea>
#<d8>,CCR
<dea>,Dn
ILLEGAL
Sin operando
TRAPV
TRAP
Sin operando
#<d4>
Long. operando
---------------B
B
W (pal. mas baja)
W (pal. más baja)
W
B
W
Sin longitud
Sin longitud
Descripción
------------------------CCR=d8 AND CCR
CCR=d8 OR-EX CCR
CCR=Fnte
Dest=CCR
Dest=SR
CCR=d8 OR CCR
IF Dn<0 OR Dn>Dest
THEN TRAP
-(SSP)=PC;-(SSP)=SR;
PC=Vector #4
IF V=1 THEN TRAP
-(SSP)=PC;-(SSP)=SR;
PC=Vector #d4
X N Z V C
--------* * * * *
* * * * *
* * * * *
- - - - - - - - * * * * *
- * ? ? ?
- - - - - - - - - - - - -
La instrucción TRAP admite 16 vectores distintos, TRAP #0 hasta TRAP #15
30
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Instrucciones de control de sistema
 Instrucciones privilegiadas
Nemónico
---------ANDI
Direccionamiento
-----------------#<d16>,SR
Long. operando
---------------W
EORI
#<d16>,SR
W
MOVE
<dea>,SR
W
MOVE
USP,An o An,USP
L
ORI
#<d16>,SR
W
RESET
Sin operandos
Sin longitud
RTE
Sin operandos
Sin longitud
STOP
#<d16>
Sin longitud
Descripción
X N Z V C
--------------------------------IF S=0 THEN TRAP
* * * * *
ELSE SR=Fnte AND SR
IF S=0 THEN TRAP
* * * * *
ELSE SR=Fnte OR-EX SR
IF S=0 THEN TRAP
* * * * *
ELSE SR=Fnte
IF S=0 THEN TRAP
- - - - ELSE DEST=Fnte
IF S=0 THEN TRAP
* * * * *
ELSE SR=Fnte OR SR
IF S=0 THEN TRAP
- - - - ELSE reinicia dispositivo
IF S=0 THEN TRAP
* * * * *
ELSE SR=(SP)+;PC=(SP)+
IF S=0 THEN TRAP
* * * * *
ELSE SR=d16;PC=PC+4;
pausa hasta excepción
31
Repertorio de instrucciones y modos de direccionamiento en el MC68000
26. Las instrucciones y el CCR
32
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Las instrucciones y el CCR
33
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Resumen: las instrucciones y el CCR
34
Repertorio de instrucciones y modos de direccionamiento en el MC68000
27. Formatos de instrucción
 Instrucciones sin operandos
OW
 Instrucciones con 1 operando (el primer formato puede requerir palabras de
extensión)
OW
Tam Modo
Reg
XX XXX
XXX
Cod_op
00: .B
Tam 01: .W
10: .L
Reg
OW
Cod_op
XXX
 Instrucciones de bifurcación condicional
OW
CO
Cond
Desplazamiento
XXXX
XXXXXXXX
35
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Formatos de instrucción
 Instrucciones con dos operandos con formato corto (tienen un operando
fuente con direccionamiento inmediato implícito, sin campo Modo; el segundo
formato puede requerir palabra de extensión para el operando destino)
OW
CO
Reg
Dato
XXX 0
XXX
EA destino
Dato
OW
CO
XXX
CO
Modo
Reg
XXX
XXX
 Instrucciones con 2 operandos (los dos primeros formatos pueden requerir
palabras de extensión)
EA destino
Tam
OW
EA fuente
Reg
Modo
Modo
Reg
CO XX XXX
XXX
XXX
XXX
EA f/d
OW
OW
CO
CO
Reg Modo_op Modo
Reg
XXX
XXX
XXX
XXX
Reg
Modo_op
Reg
XXX
XXXXXX
XXX
01: .B
Tam 10: .W
11: .L
Byte
Modo_op 000
100
Palabra
001
101
Larga
010
110
Operación
registro OP EA → registro
EA OP registro → EA
36
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Codificación de los modos de direccionamiento
Modo de direccionamiento
Notación
Modo
Registro
Directo a registro de datos
Dn
000
Número de registro (Dn)
Directo a registro de direcciones
An
001
Número de registro (An)
Indirecto a registro
(An)
010
Número de registro (An)
Indirecto a registro con posincremento
(An)+
011
Número de registro (An)
Indirecto a registro con predecremento
-(An)
100
Número de registro (An)
Indirecto a registro con desplazamiento
d(An)
101
Número de registro (An)
d(An,Xm)
110
Número de registro (An)
Absoluto corto
XXX16
111
000
Absoluto largo
XXX32
111
001
Relativo a PC con desplazamiento
d(PC)
111
010
d(PC,Xm)
111
011
XXXt
111
100
Indirecto a registro con desplazamiento e índice
Relativo a PC con desplazamiento e índice
Inmediato
37
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Palabras de extensión
 Será preciso añadir palabras de extensión cuando en la palabra de operación
no quepa la información necesaria para identificar completamente a los
operandos de la instrucción.
Instrucción en la que el primer operando
requiere palabras de extensión
Instrucción en la que el segundo operando
requiere palabras de extensión
Palabra de operación
Palabra de operación
Palabra(s) de extensión
del primer operando
Palabra(s) de extensión
del segundo operando
Instrucción en la que ambos operandos requieren palabras de extensión
Palabra de operación
Palabra(s) de extensión
del primer operando
Palabra(s) de extensión
del segundo operando
 Máximo tamaño de una instrucción: 10 octetos.
38
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Palabras de extensión
 Será preciso añadir palabras de extensión “normales” en los siguientes casos:
• Desplazamiento de 16 bits cuando el operando está referenciado mediante:
ƒ
ƒ
Direccionamiento indirecto a registro de direcciones con desplazamiento.
Direccionamiento relativo a PC con desplazamiento.
• Dirección absoluta de 16 bits cuando el operando está referenciado mediante:
ƒ
Direccionamiento absoluto corto.
• Dirección absoluta de 32 bits cuando el operando está referenciado mediante:
ƒ
Direccionamiento absoluto largo.
• Dato inmediato de 16 bits cuando el operando fuente está referenciado mediante:
ƒ
Direccionamiento inmediato tamaño byte o palabra.
• Dato inmediato de 32 bits cuando el operando fuente está referenciado mediante:
ƒ
Direccionamiento inmediato tamaño palabra larga.
39
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Palabras de extensión
 Será preciso añadir palabras de extensión con índice cuando alguno de los
operandos esté referenciado mediante uno de los siguientes direccionamientos:
• Indirecto a registro de direcciones con desplazamiento e índice.
• Relativo a PC con desplazamiento e índice.
EW T
m
S 000
CD (8 bits)
 T=D/A indica si el índice es un registro de datos o direcciones.
• Si T=0, es un registro de datos
• Si T=1 es un registro de direcciones.
 Registro2 (m): número del registro índice Xm (3 bits)
 S=W/L indica si el índice se usa en modo palabra o palabra larga.
• Si S=0, el índice es un registro en modo palabra.
• Si S=1, el índice es un registro en modo palabra larga.
 CD: desplazamiento de 8 bits
40
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Palabras de extensión
 La lista de registros en la instrucción MOVEM requiere la siguiente palabra de
extensión:
A7
A6
A5
A4
A3
A2
A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
Si el registro An o Dn se encuentra en la lista, el correspondiente bit está a 1.
 Cuando estamos en el caso de MOVEM.t <lista-reg>,-(An) la palabra de
extensión es:
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
 En ambos casos, en primer lugar va el bit correspondiente al registro que se
transfiere en primer lugar.
 En memoria los registros quedan almacenados en el siguiente orden:
• Los registros de datos de menor a mayor quedan en posiciones más bajas.
• Los registros de direcciones de menor a mayor quedan en posiciones más altas.
41
Repertorio de instrucciones y modos de direccionamiento en el MC68000
28. Tiempos de ejecución de las instrucciones
 Como el MC68000 es un procesador CISC, tiene instrucciones muy diversas
con diferentes duraciones.
 En las transparencias siguientes se presentan las duraciones de las
instrucciones del MC68000, incluyendo los ciclos de bus.
 Los datos se expresan con la notación n(r/w) donde:
• n: número total de ciclos de reloj.
• r: número de operaciones de lectura.
• w: número de operaciones de escritura.
donde n incluye los tiempos de lectura de la instrucción y las lecturas y escrituras
de los operandos.
 Se asume que cada operación de lectura o escritura en memoria consume
cuatro ciclos de reloj.
42
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Tiempo de cálculo de la dirección efectiva
 En ocasiones hay que sumar este tiempo al indicado en las tablas.
43
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Tiempo de instrucciones de transferencia
de byte o palabra
44
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Tiempo de instrucciones de transferencia
de palabra larga
45
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Tiempo de instrucciones con operando único
46
Repertorio de instrucciones y modos de direccionamiento en el MC68000
Ejemplos:
 Tiempo de instrucción de transferencia de palabra:
MOVE.W D1,A3 →
4 Ciclos de reloj (1 lectura / 0 escritura)
MOVE.W D1,$1000 → 12 Ciclos de reloj (2 lectura / 1 escritura)
ÂTiempo de instrucción de operando único:
NEG.L D3 →
6 Ciclos de reloj (1 lectura / 0 escritura)
NEG.L 500000 →
12 Ciclos (1 / 2) + 16 Ciclos (4 / 0) de
cálculo de dirección efectiva
Las tablas completas de Tiempo de Instrucciones se pueden consultar
en el Manual del Microprocesador.
47
Descargar