先决条件–指令格式
1.两地址指令:
两地址指令是机器指令的一种格式。它具有一个操作码和两个地址字段。一个地址字段是公用的,可用于目的地或源,而另一地址字段可用于源。
例子:
X = (A + B) x (C + D)
解决方案:
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.一键式指令:
单地址指令也是机器指令的格式。它只有两个字段。一个用于操作码,另一个用于操作数。
例子:
X = (A + B) x (C + D)
解决方案:
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
两地址指令和单地址指令之间的区别:
TWO-ADDRESS INSTRUCTION | ONE-ADDRESS INSTRUCTION |
---|---|
It has three fields. | It has only two fields. |
It has one field for opcode and two fields for address. | It has one field for opcode and one field for address. |
It has long instruction length as compared to one-address. | While it has shorter instruction length. |
It is slower accessing location inside processor than memory. | It is faster accessing location inside processor than memory. |
It generally needs two memory accesses. | It generally needs one memory accesses. |
There may be three memory accesses needed for an instruction. | There is a single memory access needed for an instruction. |
It can’t completely eliminate three memory access. | It eliminates two memory access completely. |