2.3.1. 어셈블리 언어 소스 파일 레이아웃

어셈블리 언어의 일반적인 소스 행 형식은 다음과 같습니다.

{label} {instruction|directive|pseudo-instruction} {;comment}

Note

레이블이 없는 경우에도 명령어, 의사 명령어 및 지시어 앞에는 공백이나 탭이 한 칸 있어야 합니다.

일부 지시어에서는 레이블을 사용할 수 없습니다.

소스 행의 세 부분은 모두 선택적입니다. 빈 행을 사용하여 코드를 읽기 쉽게 만들 수 있습니다.

대소문자 규칙

명령어 니모닉, 지시어 및 기호 레지스터 이름은 대문자나 소문자 중 하나로만 작성할 수 있고 대소문자를 모두 사용하여 작성할 수는 없습니다.

행 길이

소스 파일을 읽기 쉽게 만들려면 행 끝에 백슬래시 문자 (\) 를 배치하여 긴 소스 행을 여러 행으로 분할할 수 있습니다. 백슬래시 뒤에는 공백과 탭을 포함하여 다른 문자가 오면 안 됩니다. 어셈블러에서는 백슬래시와 행 끝 시퀀스를 공백으로 처리합니다.

Note

백슬래시와 행 끝 시퀀스를 따옴표로 묶인 문자열 내에 사용하면 안 됩니다.

백슬래시를 사용하는 확장을 포함하여 행 길이 제한은 4095자입니다.

레이블

레이블은 주소를 나타내는 심볼입니다. 레이블로 지정된 주소는 어셈블리 동안 계산됩니다.

어셈블러에서는 레이블이 정의된 섹션의 원점을 기준으로 레이블 주소를 계산합니다. 같은 섹션 내에 있는 레이블에 대한 참조는 오프셋을 더하거나 뺀 PC를 사용할 수 있습니다. 이 작업을 프로그램 상대 주소 지정이라고 합니다.

다른 섹션의 레이블 주소는 링커가 각 섹션에 대해 특정 메모리 위치를 할당한 경우 링크 타임에 계산됩니다.

지역 레이블

지역 레이블은 레이블의 하위 클래스로, 0 ~ 99 범위에 있는 숫자로 시작합니다. 다른 레이블과 달리 지역 레이블은 여러 번 정의할 수 있습니다. 지역 레이블은 매크로를 통해 레이블을 생성하는 경우 유용합니다. 어셈블러에서는 지역 레이블에 대한 참조를 찾으면 이 참조를 지역 레이블의 주변 인스턴스에 링크합니다.

지역 레이블 범위는 AREA 지시어로 제한되지 않습니다. ROUT 지시어를 사용하면 범위를 보다 엄격하게 제한할 수 있습니다.

다음에 대한 자세한 내용은 지역 레이블을 참조하십시오.

  • 지역 레이블 선언 구문

  • 어셈블러에서 지역 레이블에 대한 참조를 해당 레이블에 연결하는 방법

주석

행의 첫 번째 세미콜론은 문자열 상수 내부에 세미콜론이 나타나는 위치를 제외하고 주석의 시작을 표시합니다. 행 끝은 주석의 끝입니다. 주석만으로 하나의 유효한 행을 구성할 수 있습니다. 어셈블러에서는 모든 주석을 무시합니다.

상수

상수는 다음 중 하나일 수 있습니다.

숫자

다음 형식의 숫자 상수가 허용됩니다.

  • 10진수 (예: 123)

  • 16진수 (예: 0x7B)

  • n_xxx.다음은 이 요소에 대한 설명입니다.

    n

    2와 9 사이의 기수입니다.

    xxx

    해당 기수에 있는 숫자입니다.

  • 부동 소수점 (예: 0.02, 123.0 또는 3.14159)

부동 소수점 숫자는 시스템에 부동 소수점을 사용하는 VFP 또는 NEON이 있는 경우에만 사용할 수 있습니다.

부울

bool 상수 TRUEFALSE{TRUE}{FALSE}로 작성되어야 합니다.

문자

문자 상수는 표준 C 이스케이프 문자를 사용하는 이스케이프 문자나 단일 문자를 묶는 열고 닫는 작은따옴표로 구성됩니다.

문자열

문자열은 문자와 공백을 묶는 열고 닫는 큰따옴표로 구성됩니다. 큰따옴표 또는 달러 기호가 문자열 내에서 리터럴 텍스트 문자로 사용될 경우에는 해당 문자를 쌍으로 표시되어야 합니다. 예를 들어 문자열에 하나의 $가 필요하면 $$를 사용해야 합니다. 표준 C 이스케이프 시퀀스는 문자열 상수 내에서 사용할 수 있습니다.

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