Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tmeas PDF
Tmeas PDF
Modos de direccionamiento
El MC68000 permite 12 modos de direccionamiento para localizar a los operandos.
Podemos dividir los modos de direccionamiento en 5 grupos:
Directo de registro : el operando es el dato contenido en un registro de datos o de
●
direcciones. Incluye: directo de registro de datos y directo de registro de
direcciones.
Indirecto de registro: El operando se encuentra en memoria y es necesario obtener su
●
dirección a partir de un registro de direcciones. Incluye: Indirecto de registro, indirecto
de registro con postincremento, indirecto de registro con predecremento,
indirecto de registro con desplazamiento e indirecto de registro indexado con
desplazamiento.
Absoluto: el operando está en memoria y se da su dirección explicitamente. Incluye:
●
absoluto largo y absoluto corto.
Relativo al contador del programa: La dirección del operando es relativa al contenido
●
del PC. Incluye: relativo al PC con desplazamiento y relativo al PC indexado con
desplazamiento.
Inmediato: El operando se expresa de forma explícita.
●
1
7. Modos de direccionamiento
2
7. Modos de direccionamiento
Directo de Registro Direcciones:
El operando está en el registro de direcciones especificado
por la instrucción.
• Sintáxis: MNEMÓNICO.N An,OPERANDO_DESTINO
Ejemplo:
3
7. Modos de direccionamiento
* Programa 4.1: las horas antigúas están en D1 y las que hay que
*añadir en D2
MOVE.L D1,D3 Las horas antigúas están en D3
ADD.L D2,D3 las horas totales en D3
BVS ERROR salta a etiqueta ERROR si hay desbordamiento
BEQ CERO Salta a CERO si el total es cero
.........
4
7. Modos de direccionamiento
5
7. Modos de direccionamiento
* Programa 4.2: las horas antigúas están en una doble palabra en la dirección
* $6000 y las que hay que añadir en $6004
* Poner las direcciones en registros de dirección
MOVEA.L #$6000, A1 A1 contiene $6000
MOVEA.L #$6004,A2 A2 contiene $6004
MOVEA.L #$6008,A3 A3 contiene $6008
MOVE.L (A1),D3 Las horas antigúas están en D3
ADD.L (A2),D3 las horas totales en D3
MOVE.L D3,(A3) Las horas totales están en la dirección $6008 de la memoria
BVS ERROR salta a etiqueta ERROR si hay desbordamiento
BEQ CERO Salta a CERO si el total es cero
6
.........
7. Modos de direccionamiento
7
7. Modos de direccionamiento
Se usa para el recorrido de arrays monodimensionales desde las direcciones
más bajas a las más altas.
También para la recuperación de datos de la pila
* Programa 4.3: Modificación del programa 4.2 para utilizar este modo
* Poner las direcciones en registros de dirección
MOVEA.L #$6000, A1 A1 contiene $6000
MOVE.L (A1)+,D3 Las horas antigúas están en D3, se suma 4 al puntero A1
ADD.L (A1)+,D3 las horas totales en D3, A1 se incrementa en 4
MOVE.L D3,(A1) Las horas totales están en la dirección $6008 de la memoria
BVS ERROR salta a etiqueta ERROR si hay desbordamiento
BEQ CERO Salta a CERO si el total es cero
.........
8
7. Modos de direccionamiento
* Programa 4.4: Copia una cadena de caracteres ASCII de una posición a otra
*de la memoria. A1 apunta al primer caracter ASCII del bloque de texto almacenado
* en la memoria. Se supone que el último caracter es el ASCII nulo.
LAZO TST.B (A1) ¿hemos alcanzado un nulo?
BEQ FIN
MOVE.B (A1)+, (A2)+ copia un byte de una dirección a otra de la memoria
BRA LAZO
9
7. Modos de direccionamiento
Indirecto de Registro Direcciones con
Predecremento:
Antes de acceder, el registro de direcciones se
decrementa en 1, 2 o 4 unidades dependiendo del
tamaño del operando. Después, se accede al dato en la
dirección resultante.
Sintáxis: MNEMÓNICO.N -(An),OPERANDO_DESTINO
Ejemplos:
10
7. Modos de direccionamiento
Se usa para el recorrido de arrays monodimensionales desde las direcciones
más altas a las más bajas.
También para el almacenamiento de datos en la pila
11
7. Modos de direccionamiento
Indirecto de Registro con desplazamiento:
Este modo requiere de una palabra de extensión detrás del código de ope
La dirección del dato es la suma de la dirección contenida en el registro An y
la constante de 16 bits, extendida en signo, contenida en la palabra de exten
Sintáxis: MNEMÓNICO.N d16(An),OPERANDO_DESTINO
Ejemplo:
12
7. Modos de direccionamiento
En este modo de direccionamiento el valor de An no cambia
como ocurría en el anterior. Se puede utilizar para acceder a una
tabla cuya dirección base es la de An
* Programa 4.5 : Cambiar el orden de dos elementos de una tabla cuya dirección
*base es la de A2
MOVE.L 4(A2),D0 Guardamos la 2ª entrada
MOVE.L 8(A2),4(A2) Movemos la 3ª entrada al lugar de la 2ª
MOVE.L D0,8(A2) Ponemos la 2ª entrada en 3er lugar
Para operandos de tipo L o W la soma d16 +An debe ser par.
13
7. Modos de direccionamiento
Indirecto de Registro indexado con desplazamiento:
Ejemplo:
15
7. Modos de direccionamiento
* Programa 4.6 : Cambiar el orden de dos elementos de una tabla cuya dirección
*base es la de A2
MOVEQ.L #4,D1 Se pone D1 a 4
MOVE.L 0(A2,D1.W),D0 Guardamos la 2ª entrada
MOVEA.W #8,A0
MOVE.L 0(A2,A0.W),0(A2,D1.W) Movemos la 3ª entrada al lugar de la 2ª
MOVE.L D0,0(A2,A0.W) Ponemos la 2ª entrada en 3er lugar
16
7. Modos de direccionamiento
Absoluto:
Absoluto largo:
Absoluto corto:
Sintáxis Absoluto Largo: MNEMÓNICO.N xxxxxx,OPERANDO_DESTINO
17
Sintáxis Absoluto Corto: MNEMÓNICO.N xxxx,OPERANDO_DESTINO
7. Modos de direccionamiento
Ejemplo:
18
7. Modos de direccionamiento
*Programa 4.7: las horas antigúas están en una doble palabra en la
*dirección $6000 y las que hay que añadir en $6004
MOVE.L $6000,D3 Horas antigüas en D3
ADD.L $6004,D3 Horas totales en D3
MOVE.L D3,$6008 Se salva D3 en la memoria
19
7. Modos de direccionamiento
Relativo:
20
7. Modos de direccionamiento
Ejemplo:
21
7. Modos de direccionamiento
Sintáxis : MNEMÓNICO.N
d8(PC,X.t),OPERANDO_DESTINO
22
7. Modos de direccionamiento
Ejemplo:
23
7. Modos de direccionamiento
24
7. Modos de direccionamiento
Inmediato:
El dato se encuentra en una o varias de las palabras de
extensión que siguen a la OW de la propia instrucción o
incluso en el OW (modos rápidos).Sintáxis:
MNEMÓNICO.N #DATO,OPERANDO_DESTINO
Ejemplos:
25
7. Modos de direccionamiento
● Se utiliza para inicializar los contenidos de los
registros (datos o direcciones) a un valor
determinado o para incrementar su valor.
● Las instrucciones de formato rápido utilizan este
modo, pero no requieren palabras de extensión
ya que el dato esta en la OW.
26
7. Modos de direccionamiento
Instrucciones y modos de direccionamiento
27
7. Modos de direccionamiento
CONTROL: Incluye todos los modos que pueden usarse para referirse
a operandos de memoria sin un tamaño asociado, y son usados
por instrucciones de control como saltos, llamadas a subrutinas,...
(Los modos indirectos con predecremento y postincremento y el
inmediato no están incluidos).
ALTERABLE: Incluye todos los modos que pueden usarse para
referirse a operandos modificables. Un operando destino sólo
puede usar los modos de direccionamiento incluidos en esta
categoría.(Los direccionamientos relativos al contador de
programa y el direccionamiento inmediato no pertenecen a este
grupo.)
28
7. Modos de direccionamiento
Estas cuatro categorías primitivas pueden combinarse para
obtener las categorías que se resumen en la siguiente tabla:
30
8. Conjunto de instrucciones
31