Yes.
Say that you have been given this task:
Write a subroutine that computes the maximum of its two integer arguments. The integers use two's complement representation. Use stack-based linking.
In C, the subroutine prototype would look like this:
int maxInt(int x, int y);
With our stack-based linkage convention this is:
Subroutine maxInt Input: $a0 -- a two's complement integer $a1 -- a two's complement integer Returns: $v0 -- the maximum of the two integers
The subroutine must be written with no knowledge of what is
in any register other than
$ra
,
$a0
, and
$a1
.
Indeed, since the subroutine might be used in many different programs,
the contents of the other registers cannot be known.
Can you write this subroutine withou knowing about the caller's registers?