# Code does not work. Used for illustration purposes # Export function .globl read_vector # Import other relevant files .import ../utils.s # Declare initial variables # Can only be used in top-level file. .data var1 : .asciiz "" # var2 : .word 0x1 0x2 # Integer array .text # ============================================================================== # Function # Describe how parameters are passed in a registers # Describe return value # ============================================================================== function: # Prologue # Save ra and s registers. addi sp, sp, -28 # some amount #not sure if this is needed sw ra, 0(sp) sw s2, 4(sp) sw s3, 8(sp) sw s4, 12(sp) sw s5, 16(sp) sw s6, 20(sp) sw s7, 24(sp) # Move a registers with parameters to s registers mv s2,a0 # Save t registers and set up a registers for call # Set up return values. move s/t registers to a registers mv a0,s6 mv a1,s3 # Epilogue lw ra, 0(sp) lw s2, 4(sp) lw s3, 8(sp) lw s4, 12(sp) lw s5, 16(sp) lw s6, 20(sp) lw s7, 24(sp) addi sp, sp, 28 // Deallocate space. // Return ret // Exit conditions eof_or_error: li a1 1 jal exit2