ARM Instruction Set

모든 ARM 명령어는 32비트 길이를 갖는다. 명령어들은 32비트 워드로 정렬되므로 명령어 주소의 최하위 2비트는 ARM 상태에서는 항상 0이다. 일부 명령어는 최하위 비트를 Thumb 코드인지 ARM코드 인지 확인한다. ARM Instruction Set…

Continue ReadingARM Instruction Set

ARM Instruction Set: Software Interrupt (SWI)

ARM 아키텍처에서는 소프트웨어 인터럽트를 수행하는 데 사용되는 SWI (Software Interrupt) 명령어를 제공한다. 소프트웨어 인터럽트는 주로 운영체제와의 상호작용에 사용된다. 이 글에서는 SWI 명령어에 대해 알아본다. Software interrupt instruction 소프트웨어 인터럽트 명령은…

Continue ReadingARM Instruction Set: Software Interrupt (SWI)

ARM Instruction Set: Single Data Swap (SWP)

ARM 아키텍처에서는 메모리에서 데이터를 읽어오고 새로운 데이터로 교체하는 데 사용되는 SWP (Single Data Swap) 명령어를 제공한다. 이 글에서는 SWP 명령어에 대해 알아본다. Swap instruction Syntax <SWP>{cond}{B} Rd,Rm,[Rn] {cond} : 조건…

Continue ReadingARM Instruction Set: Single Data Swap (SWP)

ARM Instruction Set: Single Data Transfer (LDR, STR)

ARM 아키텍처에서는 메모리에서 데이터를 로드하거나 메모리에 데이터를 저장하는 데 사용되는 LDR (Load Register)와 STR (Store Register) 명령어가 있다. 이 글에서는 LDR 과 STR 명령어에 대해 알아본다. Single data transfer instructions…

Continue ReadingARM Instruction Set: Single Data Transfer (LDR, STR)

ARM Instruction Set: Branch Instructions (B, BL)

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

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