ARM 아키텍처

ARM Instruction Set: Branch Instructions (B, BL)

ARM 아키텍처는 branch(분기) 명령어를 통해 프로그램 흐름을 제어할 수 있다. B (Branch)와 BL (Branch with Link)는 주로 조건 없이 레이블로의 분기를 담당하며, BL은 현재 주소를 링크 레지스터에 저장하여 서브루틴 호출에…

Continue ReadingARM Instruction Set: Branch Instructions (B, BL)

Ubuntu에서 ARM cross toolchain 설치 방법

ARM 아키텍처를 타겟으로 하는 크로스 툴체인은 ARM 타겟 디바이스용으로 컴파일된 소프트웨어를 개발하거나 빌드하는 데 사용된다. 이 글에서는 Ubuntu에서 ARM cross toolchain 설치하는 방법에 대해 간단히 다룬다. ARM cross toolchain 패키지…

Continue ReadingUbuntu에서 ARM cross toolchain 설치 방법

ARM Architecture Overview

ARM은 32비트 RISC(Reduced Instruction Set Computing) 마이크로프로세서 아키텍처이다. 초기에는 주로 저전력 소비를 위해 설계되었지만, 현재는 다양한 분야의 기기에서 널리 사용되고 있다. ARM 아키텍처에 대해 요약해 본다. 프로세서 모드 ARM 프로세서는…

Continue ReadingARM Architecture Overview

AAPCS: Subroutine Calls (서브루틴 호출)

AAPCS를 따르는 Arm 아키텍처에서는 서브루틴 호출을 위한 명령어를 사용하여 함수를 호출하고 복귀하는 방식을 취한다. 서브루틴 호출 명령어 Arm 명령어 세트에는 링크 포함 분기 작업을 수행하는 기본 서브루틴 호출 명령어 인…

Continue ReadingAAPCS: Subroutine Calls (서브루틴 호출)

AAPCS: 데이터 타입과 정렬

AAPCS(Procedure Call Standard for Arm Architecture)는 ARM 아키텍처의 32비트 모드에서 사용되는 응용 프로그램 바이너리 인터페이스이다. AAPCS에는 데이터 타입의 정의와 정렬 규칙이 포함되어 있어 소프트웨어 개발자들이 데이터의 표현과 메모리 구조에 대한…

Continue ReadingAAPCS: 데이터 타입과 정렬