MIPS регистрирует сохранение
Итак, я изучаю MIPS прямо сейчас, и я увидел на зеленом листе MIPS, что всего 12 регистров (включая регистры) сохраняются во время вызова. В моем понимании этого, нужно сложить все такие регистры и извлечь их позже, когда мы снова захотим получить к ним доступ.
Однако мой вопрос: если была проблема с этим, зачем вообще использовать эти регистры? Есть ли смысл использовать эти регистры помимо того, что, возможно, не хватает регистров для использования?
1 ответ
Сборка MIPS имеет соглашение о вызовах, которое указывает, что t
регистры сохраняются, и s
регистры сохраняются.
Это означает, что если вы вызываете чужую функцию, скажем мою, вы можете гарантировать, что s
регистры будут такими же в вашей функции после редактирования моей функции. Вы не можете гарантировать это для t
регистры, которые моя функция может свободно перезаписывать.
При написании сборки MIPS вы всегда должны следовать этому соглашению.