마하전자기술연구소 LOGO

제품검색 고객센터053-604-2355
기술자료실

Home > 기술자료실 기술자료실

제 목 4) 스탁크메모리
첨부파일


PIC의 스탁크메모리의 구조

【스탁크메모리란? 】

스탁크메모리와는 독립에 갖춰져 있는 작은 메모리로, 무엇에
사용되는가 하면(자), 써브루틴을 CALL 명령으로 불렀을 때와
세치기가 들어갔을 때의 귀가 번지의 격납용으로서 사용됩니다.


【스탁크메모리의 구조와 동작】

스탁크메모리는 13비트폭의 PC레지스터 격납용의 메모리가
8개만으로 되어있습니다.
그 구조는 밑그림과 같이 되어 있어, 지금 격납되고 있는 장소
(을)를 스택 포인터-로 불리는 pointer 레지스터가 가리켜
있습니다. 이 스택 포인터-는 내부에서만 사용되고 명령으로
읽고 쓰기할 수 없습니다.




동작은 우선, CALL 명령이 실행되었을 때와 세치기가 접수
붙일 수 있어 강제적으로 4번지에 점프 할 때,PUSH 동작(와)과
말해 돌아오는 장소(CALL 명령의 다음, 세치기가 들어간 다음)의 아드
레스를 스택 포인터-가 가리키고 있는 스탁크메모리의 장소에
기록. 그리고 스택 포인터-는+1됩니다.

그 후,POP 동작이라고 해, 써브루틴이나 끼어들어 처리의
최후로 RETURN 할 때, 스택 포인터-를-1하는 것으로,
직전의 스택으로부터 돌아와 주소를 꺼내 PC레지스터에 상서
나무 합니다. 이것으로 원래의 장소로 돌아올 수가 있습니다.

<주의 >
 여기서, 스택의 깊이는 8 레벨(8이 메모리 밖에 없다)이야
 그리고, 써브루틴 중(안)에서 또 써브루틴을 부른다(네스틴
 그라고 부른다)라고 하는 것을 반복하면(자), 스탁크메모리가 부족하고
 되어 버립니다.
 그 때는, 스택 포인터-는 사이클릭으로 돌므로, 낡다
 귀가 번지는 덧쓰기되어 버려, 이제 원래대로 돌아가는 것은 할 수 없게
 되어 버립니다.
 따라서,
  《써브루틴의 네스팅은 남아 다용해 안 됨》
 (이)라는 것이 됩니다. 겨우 3회 정도의 네스팅에
 억제해 두는 것이 안전.

목록보기

www.1chip.com, www.1chip.co.kr
www.micom114.com
자료실바로가기

대구광역시 북구 산격2동 1629 산업용재관 10동 13호 (2층) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com