summaryrefslogtreecommitdiff
path: root/test/masm/fncall.asm
diff options
context:
space:
mode:
Diffstat (limited to 'test/masm/fncall.asm')
-rw-r--r--test/masm/fncall.asm29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/masm/fncall.asm b/test/masm/fncall.asm
new file mode 100644
index 0000000..96d1ba2
--- /dev/null
+++ b/test/masm/fncall.asm
@@ -0,0 +1,29 @@
+# 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
+
+main:
+ # save ra on stack
+ addi $sp, $sp, -4
+ sw $ra, 0($sp)
+
+ # set return to 17
+ li $a0, 17
+ jal result
+
+ # pop ra from stack
+ lw $ra, 0($sp)
+ addi $sp, $sp, 4
+
+ # return result
+ jr $ra