13.11.2014 Views

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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!