4.10.5. CPS

CPS (프로세서 상태 변경) 는 CPSR에서 하나 이상의 모드와 A, I 및 F 비트를 변경하고 다른 CPSR 비트는 변경하지 않습니다.

CPS는 권한 모드에서만 사용할 수 있고 사용자 모드에서는 아무런 영향을 주지 않습니다.

CPS는 조건 명령어일 수 없으며 IT 블록에서 사용할 수 없습니다.

구문

CPSeffect iflags{, #mode}
CPS #mode

인수 설명:

effect

다음 중 하나입니다.

IE

인터럽트 또는 어보트 사용

ID

인터럽트 또는 어보트 사용 안 함

iflags

다음 중 하나 이상의 시퀀스입니다.

a

부정확한 어보트를 사용하거나 사용하지 않습니다.

i

IRQ 인터럽트를 사용하거나 사용하지 않습니다.

f

FIQ 인터럽트를 사용하거나 사용하지 않습니다.

mode

변경할 모드의 번호를 지정합니다.

조건 플래그

이 명령어는 조건 플래그를 변경하지 않습니다.

16비트 명령어

이러한 명령어의 다음 형식은 Thumb-2 이전 Thumb 코드에서 사용할 수 있으며, Thumb-2 코드에서 사용될 경우 16비트 명령어입니다.

CPSIE iflags

CPSID iflags

16비트 Thumb 명령어에서 모드 변경을 지정할 수 없습니다.

아키텍처

이 ARM 명령어는 ARMv6 이상에서 사용할 수 있습니다.

이 32비트 Thumb 명령어는 ARMv6T2 이상에서 사용할 수 있습니다.

이 16비트 Thumb 명령어는 ARMv6 이상의 T 변형에서 사용할 수 있습니다.

예제

    CPSIE if      ; enable interrupts and fast interrupts
    CPSID A       ; disable imprecise aborts
    CPSID ai, #17 ; disable imprecise aborts and interrupts, and enter FIQ mode
    CPS #16       ; enter User mode
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential