ARM Instruction Set: Single Data Swap (SWP)

ARM 아키텍처에서는 메모리에서 데이터를 읽어오고 새로운 데이터로 교체하는 데 사용되는 SWP (Single Data Swap) 명령어를 제공한다. 이 글에서는 SWP 명령어에 대해 알아본다.

Swap instruction

Syntax

<SWP>{cond}{B} Rd,Rm,[Rn]
  • {cond} : 조건 명령
  • {B} : byte 표기
  • Rd, Rm, Rn : 레지스터

메모리 읽기와 쓰기를 atomic 하게 수행하도록 한다. 보통 RmRd를 같게하여 Rn과 [Rm]을 swap 하는데 사용한다.

Examples

SWP R0,R1,[R2]   ; Load R0 with the word addressed by R2, and
                 ; store R1 at R2.
SWPB R2,R3,[R4]  ; Load R2 with the byte addressed by R4, and
                 ; store bits 0 to 7 of R3 at R4.
SWPEQ R0,R0,[R1] ; Conditionally swap the contents of the
                 ; word addressed by R1 with R0.

참고

답글 남기기