ARM Instruction Set: Branch Instructions (B, BL)
ARM 아키텍처는 branch(분기) 명령어를 통해 프로그램 흐름을 제어할 수 있다. B (Branch)와 BL (Branch with Link)는 주로 조건 없이 레이블로의 분기를 담당하며, BL은 현재 주소를 링크 레지스터에 저장하여 서브루틴 호출에…
ARM 아키텍처
ARM 아키텍처는 branch(분기) 명령어를 통해 프로그램 흐름을 제어할 수 있다. B (Branch)와 BL (Branch with Link)는 주로 조건 없이 레이블로의 분기를 담당하며, BL은 현재 주소를 링크 레지스터에 저장하여 서브루틴 호출에…
ARM 아키텍처의 명령어는 실행 조건을 지정할 수 있는 Condition Field를 가지고 있다. 이는 명령어가 실행되기 전에 특정 조건을 검사하여 실행 여부를 결정할 수 있게 해준다. 이 글에서는 ARM Instruction Set에서…
ARM 아키텍처는 다양한 명령어를 제공하여 다양한 응용 분야에서 사용된다. 이 글에서는 주요 ARM 명령어를 요약해 본다. ARM Instruction Format Arm Instruction set 포맷은 아래와 같다. ARM Instruction Summary Branch 명령어…
Linaro ARM Toolchain을 설치하면 ARM 아키텍처용 프로젝트를 개발하고 컴파일하는 데 필요한 도구를 얻을 수 있다. 이 도구는 ARM 기반 시스템과 장치에서 소프트웨어 개발을 수행하는 데 매우 유용하다. 이 글에서는 Linaro…
ARM 아키텍처를 타겟으로 하는 크로스 툴체인은 ARM 타겟 디바이스용으로 컴파일된 소프트웨어를 개발하거나 빌드하는 데 사용된다. 이 글에서는 Ubuntu에서 ARM cross toolchain 설치하는 방법에 대해 간단히 다룬다. ARM cross toolchain 패키지…
ARM은 32비트 RISC(Reduced Instruction Set Computing) 마이크로프로세서 아키텍처이다. 초기에는 주로 저전력 소비를 위해 설계되었지만, 현재는 다양한 분야의 기기에서 널리 사용되고 있다. ARM 아키텍처에 대해 요약해 본다. 프로세서 모드 ARM 프로세서는…
AAPCS를 따르는 Arm 아키텍처에서는 서브루틴 호출을 위한 명령어를 사용하여 함수를 호출하고 복귀하는 방식을 취한다. 서브루틴 호출 명령어 Arm 명령어 세트에는 링크 포함 분기 작업을 수행하는 기본 서브루틴 호출 명령어 인…
프로세스의 메모리는 일반적으로 다섯 가지 범주로 분류할 수 있다. Code (Program)는 프로세스에서 읽을 수 있어야 하지만 쓸 수는 없다. Read-Only static data Writable static data Heap(힙) Stack(스택) Writable static 데이터는…
AAPCS(Procedure Call Standard for Arm Architecture) 기본 프로시저 호출 표준은 Arm 명령어 집합에 공통인 기계 수준의 코어 레지스터만 사용하는 호출 표준을 정의한다. 머신 레지스터(Machine Registers) Arm 아키텍처는 핵심 명령어 세트와…
AAPCS(Procedure Call Standard for Arm Architecture)는 ARM 아키텍처의 32비트 모드에서 사용되는 응용 프로그램 바이너리 인터페이스이다. AAPCS에는 데이터 타입의 정의와 정렬 규칙이 포함되어 있어 소프트웨어 개발자들이 데이터의 표현과 메모리 구조에 대한…