MIPS регистрирует сохранение

Итак, я изучаю MIPS прямо сейчас, и я увидел на зеленом листе MIPS, что всего 12 регистров (включая регистры) сохраняются во время вызова. В моем понимании этого, нужно сложить все такие регистры и извлечь их позже, когда мы снова захотим получить к ним доступ.

Однако мой вопрос: если была проблема с этим, зачем вообще использовать эти регистры? Есть ли смысл использовать эти регистры помимо того, что, возможно, не хватает регистров для использования?

1 ответ

Решение

Сборка MIPS имеет соглашение о вызовах, которое указывает, что t регистры сохраняются, и s регистры сохраняются.

Это означает, что если вы вызываете чужую функцию, скажем мою, вы можете гарантировать, что s регистры будут такими же в вашей функции после редактирования моей функции. Вы не можете гарантировать это для t регистры, которые моя функция может свободно перезаписывать.

При написании сборки MIPS вы всегда должны следовать этому соглашению.

Другие вопросы по тегам