Suppose you want to make a nested function call (i.e. a call to a function from inside of another function) using a jal rather than a call for performance reasons. How would the push and pop pseudo-ops be proprely ordered along with the jal so that the previous return address isn't lost?
a) pop $ra
jal nested_function_label
nop
push $ra
b) push $ra
jal nested_function_label
nop
pop $ra
c) push $ra
pop $ra
jal nested_function_label
nop
d) jal nested_function_label
nop
pop $ra
push $ra