3.1. 명령 구문

이 단원에서는 armasm과 관련된 정보만 다룹니다. 인라인 어셈블러는 C 및 C++ 컴파일러의 일부로, 고유한 명령 구문을 갖고 있지 않습니다.

armasm 명령 행은 파일 이름에서만 대소문자를 구분하고 달리 지정하지 않는 한 대소문자를 구분하지 않습니다.

다음 명령을 사용하여 ARM 어셈블러를 호출합니다.

armasm {options} {inputfile}

여기서 options 자리에는 다음과 같은 옵션을 공백으로 구분하여 조합할 수 있습니다.

--16

이전 Thumb 구문을 사용하여 명령어를 Thumb® 명령어로 해석하도록 어셈블러에 지시합니다. 이 명령어는 소스 파일 헤드에 있는 CODE16 지시문과 같습니다. --thumb 옵션을 사용하면 새 구문을 통해 Thumb 또는 Thumb-2 명령어를 지정할 수 있습니다.

--32

명령어를 ARM 명령어로 해석하도록 어셈블러에 지시합니다. 이것이 기본값입니다.

--apcs [qualifiers]

AAPCS(Procedure Call Standard for the ARM Architecture)를 사용할지 여부를 지정합니다. 또한 코드 섹션의 일부 특성을 지정할 수 있습니다. 자세한 내용은 AAPCS 를 참조하십시오.

--arm

--32의 동의어입니다.

--bigend

빅엔디안 ARM에 적합한 코드를 어셈블하도록 어셈블러에 지시합니다. 기본값은 --littleend입니다.

--brief_diagnostics

자세한 내용은 진단 메시지의 출력 제어를 참조하십시오.

--littleend

리틀엔디안 ARM에 적합한 코드를 어셈블하도록 어셈블러에 지시합니다.

--checkreglist

RLIST, LDMSTM 레지스터 목록을 확인하여 모든 레지스터 번호가 오름차순으로 나열되도록 어셈블러에 지시합니다. 레지스터가 순서대로 나열되지 않으면 경고가 표시됩니다.

이 옵션은 향후 제공되지 않을 예정이며 이후 릴리스에서 제거되므로 대신 --diag_warning 1206을 사용하십시오(진단 메시지의 출력 제어 참조).

--cpu name

타겟 CPU를 설정합니다. 자세한 내용은 CPU 이름을 참조하십시오.

--debug

DWARF 디버그 테이블을 생성하도록 어셈블러에 지시합니다. --debug-g의 동의어입니다.

기본값은 DWARF 3입니다.

Note

지역 심볼은 --debug를 통해 유지되지 않습니다. 디버깅에 유용하도록 지역 심볼을 유지하려면 --keep을 지정해야 합니다.

--depend dependfile

소스 파일 종속 목록을 dependfile에 저장하도록 어셈블러에 지시합니다. 이러한 목록은 make 유틸리티에 사용하기에 적합합니다.

--depend_format=string

출력 종속 파일의 형식을 일부 유닉스 make 프로그램과 호환될 수 있도록 유닉스 스타일 형식으로 변경합니다.

string의 값은 다음 중 하나일 수 있습니다.

unix

유닉스 스타일 경로 구분 기호를 사용하여 종속 파일을 생성합니다.

unix_escaped

unix와 같지만 백슬래시로 공백을 escape합니다.

unix_quoted

unix와 같지만 경로 이름을 큰따옴표로 묶습니다.

--diag_[error | remark | warning | suppress | style]

자세한 내용은 진단 메시지의 출력 제어를 참조하십시오.

--dllexport_all

달리 지정하지 않는 한 모든 전역 심볼을 동적으로 표시하도록 어셈블리에 지시합니다. 이 옵션은 DLL을 빌드할 때 사용합니다.

--dwarf2

--debug와 함께 사용하여 DWARF 2 디버그 테이블을 생성하도록 어셈블러에 지시합니다.

--dwarf3

--debug와 함께 사용하여 DWARF 3 디버그 테이블을 생성하도록 어셈블러에 지시합니다. --debug를 지정한 경우 이 옵션이 기본 옵션입니다.

