2014-10-01 8 views
0

프로세서의 프로그램 카운터 (PC)가 오버 플로우 할 수 있습니까? 그렇다면 어떤 일이 발생합니까? 즉, 1 바이트를 유지할 수 있다면 255를 넘어서 증가하면 어떻게됩니까?프로그램 카운터 오버플로?

+2

어떤 프로세서입니까? 0으로 랩하고, 예외를 만들도록 정의 할 수 있습니다. – harold

+3

그것은 상상의 하드웨어입니다. 그것은 상상의 일을 할 것입니다. –

답변

4

일부 (대부분?) CPU의 경우 가능합니다. 프로그램 카운터가 오버플로하면 랩 어라운드가됩니다.

예를 들어, PC가 16 비트이고 0xFFFF에 1 바이트 명령이있는 경우 CPU는 0x0000에서 다음 명령을 행복하게 계속 실행할 수 있습니다.

물론 다양한 작업 (예 : 어떤 CPU, 어떤 운영 모드, 소프트웨어/OS로 구성되는지 등)에 따라 다릅니다. 코너 케이스도 있습니다. 첫 번째 부분이 가장 높은 주소 (PC가 랩핑되기 전에 액세스 됨)와 나머지가 가장 낮은 주소 (PC가 랩 한 후 액세스 됨)에 있도록 분할 된 (2 바이트 이상) 명령을 가질 수 있는지 여부와 같습니다.

+0

+1, 특히'행복하게 다음 명령 실행 계속하기' – ikh