다음을 통해 공유


인라인 어셈블러 개요

Microsoft 전용

인라인 어셈블러는 어셈블리 언어 지침 링크 및 어셈블리 단계를 추가로 수행 하지 않고 C 및 C++ 소스 프로그램을 포함 수 있습니다.인라인 어셈블러 컴파일러에 내장 된-별도 어셈블러 Microsoft 매크로 어셈블러 (MASM) 등 필요 없는.

인라인 어셈블러 별도 어셈블리 및 링크 단계 필요 하지 않으므로 별도 어셈블러 보다 더 편리 합니다.인라인 어셈블리 코드는 쉽게 프로그램을 C 및 C++ 코드에 통합 되는 범위에 있는 모든 C 또는 C++ 변수 또는 함수 이름을 사용할 수 있습니다.및 C와 C++ 문으로 어셈블리 코드를 혼합할 수 있습니다 때문에 불편 하거나 불가능은 C 나 C++만 작업 수행할 수 있습니다.

해당 __asm 키워드 인라인 어셈블러 호출 하 고 C 또는 C++ 문 잘못 된 위치에 나타날 수 있습니다.단독으로 사용할 수 없습니다.어셈블리 명령을 중괄호 또는, 적어도, 사이 있는 명령 그룹와 야 빈 중괄호의 쌍입니다.용어는 "__asm 블록" 여기 모든 명령이 나 명령의 중괄호에 여부 또는 그룹을 참조 합니다.

다음 코드에서는 간단한입니다 __asm 블록 중괄호로 묶습니다.(사용자 정의 함수 프롤로그 시퀀스는 코드가입니다.)

// asm_overview.cpp
// processor: x86
void __declspec(naked) main()
{
    // Naked functions must provide their own prolog...
    __asm {
        push ebp
        mov ebp, esp
        sub esp, __LOCAL_SIZE
    }
    
    // ... and epilog
    __asm {
        pop ebp
        ret
    }
}

또는 배치할 수 있는 __asm 각 어셈블리 명령 앞에:

__asm push ebp   __asm mov  ebp, esp   __asm sub  esp, __LOCAL_SIZE

때문에 __asm 키워드는 문을 구분, 어셈블리 지침을 같은 줄에도 넣을 수 있습니다.

__asm push ebp
__asm mov  ebp, esp
__asm sub  esp, __LOCAL_SIZE

Microsoft 특정 끝

참고 항목

참조

인라인 어셈블러