ARM 아키텍처

ARM Instruction Set: Multiply and Multiply-Accumulate (MUL, MLA)

ARM 아키텍처에서는 곱셈과 곱셈 누적 연산을 위한 명령어인 MUL (Multiply)과 MLA (Multiply-Accumulate)를 제공한다. 이 글에서는 MUL, MLA 명령어에 대해 알아본다. Multiply instructions 곱셈과 곱셈-누산 명령은 8비트 Booth 알고리즘을 사용하여 정수…

Continue ReadingARM Instruction Set: Multiply and Multiply-Accumulate (MUL, MLA)

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 설치 방법

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

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

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