Requisito previo: formatos de instrucción
1. Instrucciones de tres direcciones:
la instrucción de tres direcciones es un formato de instrucción de máquina. Tiene un código de operación y tres campos de dirección. Se utiliza un campo de dirección para el destino y dos campos de dirección para el origen.
Ejemplo –
X = (A + B) x (C + D)
Solución:
ADD R1, A, B R1 <- M[A] + M[B] ADD R2, C, D R2 <- M[C] + M[D] MUL X, R1, R2 M[X] <- R1 x R2
2. 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
Diferencia entre la instrucción de tres direcciones y la instrucción de dos direcciones:
INSTRUCCIÓN DE TRES DIRECCIONES | INSTRUCCIÓN DE DOS DIRECCIONES |
---|---|
Tiene cuatro campos. | Tiene tres campos. |
Tiene un campo para el código de operación y tres campos para la dirección. | Tiene un campo para el código de operación y dos campos para la dirección. |
Tiene una larga duración de instrucción. | Tiene 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. |
Hay campos de dirección distintos para destino y origen. | Hay un campo de dirección común para el destino y el origen. |
En formato de 3 direcciones, la dirección de destino no puede contener operando. | Mientras está en formato de 2 direcciones, la dirección de destino puede tener un operando. |
En formato de 3 direcciones, las instrucciones son menores. | Mientras que en formato de 2 direcciones, las instrucciones son más. |
Generalmente requiere tres accesos a la memoria. | Generalmente requiere dos accesos a la memoria, pero en algunos casos también requiere tres accesos a la memoria. |
En formato de 3 direcciones, se requieren tres accesos a la memoria. | Mientras estaba en formato de 2 direcciones, eliminó tres accesos a la memoria, pero no por completo. |