.data Ai: .word 100 .word Bi .word Ci Bi: .word 50 .word Di .word Ei Ci: .word 120 .word Fi .word 0 Di: .word 20 .word 0 .word 0 Ei: .word 61 .word 0 .word 0 Fi: .word 111 .word 0 .word 0 rooti: .word Ai Af: .float 100.0 .word Bf .word Cf Bf: .float 50.0 .word Df .word Ef Cf: .float 120.0 .word Ff .word 0 Df: .float 20.0 .word 0 .word 0 Ef: .float 61.0 .word 0 .word 0 Ff: .float 111.0 .word 0 .word 0 rootf: .word 0 nl: .asciiz "\n" .text .globl main main: # BEGIN main prologue subu $sp,$sp, 24 # Allocate stack frame sw $fp, 0($sp) # Save $fp in frame addu $fp, $sp, 24 # Set up $fp sw $ra, -20($fp) # Save $ra # END main prologue lw $a0,rooti la $a1,printInt jal inorder lw $a0,rootf la $a1,printFlt jal inorder # BEGIN main epilogue lw $ra, -20($fp) # Restore $ra lw $fp, -24($fp) # Restore $fp addu $sp, $sp, 24 # Pop stack frame jr $ra # END main epilogue printInt: # BEGIN prologue subu $sp,$sp, 24 # Allocate stack frame sw $fp, 0($sp) # Save $fp in frame addu $fp, $sp, 24 # Set up $fp sw $ra, -20($fp) # Save $ra # END prologue li $v0,1 syscall # BEGIN epilogue lw $ra, -20($fp) # Restore $ra lw $fp, -24($fp) # Restore $fp addu $sp, $sp, 24 # Pop stack frame jr $ra # END epilogue printFlt: # BEGIN prologue subu $sp,$sp, 24 # Allocate stack frame sw $fp, 0($sp) # Save $fp in frame addu $fp, $sp, 24 # Set up $fp sw $ra, -20($fp) # Save $ra sw $a0,-16($fp) # END prologue l.s $f12,-16($fp) li $v0,2 syscall # BEGIN epilogue lw $ra, -20($fp) # Restore $ra lw $fp, -24($fp) # Restore $fp addu $sp, $sp, 24 # Pop stack frame jr $ra # END epilogue inorder: # BEGIN main prologue subu $sp,$sp, 24 # Allocate stack frame sw $fp, 0($sp) # Save $fp in frame addu $fp, $sp, 24 # Set up $fp sw $ra, -20($fp) # Save $ra sw $a0,-16($fp) sw $a1,-12($fp) # END main prologue beqz $a0,done lw $a0,4($a0) jal inorder lw $a0,-16($fp) lw $a0,($a0) jalr $a1 li $v0,4 la $a0,nl syscall lw $a0,-16($fp) lw $a0,8($a0) jal inorder done: # BEGIN main epilogue lw $ra, -20($fp) # Restore $ra lw $fp, -24($fp) # Restore $fp addu $sp, $sp, 24 # Pop stack frame jr $ra # END main epilogue