From 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Thu, 2 Jul 2026 11:55:17 -0700 Subject: Init --- .../cs5300/compiler/p5-compiler/data/test8.asm | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 Homework/cs5300/compiler/p5-compiler/data/test8.asm (limited to 'Homework/cs5300/compiler/p5-compiler/data/test8.asm') diff --git a/Homework/cs5300/compiler/p5-compiler/data/test8.asm b/Homework/cs5300/compiler/p5-compiler/data/test8.asm new file mode 100644 index 0000000..09281f5 --- /dev/null +++ b/Homework/cs5300/compiler/p5-compiler/data/test8.asm @@ -0,0 +1,118 @@ +# All program code is placed after the +# .text assembler directive +.text + +# Declare main as a global function +.globl main + +j main +add: +# Entering a new scope. +# Symbols in symbol table: +# println : 0 +# x : -4 +# y : -8 +# return : -12 +# Update the stack pointer. +addi $sp $sp 0 +li $t0 -4 +add $t0 $t0 $sp +lw $t0 0($t0) +li $t1 -8 +add $t1 $t1 $sp +lw $t1 0($t1) +add $t2 $t0 $t1 +# symbol table size - -12 +sw $t2 -12($sp) +# Exit scope. +addi $sp $sp 0 +jr $ra +add2: +# Entering a new scope. +# Symbols in symbol table: +# println : 0 +# x : -4 +# y : -8 +# return : -12 +# Update the stack pointer. +addi $sp $sp 0 +move $t0 $ra +sw $t0 -16($sp) +move $t1 $ra +sw $t0 -16($sp) +sw $t1 -20($sp) +li $t2 -4 +add $t2 $t2 $sp +lw $t2 0($t2) +sw $t2 -24($sp) +li $t2 -8 +add $t2 $t2 $sp +lw $t2 0($t2) +sw $t2 -28($sp) +add $sp $sp -20 +jal add +add $sp $sp 20 +lw $t0 -16($sp) +lw $t1 -20($sp) +# symbol table size - -28 +lw $t2 -32($sp) +move $ra $t1 +sw $t2 -20($sp) +li $t1 1 +sw $t1 -24($sp) +add $sp $sp -16 +jal add +add $sp $sp 16 +lw $t0 -16($sp) +# symbol table size - -24 +lw $t1 -28($sp) +move $ra $t0 +# symbol table size - -12 +sw $t1 -12($sp) +# Exit scope. +addi $sp $sp 0 +jr $ra +main: +# Entering a new scope. +# Symbols in symbol table: +# println : 0 +# Update the stack pointer. +addi $sp $sp 0 +# println +la $a0 string_0 +li $v0 4 +syscall +la $a0 newline +li $v0 4 +syscall +move $t0 $ra +sw $t0 -4($sp) +li $t1 2 +sw $t1 -8($sp) +li $t1 4 +sw $t1 -12($sp) +add $sp $sp -4 +jal add2 +add $sp $sp 4 +lw $t0 -4($sp) +# symbol table size - -12 +lw $t1 -16($sp) +move $ra $t0 +# println +move $a0 $t1 +li $v0 1 +syscall +la $a0 newline +li $v0 4 +syscall +# Exit scope. +addi $sp $sp 0 +li $v0 10 +syscall + +# All memory structures are placed after the +# .data assembler directive +.data + +newline: .asciiz "\n" +string_0: .asciiz "This program prints 7" -- cgit v1.3