7.4.4. IF, ELSE, ENDIF 및 ELIF

IF 지시어는 명령어 및 지시어 시퀀스를 어셈블할지 여부를 결정하는 데 사용되는 조건을 추가합니다. [ 기호는 IF의 동의어입니다.

ELSE 지시어는 선행 조건이 실패할 경우 어셈블할 명령어 또는 지시어 시퀀스의 시작을 표시합니다. | 기호는 ELSE의 동의어입니다.

ENDIF 지시어는 조건부로 어셈블할 명령어 또는 지시어 시퀀스의 끝을 표시합니다. ] 기호는 ENDIF의 동의어입니다.

ELIF 지시어는 ELSE IF와 같지만 조건을 중첩시키거나 반복하지 않아도 되는 구조체를 만듭니다. 자세한 내용은 ELIF 사용을 참조하십시오.

구문

    IF logical-expression
          …;code
    {ELSE
          …;code}
    ENDIF

인수 설명:

logical-expression

{TRUE} 또는 {FALSE}로 평가되는 식입니다.

자세한 내용은 관계 연산자를 참조하십시오.

사용법

지정한 조건에서만 어셈블하거나 실행할 명령어 또는 지시어 시퀀스에 IFENDIF와 함께 사용하거나, 경우에 따라 ELSE와 함께 사용합니다.

IF...ENDIF 조건은 중첩될 수 있습니다 (중첩 지시어 참조).

ELIF 사용

다음과 같이 ELIF를 사용하지 않고도 중첩된 조건부 명령어 세트를 만들 수 있습니다.

    IF logical-expression
        instructions
    ELSE
        IF logical-expression2
            instructions
        ELSE
            IF logical-expression3
                instructions
            ENDIF
        ENDIF
    ENDIF

이러한 중첩된 구조는 최대 256수준 깊이까지 중첩될 수 있습니다.

ELIF를 사용하면 다음과 같이 위와 동일한 구조를 더 간단하게 작성할 수 있습니다.

    IF logical-expression
        instructions
    ELIF logical-expression2
        instructions
    ELIF logical-expression3
        instructions
    ENDIF

이 구조는 현재 중첩 깊이에 IF...ENDIF 쌍을 하나만 추가합니다.

예제

Example 7.3에서는 NEWVERSION이 정의된 경우 첫 번째 명령어 세트를 어셈블하고, 그렇지 않으면 대체 세트를 어셈블합니다.

Example 7.3. 정의 중인 변수에 따른 조건부 어셈블리

        IF :DEF:NEWVERSION
            ; first set of instructions or directives
        ELSE
            ; alternative set of instructions or directives
        ENDIF

armasm을 다음과 같이 호출하면 NEWVERSION이 정의되어 명령어 및 지시어의 첫 번째 세트가 어셈블됩니다.

armasm --predefine "NEWVERSION SETL {TRUE}" test.s

armasm을 다음과 같이 호출하면 NEWVERSION이 정의되지 않은 채로 있어 명령어 및 지시어의 두 번째 세트가 어셈블됩니다.

armasm test.s

Example 7.4에서는 NEWVERSION의 값이 {TRUE}이면 첫 번째 명령어 세트를 어셈블하고, 그렇지 않으면 대체 세트를 어셈블합니다.

Example 7.4. 변수 값에 따른 조건부 어셈블리

        IF NEWVERSION = {TRUE}
            ; first set of instructions or directives
        ELSE
            ; alternative set of instructions or directives
        ENDIF

armasm을 다음과 같이 호출하면 명령어 및 지시어의 첫 번째 세트가 어셈블됩니다.

armasm --predefine "NEWVERSION SETL {TRUE}" test.s

armasm을 다음과 같이 호출하면 명령어 및 지시어의 두 번째 세트가 어셈블됩니다.

armasm --predefine "NEWVERSION SETL {FALSE}" test.s
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential