2.8.1. 테스트 및 분기 매크로 예제

ARM 코드 및 Thumb-2 이전 프로세서의 Thumb에서 테스트 및 분기 연산에는 두 개의 ARM 명령어를 구현해야 합니다.

다음과 같이 매크로 정의를 정의할 수 있습니다.

        MACRO
$label  TestAndBranch  $dest, $reg, $cc
$label  CMP     $reg, #0
        B$cc    $dest
        MEND

MACRO 지시어 다음의 행은 매크로 프로토타입 문입니다. 이 문은 매크로 호출에 사용할 이름 (TestAndBranch) 을 정의합니다. 또한 매개변수 ($label, $dest, $reg$cc) 를 정의합니다. 지정되지 않은 매개변수는 빈 문자열로 대체됩니다. 이 매크로의 경우 구문 오류를 방지하려면 $dest, $reg$cc에 값을 제공해야 합니다. 어셈블러에서는 제공된 값을 코드로 대체합니다.

이 매크로는 다음과 같이 호출할 수 있습니다.

test    TestAndBranch    NonZero, r0, NE
         ...
         ...
NonZero

대체 후에는 다음과 같이 됩니다.

test    CMP     r0, #0
        BNE     NonZero
         ...
         ...
NonZero
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential