OP Rj, Ri – Performs Rj OP Ri and stores the result in register Ri.
OP m, Rj – Performs val OP Ri and stores the result in Rj. val denotes the content of memory location m.
MOV m, Ri – Moves the content of memory location m to register Ri.
MOV, Ri, m – Moves the content of the register Ri to memory location m.
The computer has only two registers, and OP is either ADD or SUB. Consider the following basic block:
t1 = a + b
t2 = c + d
t3 = e – t2
t4 = t1 – t3
Assume that all operands are initially in memory. The final value of the computation should be in memory. What is the minimum number of MOV instructions in the code generated for this basic block?