서강대학교 23년도 마이크로프로세서응용실험 6주차 Lab06 결과레포트 (A+자료)
- 최초 등록일
- 2024.03.24
- 최종 저작일
- 2023.04
- 32페이지/ MS 워드
- 가격 2,000원
소개글
"서강대학교 23년도 마이크로프로세서응용실험(마프실) 6주차(Lab06) 결과레포트 (A+자료)"입니다
목차
1. 목적
2. 이론
3. 실험과정
4. Exercises
5. 추가실험
6. 결론
7. 참고문헌
본문내용
1. 목적
- subroutine의 호출 및 복귀와 관련된 명령어들의 동작에 대해 이해한다.
- Stack의 활용법과 push, pop 명령어, subroutine에서의 stack의 역할에 대해 이해한다.
- subroutine으로의 parameter 전달 방식을 이해한다.
- 개별적인 파일에 작성된 subroutine의 assemble, compile 및 link를 위한 directive의 역할을 이해한다.
2. 이론
2-1. Subroutines
lab5에서 살펴보았듯이, subroutine은 작은 단위프로그램으로, C에서의 function과 같은 역할을 한다. subroutine을 수행할 때는 호출과 복귀 명령어, 변수(parameter)의 전달, 사용될 레지스터의 상태 유지 등이 필요하다. 호출할 때에는 BL명령어가 사용되어, 복귀할 주소가 LR에 저장되게 된다. subroutine의 마지막에서 LR의 내용을 PC로 전달함으로써 원래의 subroutine으로의 복귀가 이루어진다.
이때 Figure 6.2와 같이 subroutine이 subroutine을 호출하는 경우에는, LR의 내용을 따로 저장하지 않는다면 처음 LR의 내용이 지워져서, main routine으로의 복귀를 못하게 될 것이다. 이때 Stack이라는 메모리 영역에 LR의 내용을 저장할 수 있다. LR뿐만 아니라 해당 subroutine에서 사용될 레지스터의 원래 상태를 유지하기 위해 백업해 놓을 수도 있다. 따라서 원래의 routine으로 복귀할 때 context를 유지하고, 원래 하던 동작을 수행할 수 있게 된다.
2-2. Stacks
Stack은 LIFO(last-in first-out)의 개념을 갖는 메모리 영역이다.
참고 자료
Cortex™-M3 Devices Generic User Guide
마이크로프로세서개론(실험교재, 2023) pp.111-121
The Definitive Guide to ARM Cortex-M3 and CORTEX®-M4 Processors, Joseph Yiu(2014)
Cortex™ -M3 Technical Reference Manual