[Arm프로세서] AAPCS: Armv8: SP_ELn와 X30 레지스터란
By Guillermo Austin Kim | 2021년 7월 26일 |
Armv8 아키텍처에서 정의된 레지스터 중 SP_ELn와 X30 레지스터는 AAPCS와 연관된 핵심 레지스터입니다. 먼저 전체 레지스터 목록 중에서 SP_ELn와 X30 레지스터를 보겠습니다. 전체 레지스터 목록 중 SP_ELn와 X30 레지스터 다음 그림을 보면서 Armv8 아키텍처에서 정의된 레지스터 중 AAPCS와 연관된 레지스터를 알아봅시다. 그림 7.1 Armv8 아키텍처의 레지스터 목록 중 AAPCS와 연관된 레지스터(출처: ARMv8-A-Programmer-Guide.pdf) 위 그림은 Armv8 아키텍처에서 정의된 레지스터 목록입니다. 그림에서 빗금으로 표기된 박스를 보겠습니다. SP_EL1는 익셉션 레벨1에서 실행되는 SP 레지스터, SP_EL0은 익셉션 레벨0에서 실행되는 S
[ARM] tst 명령어를 실행하면 ARM CPSR 레지스터가 어떻게 변경될까?
By Guillermo Austin Kim | 2019년 2월 12일 |
tst 명령어를 실행하면 ARM CPSR 레지스터가 어떻게 변경될까? tst 명령어는 연산자와 비연산자 사이 AND 비트 연산을 수행합니다. AND 비트 연산 결과에 따라 CPSR 레지스터 Z 비트는 다음과 같이 변경됩니다.Z: 0 ( AND 비트 연산 결과가 1인 경우)Z: 1 ( AND 비트 연산 결과가 0인 경우) tst 명령어가 위와 같이 동작하는지 증명하기 위해 T32 디버거를 실행해 보겠습니다.다음 화면은 tst 명령어를 실행하기 직전입니다. NSR:80107E6C|ret_to_user_from_irq: ldr r2,[r9,#0x8]NSR:80107E70| cmp r2,#0x7F000000 ; r2,#213070
애플, 아이폰12 시리즈 발표
By eggry.lab | 2020년 10월 14일 |
루머로 유출될 대로 다 유출됐지만 어쨌든 한국 시간으로 오늘 새벽에 발표됐습니다. 발표 몇시간 전에 아예 프레스 이미지가 유출될 정도였던지라 사양도 99% 다 맞췄고 해서 안 보고 자길 잘 했습니다. 뭐 그래도 첫 5G 아이폰이라 통신사 푸시 받고 아이폰5나 6 급으로 많이 팔릴 거 같기는 한데요. 먼저 라인업 중 더 낮은 가격대를 형성하는 아이폰12와 아이폰12 미니입니다. 이 둘은 아이폰11의 후계라고 할 수 있는데, 아이폰12 프로가 크기가 커지면서 사라진 작은 크기대를 아이폰12 미니가 커버하는 식입니다. 하지만 작으면서 프리미엄인 폰을 원한 사람에게는 선택지가 사라지는 게 되겠네요. 아이폰12는 6.1인치 OLED, 아이폰12 미니는 5.4인치 OLED로, 이제 미드레인지 아이폰도 다
[Arm프로세서] Armv8: SPSR_ELx - SPSR(Saved Program Status Register) 레지스터란
By Guillermo Austin Kim | 2022년 5월 2일 |
SPSR_ELx SPSR 레지스터는 Saved Program Status Register의 약자로 PSTATE 정보를 백업하는 용도로 사용됩니다. 따라서 SPSR 레지스터의 비트 맵은 PSTATE와 같습니다. 그렇다면 PSTATE는 SPSR 레지스터로 언제 백업될까요? "바로 익셉션이 유발될 때입니다." SPSR은 익셉션이 발생했을 때의 PSTATE의 정보를 저장하는 용도로 사용되며, 익셉션을 처리한 후 익셉션이 발생한 시점의 익셉션 레벨로 복귀하기 위해 사용됩니다. 즉, 익셉션과 관련된 처리를 하기 위해 사용됩니다. Arm 아키텍처 문서나 어셈블리 명령어를 분석하면 SPSR 보다는 SPSR_EL1 혹은 SPSR_EL0과 같은 규칙으로 SPSR 레지스터를 명시합니다. SPSR은 익셉션 레벨