A good answer might be:

By convention, register $a0 is used to pass the argument. But in the body of the subroutine register $a0 is used to pass arguments to the trap handler. So a safe copy must be made in an "S" register.

Calling the Subroutine

Here is a section of the main program. It prints out the contents of both structs:

        . . . .
        # $s1 contains the address of the first struct
        # $s2 contains the address of the second struct
        #      
        # write out the first struct    
        move    ____,____
        jal     PStruct
           
        # write out the second struct    
        move    ____,____
        jal     PStruct

QUESTION 12:

Fill in the blanks. Look back at the subroutine if needed.