3.8. C 사전 처리기 사용

어셈블리 언어 소스 파일에서 C 사전 처리기 명령을 사용할 수 있습니다. 이렇게 하는 경우에는 어셈블러를 호출할 때 --cpreproc 명령 행 옵션을 사용해야 합니다. 그러면 armasm이 파일을 어셈블하기 전에 사전 처리하도록 armcc를 호출합니다.

armasmarmasm 바이너리와 동일한 디렉토리에서 armcc 바이너리를 찾으며, 이 디렉토리에 바이너리가 없으면 PATH에 있다고 간주합니다.

armasm은 명령 행에 있는 경우 armcc에 특정 옵션을 전달합니다. 이러한 옵션이 Table 3.14에 나와 있습니다. 이러한 옵션 중 일부는 armcc로 전달하기 전에 동등한 armcc로 변환됩니다. 이러한 옵션이 Table 3.15에 나와 있습니다.

Table 3.14. 명령 행 옵션

--16

--arm_only

--diag_error

--diag_warning

--li

--32

--bi

--diag_remark

--fpu

--library_type

--apcs

--cpu

--diag_style

--fpumode

--thumb

--arm

--device

--diag_suppress

--i

--[no_]unaligned_access


Table 3.15. armcc와 동등한 명령 행 옵션

armasmarmcc

--16

--thumb

--32

--arm

--i

--I


사전 처리기 옵션 -D와 같은 다른 간단한 컴파일러 옵션을 전달하려면 --cpreproc_opts 명령 행 옵션을 사용해야 합니다. 자세한 내용은 컴파일러 사용 설명서를 참조하십시오. armasm은 사전 처리된 #line 명령을 올바르게 해석합니다. #line 명령의 정보를 사용하여 오류 메시지와 debug_line 테이블을 생성할 수 있습니다.

Example 3.1에서는 source.s 파일을 사전 처리하고 어셈블하기 위해 작성하는 명령을 보여 줍니다. 또한 이 예제에서는 컴파일러 옵션을 전달하여 RELEASE라는 매크로를 정의하고 ALPHA라는 매크로의 정의를 취소합니다.

Example 3.1. 어셈블리 언어 소스 파일 사전 처리

armasm --cpreproc --cpreproc_opts=-D,RELEASE,-U,ALPHA source.s

복잡한 사전 처리기 옵션을 사용하려는 경우에는 armasm을 호출하기 전에 armcc를 수동으로 호출하여 파일을 사전 처리해야 합니다. Example 3.2에서는 source.s 파일을 수동으로 사전 처리 및 어셈블하기 위해 작성하는 명령을 보여 줍니다. 이 예제에서는 사전 처리기에서 preprocessed.s라는 파일을 출력하고 armasm에서 preprocessed.s를 어셈블합니다.

Example 3.2. 수동으로 어셈블리 언어 소스 파일 사전 처리

armcc -E source.s > preprocessed.s
armasm preprocessed.s

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