2013-10-09 3 views
1

그래서 지금 MIPS를 배우고 있으며 MIPS 그린 시트에서 호출을 통해 보존되는 총 12 개의 레지스터 (레지스터 포함)가 있음을 확인했습니다. 이를 이해하기 위해서는 모든 레지스터를 쌓아 나중에 다시 액세스 할 때 검색해야합니다.MIPS 레지스터 보존

하지만이 문제를 해결하기 위해 문제가 있다면 왜이 레지스터를 사용해도 어떨까요? 아마도 레지스터가 부족하여 사용할 레지스터가 아닌 다른 레지스터를 사용할 지점이 있습니까?

답변

5

MIPS 어셈블리에는 t 레지스터가 수신자 저장되고 s 레지스터가 호출자 저장됨을 지정하는 호출 규칙이 있습니다.

즉, 다른 사람의 기능, 즉 내 전화를 걸면 내 기능을 편집 한 후 s 레지스터가 기능에서 동일 함을 의미 할 수 있습니다. 내 기능이 겹쳐 쓰여질 수있는 t 레지스터에 대해서는이 사실을 보장 할 수 없습니다.

MIPS 어셈블리를 작성할 때 항상이 규칙을 따라야합니다.

+0

이렇게하면 t 레지스터는 함수의 로컬 변수와 같고 s 레지스터는 함수 내에서 변경할 수없는 전역 변수입니다. – Edasaur

+0

닫기. 함수에서's' 레지스터를 편집 할 수 있다는 점을 제외하면 값을 저장하고 복원해야만 변경되지 않은 것처럼 보입니다. –

+0

좋아요. 정말 고마워! – Edasaur