--errors errorfile

오류 메시지를 errorfile에 출력하도록 어셈블러에 지시합니다.

--exceptions

자세한 내용은 예외 테이블 생성 제어를 참조하십시오.

--exceptions_unwind

자세한 내용은 예외 테이블 생성 제어를 참조하십시오.

--fpmode model

부동 소수점 규칙을 지정하고 라이브러리 특성 및 부동 소수점 최적화를 설정합니다. 자세한 내용은 부동 소수점 모델을 참조하십시오.

--fpu name

타겟 FPU(부동 소수점 단위) 아키텍처를 선택합니다. 자세한 내용은 FPU 이름을 참조하십시오.

-g

--debug의 동의어입니다.

-idir,dir

정규화할 소스 파일에 디렉토리를 추가합니다(GET 또는 INCLUDE 참조).

--keep

디버거에서 사용할 수 있도록 개체 파일의 심볼 테이블에 지역 레이블을 유지하도록 어셈블러에 지시합니다(KEEP 참조).

--length

자세한 내용은 파일에 출력 나열을 참조하십시오.

--library_type=lib

링크 시에 선택한 관련 라이브러리를 사용합니다.

여기서 lib 는 다음 중 하나일 수 있습니다.

standardlib

링크 시 전체 RVCT 런타임 라이브러리가 선택되도록 지정합니다. 이것이 기본값입니다.

microlib

링크 시 C 마이크로 라이브러리(microlib)가 선택되도록 지정합니다.

Note

라이브러리를 사용하려면 더욱 특수화된 최적화가 필요한 경우 컴파일러, 어셈블러 또는 링커에서 이 옵션을 사용할 수 있습니다.

링커에서 이 옵션을 사용하여 다른 모든 --library_type 옵션을 재정의합니다.

자세한 내용은 다음 항목을 참조하십시오.

--list file

어셈블러에 의해 생성된 자세한 어셈블리 언어 목록을 file에 출력하도록 어셈블러에 지시합니다. 자세한 내용은 파일에 출력 나열을 참조하십시오.

-m

소스 파일 종속 목록을 stdout에 작성하도록 어셈블러에 지시합니다.

--maxcache n

최대 소스 캐시 크기를 n바이트로 설정합니다. 기본값은 8MB입니다. 크기가 8MB보다 작으면 armasm에서 경고를 표시합니다.

--md

소스 파일 종속 목록을 inputfile.d에 저장하도록 어셈블러에 지시합니다.

--memaccess attributes

타겟 메모리 시스템의 메모리 액세스 특성을 지정합니다. 자세한 내용은 메모리 액세스 특성을 참조하십시오.

Note

--memaccess 옵션은 향후 제공되지 않을 예정이며 이후 릴리스에서 제거됩니다.

--no_code_gen

패스 1 후 종료하도록 어셈블러에 지시합니다. 개체 파일이 생성되지 않습니다.

--no_esc

\n\t와 같은 C 스타일 이스케이프 특수 문자를 무시하도록 어셈블러에 지시합니다.

--no_exceptions

자세한 내용은 예외 테이블 생성 제어를 참조하십시오.

--no_exceptions_unwind

자세한 내용은 예외 테이블 생성 제어를 참조하십시오.

--no_hide_all

SVr4 공유 개체를 빌드할 때 심볼 표시 유형을 제어할 수 있습니다. 내보낸 모든 정의와 참조는 동적으로 표시됩니다(EXPORT 또는 GLOBAL 참조).

--no_regs

레지스터 이름을 미리 정의하지 않도록 어셈블러에 지시합니다. 미리 정의된 레지스터 이름 목록을 보려면 미리 정의된 레지스터 및 보조 프로세서 이름을 참조하십시오.

이 옵션은 향후 제공되지 않을 예정이며 이후 릴리스에서 제거되므로 대신 --regnames=none을 사용하십시오.

--no_terse

자세한 내용은 파일에 출력 나열을 참조하십시오.

--no_unaligned_access

