Está en la página 1de 31

7.

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. Inclu e: directo de registro de datos y directo de registro de direcciones. Indirecto de registro: El operando se encuentra en memoria es necesario o!tener su direcci"n a partir de un registro de direcciones. Inclu e: 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 se da su direcci"n e$plicitamente. Inclu e: absoluto largo y absoluto corto. Relativo al contador del programa: %a direcci"n del operando es relativa al contenido del PC. Inclu e: relativo al PC con desplazamiento y relativo al PC indexado con desplazamiento. Inmediato: El operando se e$presa de &orma e$pl'cita.

7. Modos de direccionamiento
Directo de Registro Datos:
El operando est# en el registro de datos especi&icado por la direcci"n e&ectiva. (int#$is: MNEMNICO.N E)emplo: Dn,OPERANDO_DESTINO

7. Modos de direccionamiento
Directo de Registro Direcciones:
El operando est# en el registro de direcciones especi&icado por la instrucci"n. (int#$is: MNEMNICO.N E)emplo: An,OPERANDO_DESTINO

7. Modos de direccionamiento
* Programa 4.1: las horas antigas estn en D1 y las que hay que *aadir en D2 MOV .! D1"D# !as horas antigas estn en D# $DD.! D2"D# las horas totales en D# %V& ''O' salta a etiqueta ''O' si hay des(ordamiento % ) * 'O &alta a * 'O si el total es +ero .........

7. Modos de direccionamiento
Indirecto de Registro Direcciones:
El operando est# en la posici"n de memoria indicada por el registro de direcciones especi&icado en la instrucci"n. (int#$is: MNEMNICO.N E)emplos: (An),OPERANDO_DESTINO

