# BX

✨ARM Subroutines
Passing Parameters to Subroutines via Registers Subroutine subroutine은 function 혹은 procedure라고도 부른다. single-entry, single-exit를 가지고 있고 exit하고 나면 자신을 call했던 caller에게 return된다. subroutine이 call되면 link register(LR)은 다음 instruction의 memory address를 hold해 subroutine의 실행이 종료되면 return 할 수 있도록 한다. Link Register (LR) link register(LR, R14)은 return address를 hold한다. 이미 알고있는 얘기... 앞에서 주구장창 언급됨 Calling and Exiting a Subroutine subroutine은 다음과 같은 방법으로 실행된다. BL을 통해 next instruction의

✨ARM Instruction Set Architecture (3)
ARM Memory Access Load-Modify-Store 이 있을 때, x의 memory address가 x에 저장되어 있다고 가정하면 ARM에서는 memory에 있는 data에 바로 access할 수 없고 반드시 register에 그 값을 load하고 결과 값을 store하는 과정을 거쳐야 한다. Load Instructions load instruction의 rt와 rs는 모두 register이다. load instruction LDR은 rs에 들어있는 memory의 주소로부터 레지스터 rt로 data를 fetch한다. Store Instructions base register rs에 들어있는 memory address로 레지스터 rt에 있는 값을 저장한다. Single Register Data Transfer LDR의 기본은 word이다. 그래서 아무것도 붙지 않은 LDR은 l