ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES...Repertorio de instrucciones y modos de direccionamiento...
Transcript of ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES...Repertorio de instrucciones y modos de direccionamiento...
Universidad
Rey Juan Carlos
ESTRUCTURA Y TECNOLOGESTRUCTURA Y TECNOLOGÍÍA DE A DE COMPUTADORESCOMPUTADORES
Repertorio de instrucciones y modos de
direccionamiento en el MC68000
Luis Rincón CórcolesLicesio J. Rodríguez-Aragón
Repertorio de instrucciones y modos de direccionamiento en el MC68000
2
1. Introducción.
2. Modos de direccionamiento en el MC68000.
3. Direccionamiento directo a registro de datos.
4. Direccionamiento directo a registro de direcciones.
5. Direccionamiento indirecto a registro de direcciones.
6. Direccionamiento indirecto a registro de direcciones con posincremento.
7. Direccionamiento indirecto a registro de direcciones con predecremento.
8. Direccionamiento indirecto a registro de direcciones con desplazamiento.
9. Direccionamiento indirecto a registro de direcciones con desplazamiento e índice.
10. Direccionamiento absoluto corto.
11. Direccionamiento absoluto largo.
12. Direccionamiento relativo a PC con desplazamiento.
13. Direccionamiento relativo a PC con desplazamiento e índice.
14. Direccionamiento inmediato.
15. Direccionamiento implícito.
16. Clasificación de los modos de direccionamiento.
Programa
Repertorio de instrucciones y modos de direccionamiento en el MC68000
3
17. Tipos de instrucciones en el MC68000
18. Instrucciones de transferencia de datos.
19. Instrucciones aritméticas para enteros.
20. Instrucciones lógicas.
21. Instrucciones de rotación y desplazamiento.
22. Instrucciones de manipulación de bits.
23. Instrucciones para datos en BCD.
24. Instrucciones de control de programa.
25. Instrucciones de control de sistema.
26. Las instrucciones y el CCR.
27. Formatos de instrucción.
28. Tiempos de ejecución de las instrucciones.
Programa
Repertorio de instrucciones y modos de direccionamiento en el MC68000
4
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
Bibliografía
Repertorio de instrucciones y modos de direccionamiento en el MC68000
5
1. IntroducciónEl 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.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
6
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.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
7
3. Direccionamiento directo a registro de datosSubcampos:
• Modo: 000
• Registro: número del registro de datos (3 bits)
Tamaños: .B, .W, .L
Permitido para operando fuente o destino.
000 nOW
Modo Reg
Dn
Notación: Dn
Ejemplo: NEG.W D4
Repertorio de instrucciones y modos de direccionamiento en el MC68000
8
4. Direccionamiento directo a registro dedirecciones
Subcampos:
• Modo: 001
• Registro: número del registro de direcciones (3 bits)
Tamaños: .W, .L
Permitido para operando fuente o destino.
Restricción: si se usa como operando destino en modo .W, se hace extensión de signo a 32 bits.
001 nOW
Modo Reg
An
Notación: An
Ejemplo: MOVEA.W D4,A5
Repertorio de instrucciones y modos de direccionamiento en el MC68000
9
5. Direccionamiento indirecto a registro dedirecciones
Subcampos:
• Modo: 010
• Registro: número del registro de direcciones (3 bits)
Tamaños: .B, .W, .L
Permitido para operando fuente o destino.
010 nOW
Modo Reg
An
Memoria
Notación: (An)
Ejemplo: MOVE.W D4,(A5)
Repertorio de instrucciones y modos de direccionamiento en el MC68000
10
6. Direccionamiento indirecto a registro dedirecciones 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.
El contenido del registro de direcciones se incrementa en 1, 2 ó 4 según el tamaño del dato accedido después del acceso.
011 nOW
Modo Reg
An
Memoria
+1 si .B+2 si .W+4 si .L
Notación: (An)+
Ejemplo: MOVE.W D4,(A5)+
Repertorio de instrucciones y modos de direccionamiento en el MC68000
11
7. Direccionamiento indirecto a registro dedirecciones 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.
El contenido del registro de direcciones se decrementaen 1, 2 ó 4 según el tamaño del dato accedido antes del acceso.
100 nOW
Modo Reg
An
Memoria
-1 si .B-2 si .W-4 si .L
Notación: -(An)
Ejemplo: MOVE.W D4,-(A5)
Repertorio de instrucciones y modos de direccionamiento en el MC68000
12
8. Direccionamiento indirecto a registro dedirecciones 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, .LPermitido para operando fuente o destino.
101 nOW
Modo Reg
An
MemoriaEW CD (desplazamiento 16 bits)
+Extensión de signo (de 16 a 32 bits)
Notación: desp(An)
Ejemplo: MOVE.W D4,8(A5)
Repertorio de instrucciones y modos de direccionamiento en el MC68000
13
9. Direccionamiento indirecto a registro dedirecciones 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, .LPermitido para operando fuente o destino.
110 nOW
Modo Reg
An
MemoriaEW CD (8 bits)
+Extensión de signo(de 8 a 32 bits)
T m S 000
XmSi S=W, extensión designo de 16 a 32 bits
Notación: desp(An,Xm.S) Ejemplo: MOVE.W D4,8(A5,D3.L)
Repertorio de instrucciones y modos de direccionamiento en el MC68000
14
10. Direccionamiento absoluto cortoSubcampos:
• Modo: 111• Registro: 000• CD: 16 bits (que se extienden en signo para formar una dirección de
32 bits)Tamaños: .B, .W, .LPermitido para operando fuente o destino.
111 000OW
Modo Reg
EW CD (desplazamiento 16 bits)
Extensión de signo (de 16 a 32 bits)
Memoria
Notación: direccion
Ejemplo: MOVE.W D4,$1234
Repertorio de instrucciones y modos de direccionamiento en el MC68000
15
11. Direccionamiento absoluto largoSubcampos:
• Modo: 111• Registro: 001• CD: 32 bits
Tamaños: .B, .W, .LPermitido para operando fuente o destino.
111 001OW
Modo Reg
EW1 00000000
Memoria
b15 ... b0EW2
b23 ... b16
Concatenaciónde las dos
palabras deextensión
Notación: direccion
Ejemplo: MOVE.W D4,500000
Repertorio de instrucciones y modos de direccionamiento en el MC68000
16
12. Direccionamiento relativo a PC condesplazamiento
Subcampos:• Modo: 111• Registro: 010• CD: desplazamiento de 16 bits (que se extiende en signo a 32 bits)
Tamaños: .B, .W, .LPermitido únicamente para operando fuente.
111 010OW
Modo Reg PC
MemoriaEW CD (desplazamiento 16 bits)
+Extensión de signo (de 16 a 32 bits)
Notación: desp(PC)
Ejemplo: MOVE.W 8(PC),D4
Repertorio de instrucciones y modos de direccionamiento en el MC68000
17
13. Direccionamiento relativo a PC condesplazamiento 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, .LPermitido únicamente para operando fuente.
111 011OW
Modo Reg
MemoriaEW CD (8 bits)
+Extensión de signo(de 8 a 32 bits)
T m S 000
XmSi S=W, extensión designo de 16 a 32 bits
PC
Notación: desp(PC,Xm.S) Ejemplo: MOVE.W 8(PC,D3.L),D4
Repertorio de instrucciones y modos de direccionamiento en el MC68000
18
14. Direccionamiento inmediatoSubcampos:
• Modo: 111• Registro: 100• CD: 16 ó 32 bits en palabras de extensión.
Tamaños: .B, .W, .LPermitido únicamente para operando fuente.
Inmediato de 8 bits
111 100OW
Modo Reg
EW 00000000 b7 ... b0
111 100OW
Modo Reg
EW b15 ... b0
Inmediato de 16 bits
111 100OW
Modo Reg
EW1
b15 ... b0EW2
b31 ... b16
Inmediato de 32 bitsNotación: #dato
Ejemplo: MOVE.B #8,D4
Repertorio de instrucciones y modos de direccionamiento en el MC68000
19
15. Direccionamiento implícitoUn 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).
Repertorio de instrucciones y modos de direccionamiento en el MC68000
20
16. Clasificación de los direccionamientos
*****acea
*******amea
********adea
*********aea
********cea
**********mea
***********dea
**rea
************ea
Inmediato
d(PC
,Xm
)
d(PC
)
Abs.L
Abs.W
d(An,X
m)
d(An)
-(An)
(An)+
(An)
An
Dn
ea = Cualquier dirección efectiva
rea = Dirección efectiva de un REGISTRO
dea = Dirección efectiva de DATOS
mea = Dirección efectiva de MEMORIA
cea = Dirección efectiva de CONTROL
aea = Dirección efectiva ALTERABLE
adea = Dirección efectiva ALTERABLE de DATOS
amea = Dirección efectiva ALTERABLE de MEMORIA
acea = Dirección efectiva ALTERABLE de CONTROL
Repertorio de instrucciones y modos de direccionamiento en el MC68000
21
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.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
22
18. Instrucciones de transferencia de datos
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------EXG Rm,Rn L Rm <--> Rn - - - - -LEA <cea>,An L An=<ea> - - - - -LINK An,#<d16> Sin longitud -(SP)=An;An=SP;SP=SP+d16 - - - - -MOVE <ea>,<adea> L,W,{B} Dest=Fnte - * * 0 0MOVEA <ea>,An L,W Dest=Fnte - - - - -MOVEM <lista-reg>,<acea>+ L,W Dest=lista-reg - - - - -
<lista-reg>,-(An)<lista-reg>,(An)+<cea>+,<lista-reg> L,W lista-reg=Fnte(An)+,<lista-reg>
MOVEP Dn,d(An) o d(An),Dn L,W Dest=Fnte - - - - -MOVEQ #<d8>,Dn L(extensión de Dest=d8 - * * 0 0
signo a 32 bits)PEA <cea> L -(SP)=<ea> - - - - -SWAP Dn W Dn[31:16] <--> Dn[15:0] - * * 0 0UNLK An Sin longitud SP=An;An=(SP)+ - - - - -
Repertorio de instrucciones y modos de direccionamiento en el MC68000
23
19. Instrucciones aritméticas para enteros
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------ADD <ea>,Dn o Dn,<amea> L,W,B Dest=Fnte+Dest * * * * *ADDA <ea>,An L,W Dest=Fnte+Dest - - - - -ADDI #<datos>,<adea> L,W,B Dest=dato+Dest * * * * *ADDQ #<d3>,<aea> L,W,{B} Dest=d3+Dest * * * * *ADDX Dm,Dn o -(Am),-(An) L,W,B Dest=Fnte+Dest+X * * * * *CLR <adea> L,W,B Dest=0 - 0 1 0 0CMP <ea>,Dn L,W,{B} Dest-Fnte;activa CCR - * * * *CMPA <ea>,An L,W Dest-Fnte;activa CCR - * * * *CMPI #<dato>,<adea> L,W,B Dest-dato;activa CCR - * * * *CMPM (Am)+,(An)+ L,W,B Dest-Fnte;activa CCR - * * * *DIVS/DIVU <dea>,Dn W Dest=Dest/Fnte; - * * * 0
(inferior=cociente; palabra superior=Rem)
EXT Dn L,W Dn=Dn/signo-extendido - * * 0 0MULS/MULU <dea>,Dn W Dest=Fnte*Dest - * * 0 0NEG <adea> L,W,B Dest=0-Dest * * * * *NEGX <adea> L,W,B Dest=0-Dest-X * * * * *SUB <ea>,Dn o Dn,<amea> L,W,B Dest=Dest-Fnte * * * * *SUBA <ea>,An L,W Dest=Dest-Fnte - - - - -SUBI #<datos>,<adea> L,W,B Dest=Dest-dato * * * * *SUBQ #<d3>,<aea> L,W,{B} Dest=Dest-d3 * * * * *SUBX Dm,Dn o -(Am),-(An) L,W,B Dest=Dest-Fnte-X * * * * *TAS <adea> B CCR=Test Dest;Dest[bit7]=1 - * * 0 0TST <adea> L,W,B CCR=Test Dest - * * 0 0
Repertorio de instrucciones y modos de direccionamiento en el MC68000
24
20. Instrucciones lógicas
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------AND <dea>,Dn o Dn,<amea> L,W,B Dest=Fnte AND Dest - * * 0 0ANDI #<datos>,<adea> L,W,B Dest=datos AND Dest - * * 0 0EOR Dn,<adea> L,W,B Dest=Fnte OR-EX Dest - * * 0 0EORI #<datos>,<adea> L,W,B Dest=dato OR-EX Dest - * * 0 0NOT <adea> L,W,B Dest=INV(Dest) - * * 0 0OR <dea>,Dn o Dn,<amea> L,W,B Dest=Fnte OR Dest - * * 0 0ORI #<datos>,<adea> L,W,B Dest=datos OR Dest - * * 0 0
Repertorio de instrucciones y modos de direccionamiento en el MC68000
25
21. Instrucciones de rotación y desplazamiento
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------ASL/ASR Dm,Dn o #<d3>,Dn L,W,B (Dm mod 64) Desplaza (arit.) n veces * * * * *ASL/ASR <amea> W Desplaza (arit.) 1 bit * * * * *LSL/LSR Dm,Dn o #<d3>,Dn L,W,B (Dm mod 64) Desplaza (log.) n veces * * * 0 *LSL/LSR <amea> W Desplaza (log.) 1 bit * * * 0 *ROL/ROR Dm,Dn o #<d3>,Dn L,W,B (Dm mod 64) Rota n veces - * * 0 *ROL/ROR <amea> W Rota 1 bit - * * 0 *ROXL/ROXR Dm,Dn o #<d3>,Dn L,W,B (Dm mod 64) Rota con extensión n veces * * * 0 *ROXL/ROXR <amea> W Rota con extensión 1 bit * * * 0 *
Repertorio de instrucciones y modos de direccionamiento en el MC68000
26
22. Instrucciones de manipulación de bits
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------BCHG Dm,Dn o #<d3>,<amea> L (Dm mod 32) Z=INV(Dest[bit]); - - * - -
o Dm,<amea> o #<d5>,Dn Dest[bit]=INV(Dest[bit]) BCLR Dm,Dn o #<d3>,<amea> L (Dm mod 32) Z=INV(Dest[bit]); - - * - -
o Dm,<amea> o #<d5>,Dn Dest[bit]=0 BSET Dm,Dn o #<d3>,<amea> L (Dm mod 32) Z=INV(Dest[bit]); - - * - -
o Dm,<amea> o #<d5>,Dn Dest[bit]=1 BTST Dm,Dn o #<d5>,Dn L (Dm mod 32) Z=INV(Dest[bit]) - - * - -BTST Dm,<mea> o B (Dm mod 8) Z=INV(Dest[bit]) - - * - -
Repertorio de instrucciones y modos de direccionamiento en el MC68000
27
23. Instrucciones para datos en BCD
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------ABCD Dm,Dn o -(Am),-(An) B Dest=Fnte+Dest+X * ? * ? *NBCD <adea> B Dest=0-Dest-X * ? * ? *SBCD Dm,Dn o -(Am),-(An) B Dest=Fnte-Dest-X * ? * ? *
Repertorio de instrucciones y modos de direccionamiento en el MC68000
28
24. Instrucciones de control de programa
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------Bcc <etiqueta> Desp. de 16 bits IF cc THEN PC=PC+Desp - - - - -Bcc.S <etiqueta> Desp. de 8 bits IF cc THEN PC=PC+Desp - - - - -DBcc Dm,<etiqueta> Desp. de 16 bits IF NOT cc THEN Dm=Dm-1 - - - - -
IF Dm<>-1 THEN PC=PC+DespELSE PC=PC+2
Scc <adea> B IF cc THEN Dest=$FF - - - - -ELSE Dest=$00
BRA <etiqueta> Desp. de 8/16 bits PC=PC+Desp - - - - -BSR <etiqueta> Desp. de 8/16 bits -(SP)=PC;PC=PC+Desp - - - - -JMP <cea> Sin longitud PC=Dest - - - - -JSR <cea> Sin longitud -(SP)=PC;PC=Dest - - - - -RTR Sin operando Sin longitud CCR=(SP)+;PC=(SP)+ * * * * *RTS Sin operando Sin longitud PC=(SP)+ - - - - -
NOP Sin operandos Sin longitud PC=PC+2 - - - - -
Repertorio de instrucciones y modos de direccionamiento en el MC68000
29
Condiciones en el MC68000
Z + N·¬V + ¬N·V
N·V·¬Z + ¬N·¬V·¬Z
N·¬V + ¬N·V
N·V + ¬N·¬V
N
¬N
V
¬V
Z
¬Z
C
¬C
C + Z
¬C·¬Z
0
1
Expresión booleana
SLE, BLE, DBLE1111LE (less or equal than)Menor o igual que con signo
SGT, BGT, DBGT1110GT (greater than)Mayor que con signo
SLT, BLT, DBLT1101LT (less than)Menor que con signo
SGE, BGE, DBGE1100GE (greater or equal than)Mayor o igual que con signo
SMI, BMI, DBMI1011MI (minus)Negativo con signo
SPL, BPL, DBPL1010PL (plus)Positivo ó 0 con signo
SVS, BVS, DBVS1001VS (overflow set)Desbordamiento con signo
SVC, BVC, DBVC1000VC (overflow clear)No desbordamiento con signo
SEQ, BEQ, DBEQ0111EQ (equal)Igual a
SNE, BNE, DBNE0110NE (not equal)Distinto de
SCS, SLO, BCS, BLO, DBCS, DBLO
0101CS ó LO (carry set, lower)Menor (desbordamiento) sin signo
SCC, SHS, BCC, BHS, DBCC, DBHS
0100CC ó HS (carry clear,
higher or same)Mayor o igual (no desbordamiento) sin signo
SLS, BLS, DBLS0011LS (lower or same)Menor o igual que sin signo
SHI, BHI, DBHI0010HI (higher)Mayor que sin signo
SF, DBF, DBRA0001F (false)Falso
ST , BRA, DBT0000T (true)Cierto
InstruccionesCodificaciónNemotécnicoCondición
Repertorio de instrucciones y modos de direccionamiento en el MC68000
30
25. Instrucciones de control de sistema
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------ANDI #<d8>,CCR B CCR=d8 AND CCR * * * * *EORI #<d8>,CCR B CCR=d8 OR-EX CCR * * * * *MOVE <dea>,CCR W (pal. mas baja) CCR=Fnte * * * * *MOVE CCR,<adea> W (pal. más baja) Dest=CCR - - - - -MOVE SR,<adea> W Dest=SR - - - - -ORI #<d8>,CCR B CCR=d8 OR CCR * * * * *CHK <dea>,Dn W IF Dn<0 OR Dn>Dest - * ? ? ?
THEN TRAP ILLEGAL Sin operando -(SSP)=PC;-(SSP)=SR; - - - - -
PC=Vector #4 TRAPV Sin operando Sin longitud IF V=1 THEN TRAP - - - - -TRAP #<d4> Sin longitud -(SSP)=PC;-(SSP)=SR; - - - - -
PC=Vector #d4
La instrucción TRAP admite 16 vectores distintos, TRAP #0 hasta TRAP #15
Instrucciones no privilegiadas
Repertorio de instrucciones y modos de direccionamiento en el MC68000
31
Instrucciones de control de sistema
Nemónico Direccionamiento Long. operando Descripción X N Z V C---------- ------------------ ---------------- ------------------------- ---------ANDI #<d16>,SR W IF S=0 THEN TRAP * * * * *
ELSE SR=Fnte AND SR EORI #<d16>,SR W IF S=0 THEN TRAP * * * * *
ELSE SR=Fnte OR-EX SR MOVE <dea>,SR W IF S=0 THEN TRAP * * * * *
ELSE SR=FnteMOVE USP,An o An,USP L IF S=0 THEN TRAP - - - - -
ELSE DEST=FnteORI #<d16>,SR W IF S=0 THEN TRAP * * * * *
ELSE SR=Fnte OR SR RESET Sin operandos Sin longitud IF S=0 THEN TRAP - - - - -
ELSE reinicia dispositivo RTE Sin operandos Sin longitud IF S=0 THEN TRAP * * * * *
ELSE SR=(SP)+;PC=(SP)+ STOP #<d16> Sin longitud IF S=0 THEN TRAP * * * * *
ELSE SR=d16;PC=PC+4; pausa hasta excepción
Instrucciones privilegiadas
Repertorio de instrucciones y modos de direccionamiento en el MC68000
32
26. Las instrucciones y el CCR
Repertorio de instrucciones y modos de direccionamiento en el MC68000
33
Las instrucciones y el CCR
Repertorio de instrucciones y modos de direccionamiento en el MC68000
34
Resumen: las instrucciones y el CCR
Repertorio de instrucciones y modos de direccionamiento en el MC68000
35
27. Formatos de instrucción
Instrucciones sin operandos
OW
Instrucciones con 1 operando (el primer formato puede requerir palabras de extensión)
Instrucciones de bifurcación condicional
Cod_op XXX XXXOW
Modo Reg
XX
Tam
Cod_op XXXOW
Reg
00: .BTam 01: .W
10: .L
CO XXXXXXXXOW
Desplazamiento
XXXX
Cond
Repertorio de instrucciones y modos de direccionamiento en el MC68000
36
Formatos de instrucciónInstrucciones 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)
Instrucciones con 2 operandos (los dos primeros formatos pueden requerir palabras de extensión)
OW
CO XXX XXXOW
Modo Reg
XX
Tam 01: .BTam 10: .W
11: .L
EA fuente
XXXXXX
ModoReg
EA destino
CO XXX XXXOWModo Reg Byte Palabra Larga Operación
Modo_op 000 001 010 registro OP EA → registro100 101 110 EA OP registro → EA
EA f/d
XXXXXX
Reg Modo_op
CO XXX
Modo_op Reg
XXXXXXXXX
Reg
CO XXX XXXOWModo RegEA destino
COXXX
Dato
CO XXXOWReg
0XXX
Dato
Repertorio de instrucciones y modos de direccionamiento en el MC68000
37
Codificación de los modos de direccionamiento
100111XXXtInmediato
011111d(PC,Xm)Relativo a PC con desplazamiento e índice
010111d(PC)Relativo a PC con desplazamiento
001111XXX32Absoluto largo
000111XXX16Absoluto corto
Número de registro (An)110d(An,Xm)Indirecto a registro con desplazamiento e índice
Número de registro (An)101d(An)Indirecto a registro con desplazamiento
Número de registro (An)100-(An)Indirecto a registro con predecremento
Número de registro (An)011(An)+Indirecto a registro con posincremento
Número de registro (An)010(An)Indirecto a registro
Número de registro (An)001AnDirecto a registro de direcciones
Número de registro (Dn)000DnDirecto a registro de datos
RegistroModoNotaciónModo de direccionamiento
Repertorio de instrucciones y modos de direccionamiento en el MC68000
38
Palabras de extensiónSerá 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.
Palabra de operación
Palabra(s) de extensióndel segundo operando
Palabra de operación
Palabra(s) de extensióndel primer operando
Palabra de operación
Palabra(s) de extensióndel primer operando
Palabra(s) de extensióndel segundo operando
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
Instrucción en la que ambos operandos requieren palabras de extensión
Máximo tamaño de una instrucción: 10 octetos.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
39
Palabras de extensiónSerá 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.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
40
Palabras de extensiónSerá 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.
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
EW CD (8 bits)T m S 000
Repertorio de instrucciones y modos de direccionamiento en el MC68000
41
Palabras de extensiónLa lista de registros en la instrucción MOVEM requiere la siguiente palabra de
extensión:
Cuando estamos en el caso de MOVEM.t <lista-reg>,-(An) la palabra de extensión es:
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.
A7 A0A1A2A3A4A5A6 D7 D0D1D2D3D4D5D6
Si el registro An o Dn se encuentra en la lista, el correspondiente bit está a 1.
A7A0 A1 A2 A3 A4 A5 A6D7D0 D1 D2 D3 D4 D5 D6
Repertorio de instrucciones y modos de direccionamiento en el MC68000
42
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.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
43
Tiempo de cálculo de la dirección efectiva
En ocasiones hay que sumar este tiempo al indicado en las tablas.
Repertorio de instrucciones y modos de direccionamiento en el MC68000
44
Tiempo de instrucciones de transferenciade byte o palabra
Repertorio de instrucciones y modos de direccionamiento en el MC68000
45
Tiempo de instrucciones de transferenciade palabra larga
Repertorio de instrucciones y modos de direccionamiento en el MC68000
46
Tiempo de instrucciones con operando único
Repertorio de instrucciones y modos de direccionamiento en el MC68000
47
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.