.text .globl main main: # METHOD ENTRY sw $ra, 0($sp) #PUSH subu $sp, $sp, 4 sw $fp, 0($sp) #PUSH subu $sp, $sp, 4 addu $fp, $sp, 8 #WRITE .data .L0: .asciiz "Hello world!" .text la $t0, .L0 sw $t0, 0($sp) #PUSH subu $sp, $sp, 4 lw $a0, 4($sp) #POP addu $sp, $sp, 4 li $v0, 4 syscall #WRITE .data .L1: .asciiz "\n" .text la $t0, .L1 sw $t0, 0($sp) #PUSH subu $sp, $sp, 4 lw $a0, 4($sp) #POP addu $sp, $sp, 4 li $v0, 4 syscall #FUNCTION EXIT _main_Exit: lw $ra, 0($fp) move $t0, $fp #save access link lw $fp, -4($fp) #restore FP move $sp, $t0 #restore SP jr $ra #return