# A simple example of a program with functions # These functions have no parameters or return values # (except for main that returns 0) # .text main: main__prologue: begin push $ra main__body: li $v0, 4 la $a0, msg_main1 syscall jal f li $v0, 4 la $a0, msg_main2 syscall li $v0, 0 main__epilog: pop $ra end jr $ra # return from main to (__start) f: f__prologue: begin push $ra f__body: li $v0, 4 la $a0, msg_f1 syscall jal g li $v0, 4 la $a0, msg_f2 syscall f__epilog: pop $ra end jr $ra #return g: li $v0, 4 la $a0, msg_g1 syscall jr $ra #return .data msg_main1: .asciiz "I am in the main\n" msg_main2: .asciiz "I am about to return from the main function\n" msg_f1: .asciiz "I am in the f function\n" msg_f2: .asciiz "I am about to return from the f function\n" msg_g1: .asciiz "I am in the g function\n"