N_ROWS = 3 # #define N_ROWS 3 N_COLS = 5 # #define N_COLS 5 INT_SIZE = 4 # sizeof(int); .text main: li $t0, 0 # int i = 0; loop_row_cond: bge $t0, N_ROWS, loop_row_end # if (i >= N_ROWS) {goto loop_row_end;} loop_row_body: li $t1, 0 # int j = 0; loop_col_cond: bge $t1, N_COLS, loop_col_end # if (j >= N_COLS) {goto loop_col_end;} loop_col_body: mul $t2, $t0, N_COLS # tmp = row*N_COLS add $t2, $t2, $t1 # tmp = row*N_COLS + col mul $t2, $t2, INT_SIZE # tmp = (row*N_COLS + col)*sizeof(int) la $t3, numbers add $t2, $t2, $t3 # address + offset li $v0,1 lw $a0, ($t2) # printf("%d", numbers[i][j]); syscall li $v0, 11 la $a0, ' ' # printf("%c", ' '); syscall addi $t1, 1 # j++; b loop_col_cond # goto loop_col_cond; loop_col_end: li $v0, 11 la $a0, '\n' # printf("%c",'\n'); syscall addi $t0, 1 # row++; b loop_row_cond # goto loop_row_cond; loop_row_end: li $v0, 0 # return 0; jr $ra .data numbers: .word 3,9,27,81,243 # int numbers[N_ROWS][N_COLS] = {} .word 4,16,64,256,1024 .word 5,25,125,625,3125