본문 바로가기

Embedded System/ARM3

[ARM] Operating modes와 Exceptions ARM에는 7가지 동작 Mode가 있다. 그중 User Mode를 제외한 나머지 6가지 Mode는 Privileged Mode로 분류된다. Privileged Mode는 이름에서 알 수 있듯이 ARM의 상태 레지스터인 CPSR에 접근할 수 있는 특권을 가진다. 7가지 Operating Mode는 다음과 같다. User Mode: Normal Program execution mode System Modes: Run privileged operating system tasks IRQ(Interrupt Request) Mode: : When a low priority (normal) interrupt is raised FIQ(Fast Interrupt Request) Mode: When a high prior.. 2021. 12. 8.
[ARM] Addressing mode Addressing mode란 인스트럭션이 데이터를 처리할 때 데이터를 가져오는 방법 즉, 피연산자(operand)를 가져오는 방법 크게 direct와 indirect 방법으로 구분됨 Name Assembler syntax Addressing function Direct Immediate #Value Operand = Value Register Ri EA = Ri Absolute LOC EA = LOC Indirect Register indirect (Ri) EA = [Ri] Index X(Ri) EA = [Ri] + X Base with index (Ri, Rj) EA = [Ri] + [Rj] ARM의 CISC적인 측면 중 하나가 Autoincrement, autodecrement를 지원한다는 점이다... 2021. 12. 8.
[ARM] conditional execution이란 Overview 거의 모든 ARM instruction은 conditional execution이라는 재밌는 특징을 가집니다. 이에 대해 알아봅시다. conditional execution은 ARM의 레지스터인 CPSR의 상태에 따라 조건부로 instruction을 실행하는 것을 말합니다. ADD r1, r2, r3 흔히 볼 수 있는 어셈블리 명령어입니다. 위의 명령어를 수행하면 r2와 r3 값을 더해서 r1에 저장하겠죠. 특별한 문제가 없다면 항상 실행될 것입니다. ADDEQ r1, r2, r3 그렇다면 이 명령어는 어떠할까요? ADD명령어 뒤에 EQ가 붙었습니다. 이 명령어는 항상 실행되지 않습니다. 명령어를 수행하기 전 CPSR의 30 번 째 비트인 Z를 확인하고 이 값이 1인 경우에만 실행합니다... 2021. 10. 1.