3.5.4. 변수의 어셈블리 타임 대체

어셈블리 언어의 전체 행이나 행의 일부에 문자열 변수를 사용할 수 있습니다. 변수를 대체할 값이 있는 위치에 $ 접두사가 포함된 변수를 사용합니다. 달러 문자는 행의 구문을 검사하기 전에 소스 코드 행으로 문자열을 대체하도록 어셈블러에 지시합니다.

숫자 및 논리 변수도 대체할 수 있습니다. 변수의 현재 값은 대체 전에 16진수 문자열 (논리 변수의 경우, T 또는 F) 로 변환됩니다.

기호 이름에 다음 문자를 사용할 수 있는 경우 마침표를 사용하여 변수 이름의 끝을 표시합니다 (기호 명명 규칙 참조). 변수를 사용하려면 먼저 변수 내용을 설정해야 합니다.

대체하지 않을 $가 필요하면 $$를 사용합니다. 이렇게 하면 단일 $로 변환됩니다.

$ 접두사가 포함된 변수를 문자열에 포함할 수 있습니다. 이 경우 다른 위치와 마찬가지로 대체가 발생합니다.

따옴표로 묶은 세로 막대가 대체에 영향을 주지 않는 것을 제외하고 세로 막대 내에서는 대체가 발생하지 않습니다.

    ; straightforward substitution
        GBLS    add4ff
        ;
add4ff  SETS    "ADD  r4,r4,#0xFF"    ; set up add4ff
        $add4ff.00                    ; invoke add4ff
        ; this produces
        ADD  r4,r4,#0xFF00
    ; elaborate substitution
            GBLS    s1
            GBLS    s2
            GBLS    fixup
            GBLA    count
            ;
count       SETA    14
s1          SETS    "a$$b$count" ; s1 now has value a$b0000000E
s2          SETS    "abc"
fixup       SETS    "|xy$s2.z|"  ; fixup now has value |xyabcz|
|C$$code|   MOV     r4,#16       ; but the label here is C$$code
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential