@set2018
ADD -(R2),R5 is pre decrement addressing mode.
it will first decrement R2 content by 1 then store that value into R5 . EA is value of R5 only .
---------------
Subtract (R1)+, R5 is post increment addressing mode.
instruction Subtract (R1)+,R5 means : first subtract R5 from R1 then store that result into R1 then increase R1 value by word length .
so M[R1] <- M[R1] - R5 , then we increase R1 value word by word. It is post increment.
so EA is M[R1] only , which is 1200 .
If I say Add R1, R2 Then the register contains the operand. It simply add R1 with R2.
If I say Add (R1), R2 : Then there is one level of indirection for R1 i.e. R1 doesn't contain operand directly but address of operand. so (R1) is same as Mem[R1] .
This question asks what is effective address of the memory operand , that memory addres is value of R1 only which is our Effective address here .
Similarly, Add -(R2),R5 means first decrese value of R2 by 1 then store it to R5 . It is pre decrement so we store it in R5.
But Substract (R1)+,R5 is post increment hence result first store in R1 then increse word by word .
Hope everything is clear at this point !