summaryrefslogtreecommitdiff
path: root/test/masm/fncall.asm
blob: 39455abdb3f5b1bbc037bfc1132735bbab8425dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Copyright (c) 2024 Freya Murphy

# file: fncall.asm
# test: should return value from function call

.text
.align 2
.globl main

result:
	move	$t0, $a0
	move	$v0, $t0
	jr	$ra
	nop

main:
	# save ra on stack
	addi	$sp, $sp, -4
	sw	$ra, 0($sp)

	# set return to 17
	li	$a0, 17
	jal	result
	nop

	# pop ra from stack
	lw	$ra, 0($sp)
	addi	$sp, $sp, 4

	# return result
	jr	$ra
	nop