[Arm프로세서] Armv8: 익셉션 핸들러(Exception Handler)
Post
원문 보기 →[Arm프로세서] Armv8: 익셉션 핸들러(Exception Handler)
Arm 코어가 익셉션을 감지하면 익셉션 벡터 주소로 프로그램 카운터를 브랜치합니다. 여기까지가 Arm 코어가 하드웨어적으로 처리하는 부분인데, 그 다음부터 어떻게 동작할까요? Arm 코어의 프로그램 카운터가 특정 주소로 바뀌면, 해당 주소에 위치한 어셈블리 명령어를 페치해 실행합니다. 즉, 익셉션 벡터 주소로 프로그램 카운터를 브랜치하면 이 주소에 위치한 명령어가 실행되는 것입니다. 이 부분부터 소프트웨어적으로 익셉션을 핸들링하는 동작이라고 볼 수 있습니다. 익셉션 벡터에 위치한 명령어가 실행되면 이를 "익셉션 핸들러가 처리된다"라고 합니다. 익셉션 벡터에 위치한 명령어 세트를 보통 익셉션 핸들러라고 하는데, 이해를 돕기 위해 다음과 같이 Armv8 아키텍처에서 빌드된 익셉션 핸들러 코드를 소개합니다.