7. Modos de direccionamiento
* Programa 4.2: las horas antigas estn en una do(le ,ala(ra en la dire++i-n * ./000 y las que hay que aadir en ./004 * Poner las dire++iones en registros de dire++i-n MOV $.! 1./000" $1 $1 +ontiene ./000 MOV $.! 1./004"$2 $2 +ontiene ./004 MOV $.! 1./002"$# $# +ontiene ./002 MOV .! 3$14"D# !as horas antigas estn en D# $DD.! 3$24"D# las horas totales en D# MOV .! D#"3$#4 !as horas totales estn en la dire++i-n ./002 de la memoria %V& ''O' salta a etiqueta ''O' si hay des(ordamiento % ) * 'O &alta a * 'O si el total es +ero .........

7. Modos de direccionamiento
Indirecto de Registro Direcciones con Postincremento: El operando est# en la posici"n de memoria indicada por el registro de direcciones especi&icado en la instrucci"n. *espu+s de acceder, el registro de direcciones se incrementa en 1, 2 o - unidades dependiendo si el tama.o del operando es ! te, pala!ra o pala!ra larga respectivamente. (int#$is: MNEMNICO.N E)emplos: (An)+,OPERANDO_DESTINO

7. Modos de direccionamiento
(e usa para el recorrido de arra s monodimensionales desde las direcciones m#s !a)as a las m#s altas. /am!i+n parala recuperaci"n de datos de la pila * Programa 4.#: Modi5i+a+i-n del ,rograma 4.2 ,ara utili6ar este modo * Poner las dire++iones en registros de dire++i-n MOV $.! 1./000" $1 $1 +ontiene ./000 MOV .! 3$147"D# !as horas antigas estn en D#" se suma 4 al ,untero $1 $DD.! 3$147"D# las horas totales en D#" $1 se in+rementa en 4 MOV .! D#"3$14 !as horas totales estn en la dire++i-n ./002 de la memoria %V& ''O' salta a etiqueta ''O' si hay des(ordamiento % ) * 'O &alta a * 'O si el total es +ero .........

7. Modos de direccionamiento
* Programa 4.4: *o,ia una +adena de +ara+teres $&*88 de una ,osi+i-n a otra
*de la memoria. $1 a,unta al ,rimer +ara+ter $&*88 del (loque de te9to alma+enado * en la memoria. &e su,one que el ltimo +ara+ter es el $&*88 nulo.

!$:O ;&;.% 3$14 <hemos al+an6ado un nulo= % ) >8? MOV .% 3$147" 3$247 +o,ia un (yte de una dire++i-n a otra de la memoria %'$ !$:O

7. Modos de direccionamiento
Indirecto de Registro Direcciones con Predecremento: 0ntes de acceder, el registro de direcciones se decrementa en 1, 2 o unidades dependiendo del tama.o del operando. *espu+s, se accede al dato en la direcci"n resultante. (int#$is: MNEMNICO.N
- Ejemplos:

-(An),OPERANDO_DESTINO

10

7. Modos de direccionamiento
(e usa para el recorrido de arra s monodimensionales desde las direcciones m#s altas a las m#s !a)as. /am!i+n para el almacenamiento de datos en la pila

11

7. Modos de direccionamiento
Indirecto de Registro con desplazamiento: Este modo re1uiere de una pala!ra de e$tensi"n detr#s del c"digo de operaci"n. %a direcci"n del dato es la suma de la direcci"n contenida en el registro 0n la constante de 16 !its, e$tendida en signo, contenida en la pala!ra de e$tensi"n. (int#$is: MNEMNICO.N d16(An),OPERANDO_DESTINO E)emplo:

12

7. Modos de direccionamiento
En este modo de direccionamiento el valor de 0n no cam!ia como ocurr'a en el anterior. (e puede utilizar para acceder a una ta!la cu a direcci"n !ase es la de 0n
* Programa 4.@ : *am(iar el orden de dos elementos de una ta(la +uya dire++i-n
*(ase es la de $2 MOV .! 43$24"D0 Auardamos la 2B entrada MOV .! 23$24"43$24 MoCemos la #B entrada al lugar de la 2B MOV .! D0"23$24 Ponemos la 2B entrada en #er lugar

Para operandos de tipo % o 2 la soma d16 30n de!e ser par. 4a casos en los 1ue se necesita 1ue el desplazamiento sea varia!le, de 5a el motivo del siguiente modo.
13

7. Modos de direccionamiento
Indirecto de Registro indexado con desplazamiento: Este modo re1uiere de una pala!ra de e$tensi"n con el siguiente &ormato:

%a direcci"n del operando se o!tiene tras sumar el contenido del registro de direcciones con la constante de 8 !its dada en la pala!ra de e$tensi"n el contenido del registro 'ndice: (int#$is: MNEMNICO.N d8(An,X.t),OPERANDO_DESTINO
14

7. Modos de direccionamiento
E)emplo:

15

7. Modos de direccionamiento

* Programa 4./ : *am(iar el orden de dos elementos de una ta(la +uya dire++i-n
*(ase es la de $2 MOV ).! 14"D1 &e ,one D1 a 4 MOV .! 03$2"D1.D4"D0 Auardamos la 2B entrada MOV $.D 12"$0 MOV .! 03$2"$0.D4"03$2"D1.D4 MoCemos la #B entrada al lugar de la 2B MOV .! D0"03$2"$0.D4 Ponemos la 2B entrada en #er lugar

16

7. Modos de direccionamiento
Absoluto:
En este modo las pala!ras de e$tensi"n contienen la direcci"n de memoria donde est#n los operandos. E$isten dos tipos:

0!soluto largo:
*ispone de dos E2 1ue contienen los 2- !its de la direcci"n de memoria del operando.

0!soluto corto:
*ispone de una pala!ra de e$tensi"n, E2, 1ue se e$tiende en signo para construir los 2- !its de la direcci"n de memoria del operando. En este modo s"lo se pueden acceder a las 627 direcciones m#s !a)as89000000,900:;;;< a las 62= m#s altas 89;;8000,9;;;;;;<.
Sintxis Absoluto Largo: MNEMNICO.N xxxxxx,OPERANDO_DESTINO Sintxis Absoluto Corto: MNEMNICO.N xxxx,OPERANDO_DESTINO
17

7. Modos de direccionamiento
E)emplo:

18

7. Modos de direccionamiento

*Programa 4.E: las horas antigas estn en una do(le ,ala(ra en la *dire++i-n ./000 y las que hay que aadir en ./004 MOV .! ./000"D# Foras antigGas en D# $DD.! ./004"D# Foras totales en D# MOV .! D#"./002 &e salCa D# en la memoria

19

7. Modos de direccionamiento
Relativo: *os modalidades: relativo con desplazamiento relativo inde$ado con desplazamiento. (imilar a los modos indirectos con desplazamiento e inde$ado con la salvedad 1ue el registro usado es el PC. >elativo con *esplazamiento: 0l contenido del PC, se suma el desplazamiento de 16 !its e$tendido en signo. (int#$is : MNEMNICO.N d16(PC),OPERANDO_DESTINO

20

7. Modos de direccionamiento
E)emplo:

21

7. Modos de direccionamiento
>elativo con ?ndice *esplazamiento: 0l contenido del PC, se suma el desplazamiento de 8 !its e$tendido en signo el contenido de un registro 'ndice 1ue se e$tiende en signo si el tama.o es 2. (int#$is : MNEMNICO.N d8(PC,X.t),OPERANDO_DESTINO

22

7. Modos de direccionamiento
E)emplo:

23

7. Modos de direccionamiento
%os modos de direccionamientos relativos son utilizados para generar c"digo 1ue &uncione con independencia de la posici"n de memoria donde se cargue el programa @c"digo reu!ica!leA. %as re&erencias a memoria se 5acen con relaci"n al valor del PC 1ue no se conoce por anticipado.

("lo pueden ser utilizados para operandos &uentes. Bo se puede alterar la memoria utilizando este modo.

24

7. Modos de direccionamiento
Inmediato: El dato se encuentra en una o varias de las pala!ras de e$tensi"n 1ue siguen a la C2 de la propia instrucci"n o incluso en el C2 @modos r#pidosA.(int#$is: MNEMNICO.N #DATO,OPERANDO_DESTINO E)emplos:

25

7. Modos de direccionamiento

(e utiliza para inicializar los contenidos de los registros @datos o direccionesA a un valor determinado o para incrementar su valor. %as instrucciones de &ormato r#pido utilizan este modo, pero no re1uieren pala!ras de e$tensi"n a 1ue el dato esta en la C2.

26

7. Modos de direccionamiento
Instrucciones y modos de direccionamiento %a instrucci"n MCDE 1ue 5emos utilizado en los e)emplos admite todos los modos de direccionamiento. Bo es un caso 5a!itual, lo normal es 1ue cada instrucci"n admita un grupo limitado de modos de direccionamiento. %os distintos modos de direccionamiento se pueden clasi&icar en cuatro categor'as: *0/C(: Inclu e los modos 1ue pueden usarse para re&erirse a operandos de datos. @Inclu e todos los modos de direccionamiento e$cepto el modo directo a registro dedireccionesA MEMC>I0: Inclu e todos los modos 1ue pueden usarse para re&erirse a operandos dememoria. @Inlcu e todos los modos salvo el directo de registroA
27

7. Modos de direccionamiento
CCB/>C%: Inclu e todos los modos 1ue pueden usarse para re&erirse a operandos de memoria sin un tama.o asociado, son usados por instrucciones de control como saltos, llamadas a su!rutinas,...@%os modos indirectos con predecremento postincremento el inmediato no est#n incluidosA. 0%/E>0E%E: Inclu e todos los modos 1ue pueden usarse para re&erirse a operandos modi&ica!les. Fn operando destino s"lo puede usar los modos de direccionamiento incluidos en esta categor'a.@%os direccionamientos relativos al contador de programa el direccionamiento inmediato no pertenecen a este grupo.A

28

7. Modos de direccionamiento
Estas cuatro categor'as primitivas pueden com!inarse para o!tener las categor'as 1ue se resumen en la siguiente ta!la:

%os operandos de las instrucciones vienen especi&icados por alguna de estas categor'as, por tanto, s"lo los modos de direccionamiento incluidos en cada una de ellas, son los v#lidos para dic5o operando.
29

8. Conjunto de instrucciones
El 68000 tiene 56 instrucciones 1ue, com!inadas con los 1- modos de direccionamiento los cinco &ormatos de datos, o&rece al programador una 5erramienta potente para el desarrollo de programas. (e clasi&ican en 8 grupos segGn el tipo de operaci"n 1ue realizan::

Instrucciones de movimiento de datos: MCDE, MCDE0, MCDEM, MCDEH, EIJ, %E0, PEA, (20P, %IB7 FB%B7 Instrucciones de aritm+tica entera: 0**, 0**0, 0**I, 0**H, 0**I, C%>, CMP, CMP0, CMPI, CMPM, *IDF, *ID(, EI/, MF%F, MF%(, BEJ, BEJI, (FE, (FE0, (FEI, (FE2 , (FEI CMP Instrucciones l"gicas: 0B*, 0B*I, EC>, EC>I, C>, C>I, BC/ /(/ Instrucciones en EC*: 0EC*, BEC* (EC*

30

8. Conjunto de instrucciones

Instrucciones de desplazamiento rotaci"n: 0(%, 0(>, %(%, %(>, >C%, >C>, >CI%, >CI> (20P Instrucciones de manipulaci"n de !its: BTST, BSET, BCLR, BC ! Instrucciones de control del programa: E>0, E(>, KMP, K(>, >/>, >/(, BCP. Instrucciones de control del sistema: >E(E/, >/E, (/CP, />0P, />0PD, C47, ..

@DE> /0E%0 >E(FMEBA


31

También podría gustarte