1. a) CLA TAD 7 /LOAD FRAME POINTER TAD X /CACULATE THE ADDRESS OF X DCA 2 /STORE THE ADDRESS TO M[2] TAD I 2 /LOAD DATA BY INDIRECT ADDRESSING b) CLA TAD 7 TAD Y DCA 2 TAD I 2 DCA 2 TAD I 2 C) CLA TAD 7 TAD Z DCA 2 /STROE THE ADDRESS OF Z IN M[2] TAD 7 TAD i DCA 3 /STORE THE ADDRESS OF I IN M[3] TAD I 3 TAD I 2 /GET THE ADDRESS OF THE iTH ELEMENT DCA 3 /STORE THE ADDRESS IN M[3] TAD I 3 /LOAD DATA BY INDIRECT ADDRESSING 2. 3. Labels X1 and X2 are assumed to reference autoincrement locations CLA TAD SRC-1 DCA X1 / X1 = SRC-1 TAD DST-1 DCA X2 / X2 = DST-1 TAD -CNT DCA TMP / setup TMP = -CNT LOOP, / do { TAD I X1 DCA I X2 / M[++X2] = M[++X1] ISZ TMP / TMP++ JMP LOOP / } while (TMP!=0) 4. Instruction: 0001 111 r1 111 r2 Memory[Memory[Reg[r1]+Memory[pc++]]]---> Memory[Memory[Reg[r2]+Memory[pc++]]] 1) fetch instruction 0001 111 r1 111 r2 from memory. 2) two operands: Memory[pc++] is fetched form instruction stream 3) operands: Memory[Reg[r1]+Memory[pc++]] Memory[Reg[r2]+Memory[pc++]] Memory[Memory[Reg[r1]+Memory[pc++]]] are fetched from memory. 4) operand: Memory[Memory[Reg[r2]+Memory[pc++]]] is stored in memory. 5. The function of the instruction is: M[--pc] ----> M[--pc]. Assume that after fecth the instruction, the memory is like the following: x1:----- x2:----- x3:MOV -(pc),-(pc) x4:----- pc = x4. Execute MOV -(pc), -(pc): first pc <- pc -1, so pc = x3. Content in x3 is fetched which is the instruction MOV -(pc),-(pc). Then pc <- pc-1, so pc = x2. Instruction MOV -(pc),-(pc) is copied to location x2. After the execution, the memory content is: x1: ----- x2: MOV -(pc),-(pc) x3: MOV -(pc),-(pc) x4: ----- pc = x2. Then instuction in x2 will be exectute. It will copy itself to the memory location below it. As a result, the computer will enter an infinite loop and the entire contents ofmemory will be MOV -(pc),-(pc).