인텔의 커다란 매뉴얼을 읽으면서 원거리에서 돌아오고 싶다면 다른 코드 세그먼트에있는 프로 시저에 대한 호출 인 경우 반환 명령을 내리면됩니다 (스택 포인터를 이동시키는 즉각적인 인수가있을 수 있음) 포인터가 터진 후 n 바이트 씩 올라간다).프로세서는 어떻게 가까운 수익에서 먼 수익을 식별 할 수 있습니까?
이것은 올바르게 해석하면 하드웨어가 세그먼트 선택기와 올바른 레지스터에 오프셋을 적용하기에 충분합니다.
그러나 시스템에서 반환 값이 멀리 있어야하며 오프셋과 선택기가 모두 팝되어야한다고 시스템에서 어떻게 알 수 있습니까?
하드웨어가 오프셋 된 포인터를 표시하고 선택기가 나타나지 않으면 올바른 오프셋이지만 잘못된 세그먼트를 가리키게됩니다.
가까운 반환 버전과 비교하여 먼 반환 명령에 특별한 것은 없습니다.
그들은 둘 다 똑같이 보입니다.
아마도 마이크로 아키텍처 수준의 프로세서가 어떤 호출이 멀리 있고 어느 쪽이 가까이 있는지 추적하여 그 시스템이 반환 될 때 시스템에서 얼마나 많은 바이트를 나타낼 것인지, 어디에서 가져올 것인지를 알고 있다고 가정합니다. 그들 (포인터 레지스터와 세그먼트 선택기 레지스터)을 팝하십시오.
내 가정이 맞습니까?
당신은이 메커니즘에 대해 무엇을 알고 있습니까?
확인. 어쨌든 돌아가는 지시의 다른 형태가 있다고 해봅시다. 알았다. 감사. – tensor