4.4. 인라인 어셈블리 코드와 임베디드 어셈블리 코드의 차이점

인라인 어셈블리와 임베디드 어셈블리는 컴파일하는 방식이 서로 다릅니다.

Table 4.1은 인라인 어셈블러와 임베디드 어셈블러의 주요 차이점을 간단히 설명합니다.

Table 4.1. 인라인 어셈블러와 임베디드 어셈블러의 차이점

기능임베디드 어셈블러인라인 어셈블러
명령어 세트ARM 및 ThumbARM만
ARM 어셈블러 지시문모두 지원지원 안 됨
ARMv6 명령어모두 지원

미디어 명령어만 지원

C/C++ 식상수 식만모든 C/C++ 식
어셈블리 코드의 최적화최적화 안 함모두 최적화
인라인불가능가능
레지스터 액세스지정된 물리 레지스터 사용. PC, LRSP도 사용 가능

가상 레지스터 사용(가상 레지스터 참조). sp (r13), lr (r14) 및 pc (r15) 사용 시 오류 발생. 자세한 내용은 sp, lr 또는 pc에 액세스하는 레거시 인라인 어셈블러를 참조.

명령어 반환코드에 추가해야 함자동 생성됨. BX , BXJBLX 명령어는 지원 안 됨
BKPT 명령어직접 지원지원되지 않음

Note

임베디드 어셈블리 식과 C 또는 C++ 식의 차이점도 참조하십시오.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0205GK
Non-Confidential