ARM Instruction Set: Software Interrupt (SWI)

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

Software interrupt instruction

  • 소프트웨어 인터럽트 명령은 Supervisor 모드로 진입할 때 사용된다.
  • 이 명령어는 소프트웨어 인터럽트 트랩을 발생시켜 모드 변경에 영향을 준다.
  • 그런 다음 PC는 고정 값(0x08)으로 강제 설정되고 CPSR은 SPSR_svc에 저장된다.

Syntax

SWI{cond} <expression>
  • {cond} : 조건부 명령시 조건 표기
  • <expression>

예외 발생시 처리하는 과정이 이루어지고 exception vector table 에서 SWI 위치로 jump 하게 된다. 보통 kernel에서 system call을 할 때 사용된다.

Examples

SWI ReadC        ; Get next character from read stream.
SWI WriteI+”k” ; Output a “k” to the write stream.
SWINE 0          ; Conditionally call supervisor
                 ; with 0 in comment field.

참고

답글 남기기