알림마당

  1. home

마이컴에서 서브루틴의 호출과 복귀

전문가 제언
○ 서브루틴 서브프로그램(subroutine subprogram)은 1 프로그램으로 반복 작업이 필요할 때 마다 사용할 수 있으므로, 프로그램 덱(Deck)이 작아지고 필요한 경우만 사용되므로 메모리 사이즈가 절약된다. 컴파일러 언어에서는 컴파일이 독립적이므로 디버깅(debugging)이 용이하다. 호출 프로그램에서 공동사용이 가능하므로 프로그램의 크기를 줄일 수 있고 프로그램을 효율적으로 작성할 수 있다.

○ 서브루틴의 종류는 사용 용도와 목적에 따라 매우 다양하며 일반적으로 공동서브루틴(common subroutine),개방서브루틴(open subroutine),폐쇄서브루틴(closed subroutine), 동적서브루틴(dynamic subroutine) 및 산술 서브루틴(Arithmetic Subroutine) 등으로 구분한다.

○ 서브루틴의 호출 명령은 프로그램의 종류에 따라 CALL.CZ.CM및 CP 등의 명령이 있으며, 어떤 시스템은 서브루틴 내에 서브루틴 호출을 자동으로 할 수 있는 명령을 가지고 있고, 다수의 엔트리를 가지고 자신 또는 다른 서브루틴을 호출할 수도 있다. 이때 서브루틴의 호출은 각 단계에서는 돌아가는 주소(address)를 지장하지 않아도 된다.

○ 서브루틴 하나로 자신을 직접 호출하거나 자신이 호출한 다른 서브루틴에서 호출됨으로써 자기 자신이 서브루틴으로 사용될 수 있는 순환서브루틴(recursive subroutine)에서는 사용 도중 상태를 후입선출(LRFO : last in first out) 목록에 기록해 두어야 한다.

○ 인터럽트 제어를 위해 임시 저장소 stack이 이용된다. 어떤 프로그램을 수행하고 있다가 다른 일을 수행하라는 명령이 내려지면, 하고 있던 프로그램 어드레스를 스택에 기억하고 다른 일을 수행하게 된다. 이러한 메모리 공간 활용 방식인 스택은 후입선출(LIFO)의 구조를 가진다. LIFO의 스택 구조는 많은 변수의 사용이나 함수 호출에 대단히 편리한 구조이다. 이러한 스택 메모리, method area, call stack 또는 execution stack에 대한 학습을 통해 보다 유용하고 편리한 프로그램이 작성될 수 있기를 바라는 바이다.
저자
Hideki Yamamoto
자료유형
학술정보
원문언어
일어
기업산업분류
과학기술일반
연도
2005
권(호)
42(4)
잡지명
Semiconductor technique(J609)
과학기술
표준분류
과학기술일반
페이지
171~178
분석자
오*섭
분석물
이 페이지에서 제공하는 정보에 대하여 만족하십니까?
문서 처음으로 이동