MODOS DE DIRECCIONAMIENTO
MODOS DE DIRECCIONAMIENTO
MODOS DE DIRECCIONAMIENTO
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.