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 dirección cero: la instrucción de dirección cero es un formato de instrucción de máquina. Tiene un código de operación y no tiene campos de dirección.
Ejemplo:
X = (A + B) x (C + D)
Solución:
LOAD A AC <- M[A] PUSH A TOS <- A PUSH B TOS <- B ADD TOS <- (A + B) PUSH C TOS <- C PUSH D TOS <- D ADD TOS <- (C + D) MUL TOS <- (C + D) x (A + B) POP X M[X] <- TOS
Diferencia entre la instrucción de tres direcciones y la instrucción de dirección cero:
INSTRUCCIÓN DE TRES DIRECCIONES | INSTRUCCIÓN DE DIRECCIÓN CERO |
---|---|
Tiene cuatro campos. | Tiene un solo campo. |
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 ningún campo 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. | No existe 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 dirección 0, no hay campo para el operando. |
En formato de 3 direcciones, el número de instrucciones es menor. | Mientras está en formato de dirección 0, el número de instrucciones es mayor. |
Puede necesitar tres accesos a la memoria para una instrucción. | No necesita tres accesos a memoria. |