.text .globl main main: sw $ra, 0($sp) # PUSH subu $sp, $sp, 4 sw $fp, 0($sp) # PUSH subu $sp, $sp, 4 addu $fp, $sp, 8 # point fp to first parameter, no params for main subu $sp, $fp, 8 # size of frame = 4 + 4 + 4*numparams + 4*numlocals # read an int li $v0, 5 syscall move $t0, $v0 # print an int li $v0, 1 move $a0, $t0 syscall # print an newline li $v0, 4 la $a0, newl syscall exit_main: lw $ra, 0($fp) move $t0, $fp lw $fp, -4($fp) move $sp, $t0 jr $ra .data newl: .asciiz "\n"