Pseudoinstrução _emit

Seção específica da Microsoft

A pseudoinstrução _emit define um byte no local atual, no segmento de texto atual. A pseudoinstrução _emit se assemelha à diretiva DB do MASM.

O fragmento a seguir coloca os bytes 0x4A, 0x43 e 0x4B no código:

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

Cuidado

Se _emit gerar instruções que modifiquem registros e você compilar o aplicativo com otimizações, o compilador não poderá determinar quais registros foram afetados. Por exemplo, se _emit gerar uma instrução que modifique o registro rax, o compilador não saberá que rax foi alterado. O compilador poderá fazer uma suposição incorreta sobre o valor nesse registro após a execução do código do assembler embutido. Consequentemente, seu aplicativo poderá exibir um comportamento imprevisível quando for executado.

Fim da seção específica da Microsoft

Confira também

Usando a linguagem de assembly em blocos __asm