_emit pseudoinstruction
Específico da Microsoft
O pseudoinstruction de _emit define um byte no local atual no segmento de texto atual.O pseudoinstruction de _emit é semelhante à política de DB de MASM.
O seguinte fragmento 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 gera instruções que alteram o registros, e cria o aplicativo com otimizações, o compilador não pode determinar quais registros são afetadas.Por exemplo, se _emit gera uma instrução que altere o registro de rax , o compilador não sabe que rax foi alterado.O compilador pode então fazer uma suposição incorreta sobre o valor no registro depois que o código de assembler embutido executa.Portanto, o aplicativo pode exibir o comportamento imprevisível quando executa. |
Específico da Microsoft de END