정렬되지 않은 액세스가 사용되지 않음을 나타내는 개체 파일의 특성을 설정하도록 어셈블러에 지시합니다.

--no_warn

경고 메시지를 해제합니다.

-o filename

출력 개체 파일의 이름을 지정합니다. 이 옵션을 지정하지 않으면 어셈블러에서 inputfilename.o 형식의 개체 파일 이름을 만듭니다.

--predefine "directive"

SET 지시문 중 하나를 미리 실행하도록 어셈블러에 지시합니다. 자세한 내용은 SET 지시문 사전 실행을 참조하십시오.

--[no_]reduce_paths

파일 경로에서 중복 경로 이름 정보를 제거하거나 제거하지 않습니다. 이 옵션은 Windows 시스템에만 유효합니다.

Windows 시스템에서는 파일 경로에 260자 제한이 있습니다. 절대 이름이 260자 넘게 확장되는 상대 경로 이름이 있는 경우 --reduce_paths 옵션을 사용하여 디렉토리를 해당 인스턴스와 일치시키고 directory/.. 시퀀스를 쌍에서 제거하여 절대 경로 이름 길이를 줄일 수 있습니다.

Note

--reduce_paths 옵션을 사용하여 경로 길이를 최소화하는 것보다 중첩 수준이 높은 긴 파일 경로를 사용하지 않는 것이 좋습니다.

자세한 내용은 RealView Compilation Tools Compiler Reference Guide에서 2-83페이지의 --[no_]reduce_paths를 참조하십시오.

--regnames=none

레지스터 이름을 미리 정의하지 않도록 어셈블러에 지시합니다. 미리 정의된 레지스터 이름 목록을 보려면 미리 정의된 레지스터 및 보조 프로세서 이름을 참조하십시오.

--regnames=callstd

--apcs 옵션을 사용하여 지정하는 AAPCS 변형을 기반으로 추가 레지스터 이름을 정의합니다. 자세한 내용은 AAPCS 를 참조하십시오.

--regnames=all

--apcs 값에 관계없이 모든 AAPCS 레지스터를 정의합니다. 자세한 내용은 AAPCS 를 참조하십시오.

--show_cmdline

어셈블러에서 명령 행이 처리된 방법을 보여 줍니다. 명령은 표준화된 상태로 표시되고 via 파일의 내용은 확장됩니다.

--split_ldm

LDMSTM 명령어에 대해 오류를 생성하도록 어셈블러에 지시합니다. 자세한 내용은 긴 LDM 및 STM 분할을 참조하십시오. 이 옵션은 향후 사용할 수 없습니다.

--thumb

ARM 구문을 사용하여 명령어를 Thumb 명령어로 해석하도록 어셈블러에 지시합니다. 이 옵션은 소스 파일 헤드에 있는 THUMB 지시문과 같습니다.

--unaligned_access

정렬되지 않은 액세스의 사용을 나타내는 개체 파일의 특성을 설정하도록 어셈블러에 지시합니다.

--unsafe

다양한 아키텍처의 명령어를 오류 없이 어셈블할 수 있습니다. 자세한 내용은 진단 메시지의 출력 제어를 참조하십시오.

--untyped_local_labels

Thumb 코드의 레이블을 참조할 경우 Thumb 비트를 설정하지 않도록 어셈블러에 지시합니다. 자세한 내용은 LDR 의사 명령어를 참조하십시오.

--via file

file을 열고 어셈블러에 대한 명령 행 인수를 읽도록 어셈블러에 지시합니다. 자세한 내용은 RealView Compilation Tools Compiler Reference Guide에서 부록 A via 파일 구문을 참조하십시오.

--width

자세한 내용은 파일에 출력 나열를 참조하십시오.

--xref

자세한 내용은 파일에 출력 나열을 참조하십시오.

inputfile

어셈블러의 입력 파일을 지정합니다. 입력 파일은 ARM 또는 Thumb 어셈블리 언어 소스 파일이어야 합니다.

Copyright © 2002-2007 ARM Limited. All rights reserved.ARM DUI 0204HK
Non-Confidential