5
$gp
레지스터를 사용하여 값을 저장하는 데 위험이 있습니까? 나는 내 질문에 $gp
의 진정한 기능이 무엇인지, 그리고 어떻게 든 비하인드 (back-the-scenes)로 불려지는 것 같아서, 만약 내가 그것을 사용한다면, 상황이 매우 잘못 될 수 있겠는가?
$gp
레지스터를 사용하여 값을 저장하는 데 위험이 있습니까? 나는 내 질문에 $gp
의 진정한 기능이 무엇인지, 그리고 어떻게 든 비하인드 (back-the-scenes)로 불려지는 것 같아서, 만약 내가 그것을 사용한다면, 상황이 매우 잘못 될 수 있겠는가?
음, $ gp 레지스터는 전역 영역을 가리 킵니다. Convention은 함수를 작성할 때 저장해야 함을 나타냅니다 (.cprestore 참조).
당신이이 일 remeber, (왜 정직하게, 캔트 참조)를 사용해야하는 경우
:1) 항상 당신의 스택의 저장 등록 영역에 저장합니다.
2) 스택을 파괴 할 때는 항상 $ gp에 해당 값을로드하십시오.
3) 사용하지 마세요. (즉, 전역 범위에 액세스하지 말 것)
또한 확실하지 않지만 PIC 코드는 잊어 버릴 수 있습니다.
조언 해 주셔서 감사합니다! – Hristo