13.11.2014 Views

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>MODOS</strong> <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong>


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> DIRECTO<br />

En la instrucción el campo de dirección coincide con la verdadera<br />

dirección del operando.<br />

ADD R1, (10110111b)<br />

R1 ← R1 + M (10110111b)<br />

MEMORIA<br />

COP<br />

Op1<br />

Direccion<br />

• + La dirección del operando<br />

no es interpretada<br />

Operando<br />

• - El campo de dirección es<br />

de log2(M)<br />

• - Requiere de un acceso a<br />

memoria para traer el<br />

operando


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> INMEDIATO<br />

La instrucción no contiene la dirección del operando sino el<br />

operando mismo.<br />

ADD R1, 5 R1 ← R1 + 5<br />

• + El operando se trae con la<br />

instrucción<br />

• + No requiere accesos a<br />

memoria<br />

• - Valores numéricos sin signo<br />

menores a 2^(L) en donde L =<br />

longitud del campo<br />

• - Valores numéricos con signo<br />

en el rango de ±2^ (L/2)


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> <strong>DE</strong> REGISTRO<br />

El campo de direcciones de la instrucción especifica uno o<br />

más registros en el procesador.<br />

ADD R1, R2<br />

R1 ← R1 + R2<br />

• + Longitud de campo<br />

corta (log 2 (R)), en donde<br />

R = número de RPG<br />

• + No requiere accesos a<br />

memoria<br />

• - Pocos registros


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> INDIRECTO<br />

El campo de direcciones indica la dirección de donde se debe leer la<br />

dirección del operando.<br />

ADD R5, (R1)<br />

ADD R5, @ (R1)<br />

R5 ← R5 + m[r1]<br />

R5 ← R5 + m[m[r1]]<br />

• + Permite gran flexibilidad<br />

en el acceso a datos<br />

• - El campo de dirección es<br />

de log2(M)<br />

• - Requiere de uno o más<br />

accesos a memoria para<br />

traer el operando


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> IN<strong>DE</strong>XADO<br />

La dirección efectiva se obtiene de la suma del campo de direcciones<br />

y del contenido de un registro que generalmente es dedicado.<br />

ADD R3, (R1 + R2) R3 ← R3 + m[r1 + R2]<br />

COP<br />

Op1<br />

Registro base<br />

Indice<br />

RPG<br />

+<br />

MEMORIA<br />

Operando<br />

• + Permite acceder a<br />

estructuras de datos<br />

lineales, de manera<br />

sencilla y flexible<br />

• - La dirección<br />

efectiva del<br />

operando debe<br />

calcularse<br />

• - Requiere de un<br />

acceso a memoria<br />

para traer el<br />

operando


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> CON AUTOINCREMENTO<br />

ADD R1, (R2)+<br />

R1 ← R1 + m[r2]<br />

R2 ← R2 + d<br />

• + Permite acceder a estructuras de datos<br />

lineales, de manera sencilla y flexible<br />

• + Actualiza automáticamente el índice de<br />

los elementos de un arreglo


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> CON AUTO<strong>DE</strong>CREMENTO<br />

ADD R1, - (R2)<br />

R2 ← R2 - d<br />

R1 ← R1 + m[r2]<br />

• + Permite acceder a estructuras de datos<br />

lineales, de manera sencilla y flexible<br />

• + Actualiza automáticamente el índice de<br />

los elementos de un arreglo


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> ESCALADO<br />

ADD R1, (R2 + d*R3)<br />

R1 ← R1 + m[r2 + R3*d]<br />

R3 ← R3 + 1<br />

COP<br />

Op1<br />

Registro base<br />

Indice<br />

RPG<br />

Escala<br />

x<br />

+<br />

MEMORIA<br />

Operando<br />

• + Manejo más<br />

flexible de<br />

arreglos con<br />

elementos de<br />

diversos<br />

tamaños.<br />

• - Complejidad<br />

del formato de<br />

instrucción


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> IMPLICITO<br />

La instrucción no posee campos de direcciones de operando alguno. Esta se<br />

sobreentiende a partir del código de operación.<br />

RET<br />

CLI<br />

COP Op1 Operando implicito<br />

Ubicación<br />

implicita<br />

• + Instrucciones cortas.<br />

• + Las direcciones de los<br />

operandos no necesitan ser<br />

indicadas en la instrucción.<br />

• - Poca flexibilidad en el<br />

direccionamiento.<br />

• - Se necesitan instrucciones<br />

previas para garantizar la<br />

presencia de los datos en las<br />

posiciones implícitas.


MODO <strong>DE</strong> <strong>DIRECCIONAMIENTO</strong> RELATIVO<br />

El contenido del campo de dirección de la instrucción se suma al contenido<br />

del contador de programa y esta suma determina la dirección de la nueva<br />

instrucción.<br />

BRA 5 CN ← CN + 5<br />

• + El campo para indicar<br />

la dirección de salto es<br />

corto.<br />

• + El salto puede ser<br />

hacia delante o hacia<br />

atrás.<br />

• - No se puede saltar a<br />

distancias mayores que<br />

las permitidas por la<br />

longitud del campo.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!