Регистры MIPS имеют соглашение - регистры $ s должны быть сохранены для вызовов подпрограмм, поэтому, если ваша подпрограмма их модифицирует, она должна сохранять их в стек, а регистры $ t не сохраняются.
Теперь, может ли syscall потенциально изменить регистр $ t? В симуляторе у меня это не так, но может ли реальная машина изменить регистры $ t? Я спрашиваю, потому что хочу знать , можно ли предположить, что регистр $ t останется тем же самым в syscall.
Что такое операционная система? Не будет ли это зависеть от реализации конкретной ОС? –