PRINT_INT = 1 PRINT_STR = 4 READ_INT = 5 PRINT_CHAR = 11 # int main(void){ # loop_init: # int sum = 0; # int i = 1; # int tmp = 0; # # loop_cond: # if (i >= 100) # goto end_loop; # loop_body: # tmp = i * i; # sum = sum + tmp; # loop_inc: # i++; # goto loop_cond; # end_loop: # printf("Sum of first 100 squares: %d\n", sum); # return(0); # } .text main: loop_init: li $t0, 0 # int sum = 0; li $t1, 1 # int i = 1; li $t2, 0 # int tmp = 0; loop_cond: bge $t1, 100, end_loop #if (i >= 100) goto end_loop; loop_body: mul $t2, $t1, $t1 # tmp = i * i; add $t0, $t0, $t2 # sum = sum + tmp; loop_inc: add $t1, $t1, 1 # i++; b loop_cond # goto loop_cond; end_loop: li $v0, PRINT_STR #printf("Sum of first 100 squares: %d\n", sum); la $a0, message syscall li $v0, PRINT_INT move $a0, $t0 syscall li $v0, PRINT_CHAR li $a0, '\n' syscall end: li $v0, 0 jr $ra .data message: .asciiz "The sum of first 100 squares is : "