_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 전용 종료