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