Requisito previo: formatos de instrucción
1. Instrucciones de dos direcciones:
la instrucción de dos direcciones es un formato de instrucción de máquina. Tiene un código de operación y dos campos de dirección. Un campo de dirección es común y se puede usar para el destino o el origen y otro campo de dirección para el origen.
Ejemplo:
X = (A + B) x (C + D)
Solución:
MOV R1, A R1 <- M[A] ADD R1, B R1 <- R1 + M[B] MOV R2, C R2 <- M[C] ADD R2, D R2 <- R2 + D MUL R1, R2 R1 <- R1 x R2 MOV X, R1 M[X] <- R1
2. Instrucciones de
una dirección: la instrucción de una dirección también es un formato de instrucción de máquina. Tiene sólo dos campos. Uno para el código de operación y otro para el operando.
Ejemplo:
X = (A + B) x (C + D)
Solución:
LOAD A AC <- M[A] ADD B AC <- AC + M[B] STORE T M[T] <- AC LOAD C AC <- M[C] ADD D AC <- AC + M[D] MUL T AC <- AC x M[T] STORE X M[X] <- AC
Diferencia entre la instrucción de dos direcciones y la instrucción de una dirección:
INSTRUCCIÓN DE DOS DIRECCIONES | INSTRUCCIÓN DE UNA DIRECCIÓN |
---|---|
Tiene tres campos. | Tiene sólo dos campos. |
Tiene un campo para el código de operación y dos campos para la dirección. | Tiene un campo para el código de operación y un campo para la dirección. |
Tiene una longitud de instrucción larga en comparación con una dirección. | Si bien tiene una longitud de instrucción más corta. |
Es más lento acceder a la ubicación dentro del procesador que a la memoria. | Es más rápido acceder a la ubicación dentro del procesador que a la memoria. |
Generalmente necesita dos accesos a la memoria. | Generalmente necesita un acceso a la memoria. |
Puede haber tres accesos a la memoria necesarios para una instrucción. | Se necesita un único acceso a la memoria para una instrucción. |
No puede eliminar por completo tres accesos a la memoria. | Elimina dos accesos a la memoria por completo. |