# Matrix A (2 1 3, 3 4 1, 5 2 3) A: .word 2, 1, 3 .word 3, 4, 1 .word 5, 2, 3 # Matrix B (1 2 0, 4 1 2, 3 2 1) B: .word 1, 2, 0 .word 4, 1, 2 .word 3, 2, 1 # Matrix C (resulting matrix) C: .space 36 # 9 elements * 4 bytes = 36 bytes main: # Load addresses of A, B, and C lui $t0, %hi(A) # t0 = base address of A ori $t0, $t0, %lo(A) lui $t1, %hi(B) # t1 = base address of B ori $t1, $t1, %lo(B) lui $t2, %hi(C) # t2 = base address of C ori $t2, $t2, %lo(C) # Calculate C[0] = A[0]*B[0] + A[1]*B[3] + A[2]*B[6] lw $t3, 0($t0) # A[0] lw $t4, 0($t1) # B[0] mul $t5, $t3, $t4 # t5 = A[0]*B[0] lw $t3, 4($t0) # A[1] lw $t4, 12($t1) # B[3] mul $t6, $t3, $t4 # t6 = A[1]*B[3] add $t5, $t5, $t6 # t5 = t5 + t6 lw $t3, 8($t0) # A[2] lw $t4, 24($t1) # B[6] mul $t6, $t3, $t4 # t6 = A[2]*B[6] add $t5, $t5, $t6 # t5 = t5 + t6 sw $t5, 0($t2) # Store C[0] # Calculate C[1] = A[0]*B[1] + A[1]*B[4] + A[2]*B[7] lw $t3, 0($t0) # A[0] lw $t4, 4($t1) # B[1] mul $t5, $t3, $t4 # t5 = A[0]*B[1] lw $t3, 4($t0) # A[1] lw $t4, 16($t1) # B[4] mul $t6, $t3, $t4 # t6 = A[1]*B[4] add $t5, $t5, $t6 # t5 = t5 + t6 lw $t3, 8($t0) # A[2] lw $t4, 28($t1) # B[7] mul $t6, $t3, $t4 # t6 = A[2]*B[7] add $t5, $t5, $t6 # t5 = t5 + t6 sw $t5, 4($t2) # Store C[1] # Calculate C[2] = A[0]*B[2] + A[1]*B[5] + A[2]*B[8] lw $t3, 0($t0) # A[0] lw $t4, 8($t1) # B[2] mul $t5, $t3, $t4 # t5 = A[0]*B[2] lw $t3, 4($t0) # A[1] lw $t4, 20($t1) # B[5] mul $t6, $t3, $t4 # t6 = A[1]*B[5] add $t5, $t5, $t6 # t5 = t5 + t6 lw $t3, 8($t0) # A[2] lw $t4, 32($t1) # B[8] mul $t6, $t3, $t4 # t6 = A[2]*B[8] add $t5, $t5, $t6 # t5 = t5 + t6 sw $t5, 8($t2) # Store C[2] # Calculate C[3] = A[3]*B[0] + A[4]*B[3] + A[5]*B[6] lw $t3, 12($t0) # A[3] lw $t4, 0($t1) # B[0] mul $t5, $t3, $t4 # t5 = A[3]*B[0] lw $t3, 16($t0) # A[4] lw $t4, 12($t1) # B[3] mul $t6, $t3, $t4 # t6 = A[4]*B[3] add $t5, $t5, $t6 # t5 = t5 + t6 lw $t3, 20($t0) # A[5] lw $t4, 24($t1) # B[6] mul $t6, $t3, $t4 # t6 = A[5]*B[6] add $t5, $t5, $t6 # t5 = t5 + t6 sw $t5, 12($t2) # Store C[3] # Repeat the above steps for C[4], C[5], C[6], C[7], and C[8] # End program li $v0, 10 # Exit system call syscall