2011-12-22 4 views
3

나는 메모리 맵에서 프로그램 카운터 (R0)와 스택 포인터 (R1)의 위치에 대해 너무 혼란 스럽다. 나는 그들이 CPU 내부에 있다고 생각하기 때문에,이 레지스터들을 보여주는 메모리 맵 내부의 어떤 위치도 없다. 그러나 내 친구는 그들이 특수 함수 레지스터 (SFR)에 있다고 주장한다. 특수 함수 레지스터 (SFR)는 메모리 맵의 맨 아래에 위치한다. 어느 것이 올바른 대답인가?메모리 맵에 R0 및 R1 레지스터는 어디에 있습니까?

+0

친구가 msp430을 8051과 혼동하고 있다고 생각합니다. –

답변

4

레지스터 R0 및 R1 (및 기타 모든 범용 레지스터)은 CPU 내에 상주하며 피연산자에 대해 "레지스터 모드"를 사용하는 명령어를 사용하여 액세스됩니다. 그들은 메모리 매핑되지 않습니다.

특수 기능 레지스터는 사용중인 MSP430 변형에 대한 장치 별 데이터 시트에 정의되어 있습니다. SFR에는 일반적으로 CPU 실행에 직접 영향을 미치는 장치 (예 : NMI, 오실레이터 폴트 및 첫 번째 직렬 포트)에 대한 인터럽트 활성화 비트 및 인터럽트 플래그 비트가 포함되지만 일반적으로 다른 범용 주변 장치는 포함되지 않습니다.

예를 들어, MSP430x2xx 제품군 사용 설명서, SAU144H의 "그림 3-1 CPU 블록 다이어그램"을 참조하십시오. 레지스터는 CPU의 일부로 표시됩니다.

예시로서, 특정 기능 레지스터를 보여주는 MSP430F2619-HT device specific datasheet의 14 페이지를 참조하십시오. 범용 레지스터에 대한 언급이 없습니다.