ARM 아키텍처는 branch(분기) 명령어를 통해 프로그램 흐름을 제어할 수 있다. B
(Branch)와 BL
(Branch with Link)는 주로 조건 없이 레이블로의 분기를 담당하며, BL
은 현재 주소를 링크 레지스터에 저장하여 서브루틴 호출에 사용된다. 이 글에서는 Branch 명령어에 대해 알아본다.
Instruction Format
![](https://junorionblog.co.kr/wp-content/uploads/2023/12/image-4-optimized.png)
Syntax
Branch : B{<cond>} label
Branch with Link : BL{<cond>} sub_routine_label
<cond>
조건이 맞으면, label이 가르키는 위치로 분기하고, BL은 R14(LR) 레지스터에 다음 PC값을 저장하여 return 시에 위치를 알 수 있도록 한다.
Example
BL subC
BLLT rtX