_emit Pseudoinstruction
Microsoft 전용
_emit pseudoinstruction은 현재 텍스트 세그먼트의 현재 위치에 1바이트를 정의합니다. _emit pseudoinstruction은 MASM의 DB 지시문과 비슷합니다.
다음 조각은 0x4A, 0x43, 0x4B 바이트를 코드에 추가합니다.
#define randasm __asm _emit 0x4A __asm _emit 0x43 __asm _emit 0x4B
.
.
.
__asm {
randasm
}
경고
_emit이 레지스터를 수정하는 명령을 생성하는 경우 최적화 기능을 사용하여 응용 프로그램을 컴파일하면 컴파일러는 영향을 받는 레지스터를 확인할 수 없습니다.예를 들어 _emit이 rax 레지스터를 수정하는 명령을 생성하는 경우 컴파일러는 rax가 변경되었음을 알 수 없습니다.이 때문에 컴파일러는 인라인 어셈블러 코드가 실행된 후 해당 레지스터에 포함된 값을 잘못 가정할 수 있습니다.따라서 응용 프로그램이 실행될 때 예기치 않은 동작이 발생할 수 있습니다.
Microsoft 전용 종료