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