[ARM프로세서] ARMv7: 익셉션 종류 별 레지스터 변경

Guillermo Austin Kim|2020년 11월 28일
Posts

[ARM프로세서] ARMv7: 익셉션 종류 별 레지스터 변경

Guillermo Austin Kim|2020년 11월 28일

이전 포스트에서 익셉션의 전체 흐름을 살펴봤는데, 그 핵심 내용은 다음과 같이 요약할 수 있습니다. “ARM 프로세서는 익셉션을 감지해 익셉션의 종류 별로 지정된 주소로 프로그램 카운터로 브랜치한다.” 이 내용을 읽으면 "이 동작이 소스 코드로 어떻게 구현됐는지 확인할 수 있을까?"란 의문이 생길 수 있습니다. 하지만 이 동작은 ARM 코어의 내부에서 하드웨어적으로 동작하는 부분이라 소스 코드를 분석하면서 이 내용을 숙지할 수 없습니다. 예제 소스를 분석하면서 기본 동작 원리를 배우는데 익숙한 소프트웨어 개발자들에게는 이런 내용을 배우기 어려운 것이 사실입니다. 이번 절에서는 하드웨어적으로 처리되는 부분을 '슈도 코드'(의사 코드)를 활용해 설명합니다. 여기서 '하드웨어적으로 처리되는