Assembly Language: NOTE: LI is LOAD_IMM and ADI is ADD_IMM LI r0 65 LI r1 95 LOOP: LOAD_IND r2 (r0) ADI r0 r0 1 LOAD_IND r3 (r0) ADD r2 r2 r3 ADI r0 r0 1 LOAD_IND r3 (r0) SUB r2 r2 r3 SW+ r1 r1 r2 4 /* MEM[r1] <- r2; r1 <- r1+4 LI r2 93 BGE r2 r0 2 JMP 30 (NEXT) ADI r0 r0 1 JMP 4 (LOOP) NEXT: LI r0 65 LI r1 96 LOOP2: LOAD_IND r2 (r0) ROLM r2 r2 r2 3 SW+ r1 r1 r2 1 RORM r2 r2 r2 3 SW+ r1 r1 r2 1 RORM r2 r2 r2 2 SW+ r1 r1 r2 2 ADI r0 r0 3 LI r2 95 BGE r0 r2 2 JMP 34 (LOOP2) DONE: ADI r2 r2 -8 STORE r2 r2 135 (24-bit instruction) HALT Data starts at address 65, with 3 arrays of 10 integers A, B, C interleaved, i.e., we have 65: A[1] 66: B[1] 67: C[1] 68: A[2], etc. A= 50, 40, -128, 10, 22, 52, 19, 0, 38, 72 B= 45, 70, 24, -55, -30, -110, 81, -73, -91, 99 C= -20, 11, 40, 60, -50, 20, 37, -25, 75, 82 The results will be stored from address 95 to 134 (40 items) as follows: 95: A[1]+B[1]-C[1] 96: A[1] rotated left 3 bits 97: A[1] 98: A[1] rotated right 2 bits 99: A[2]+B[2]-C[2] 100: A[2] rotated left 3 bits 101: A[2] 102: A[2] rotated right 2 bits, etc. Also in location 135, the # stored will be 87 (using the 24-bit STORE). Start mem file % 0: 65 1: 001001 00 2: 95 3: 001001 01 4: 00 00 0000 5: 001011 10 6: 00 00 0001 7: 000011 00 8: 00 00 0000 9: 001011 11 10: 10 11 0000 11: 000001 10 12: 00 00 0001 13: 000011 00 14: 00 00 0000 15: 001011 11 16: 10 11 0000 17: 000100 10 18: 01 10 0100 19: 001101 01 20: 93 21: 001001 10 22: 10 00 0010 23: 000110 00 24: 00011110 25: 001000 00 26: 00 00 0001 27: 000011 00 28: 00000100 29: 001000 00 30: 65 31: 001001 00 32: 96 33: 001001 01 34: 00 00 0000 35: 001011 10 36: 10 10 0011 37: 000101 10 38: 01 10 0001 39: 001101 01 40: 10 10 0011 41: 000111 10 42: 01 10 0001 43: 001101 01 44: 10 10 0010 45: 000111 10 46: 01 10 0010 47: 001101 01 48: 00 00 0011 49: 000011 00 50: 95 51: 001001 10 52: 00 10 0010 53: 000110 00 54: 00100010 55: 001000 00 56: 10 00 1000 57: 000011 10 58: 10 10 0000 59: 001100 10 60: 10000111 61: 00 00 0000 62: 001110 00 65: 50 66: 45 67: 1110 1100 68: 40 69: 70 70: 11 71: 1000 0000 72: 24 73: 40 74: 10 75: 1100 1001 76: 60 77: 22 78: 1110 0010 79: 1100 1110 80: 52 81: 1001 0010 82: 20 83: 19 84: 81 85: 37 86: 0 87: 1011 0111 88: 1110 0111 89: 38 90: 1010 0101 91: 75 92: 72 93: 99 94: 82