리버싱/ARM

시스템 레지스터

cyanhe_wh 2021. 2. 9. 22:22
728x90
반응형

aarch64에서 시스템 설정은 각 시스템 레지스터를 통해 제어되며, MSR 및 MRS 인스트럭션을 사용하여 접근할 수 있다.

aarch64는 코프로세서(coprocessor)를 지원하지 않으므로 ARMv7처럼 CP15 연산을 통한 인터페이스를 제공되지 않는다.

시스템 레지스터의 이름 끝에 붙은 숫자는 해당 레지스터에 접근할 수 있는 가장 낮은 익셉션 레벨을 알려준다.

 

예를 들어, TTBR0_EL1 레지스터의 값은 x0 레지스터로 읽어올 때는 다음과 같이 인스트럭션을 사용한다.

MRS x0, TTBR0_EL1

 

반대로 x0 레지스터의 값을 TTBR0_EL1 레지스터에 쓸 때는 다음과 같은 인스트럭션을 사용한다.

MSR TTBR0_EL1, x0

728x90
반응형

'리버싱 > ARM' 카테고리의 다른 글

aarch64 익셉션 핸들링  (0) 2021.02.15
ABI의 레지스터 사용 규칙  (0) 2021.02.15
aarch64 특수 목적 레지스터  (0) 2021.02.09
프로세서 상태 레지스터(PSTATE)  (0) 2021.02.09
ARMv8 레지스터  (0) 2021.02.09