2.4.2. 조건부 실행

조건부로 실행될 수 있는 명령어에는 구문 설명에 {cond}로 표시되는 선택적 조건 코드가 있습니다. 이 조건은 ARM 명령어에 인코딩되며, Thumb-2 명령어의 경우 위의 IT 명령어에 인코딩됩니다. 조건 코드가 포함된 명령어는 APSR의 조건 코드 플래그가 지정된 조건을 충족하는 경우에만 실행됩니다. Table 2.2에서는 사용할 수 있는 조건 코드를 보여 줍니다.

Thumb-2 이전 프로세서의 Thumb 상태에서 {cond} 필드는 특정 분기 명령어에만 허용됩니다.

Table 2.2에서는 조건 코드 접미사와 N, Z, CV 플래그 간의 관계도 보여 줍니다.

Table 2.2. 조건 코드 접미사

접미사플래그의미
EQZ 세트같음
NEZ 지우기같지 않음
CS or HSC 세트높거나 같음 (부호 없는 >= )
CC or LOC 지우기보다 낮음 (부호 없는 < )
MIN 세트음수
PLN 지우기양수 또는 0
VSV 세트오버플로
VCV 지우기오버플로 없음
HIC 설정 및 Z 지우기보다 높음 (부호 없는 >)
LSC 지우기 또는 Z 설정낮거나 같음 (부호 없는 <=)
GENV 같음부호 있는 >=
LTNV 다름부호 있는 <
GTZ 지우기, NV 같음부호 있는 >
LEZ 설정, NV 다름부호 있는 <=
ALAny항상. 이 접미사는 대개 생략됩니다.

Example 2.3에서는 조건부 실행 예제를 보여 줍니다.

Example 2.3. 

    ADD     r0, r1, r2    ; r0 = r1 + r2, don't update flags
    ADDS    r0, r1, r2    ; r0 = r1 + r2, and update flags
    ADDSCS  r0, r1, r2    ; If C flag set then r0 = r1 + r2, and update flags
    CMP     r0, r1        ; update flags based on r0-r1.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential