다음을 통해 공유


_emit Pseudoinstruction

Microsoft 전용

_emit 의사 인스트루션은 현재 텍스트 세그먼트의 현재 위치에서 1 바이트를 정의합니다. _emit 의사 유도는 MASM의 DB 지시문과 유사합니다.

다음 조각은 0x4A, 0x43, 0x4B 바이트를 코드에 추가합니다.

#define randasm __asm _emit 0x4A __asm _emit 0x43 __asm _emit 0x4B
.
.
.
__asm {
    randasm
    }

주의

_emit이 레지스터를 수정하는 명령을 생성하는 경우 최적화 기능을 사용하여 애플리케이션을 컴파일하면 컴파일러는 영향을 받는 레지스터를 확인할 수 없습니다. 예를 들어 rax 레지스터를 수정하는 명령을 생성하는 경우 _emit 컴파일러는 rax변경되었음을 알지 못합니다. 이 때문에 컴파일러는 인라인 어셈블러 코드가 실행된 후 해당 레지스터에 포함된 값을 잘못 가정할 수 있습니다. 따라서 애플리케이션이 실행될 때 예기치 않은 동작이 발생할 수 있습니다.

Microsoft 전용 종료

참고 항목

__asm 블록에서 어셈블리 언어 사용