_emit, pseudo-instruction

Section spécifique à Microsoft

La pseudoinstruction _emit définit un octet à l’emplacement actuel dans le segment de texte actuel. La pseudoinstruction _emit ressemble à la directive DB de MASM.

Le fragment suivant place les octets 0x4A, 0x43 et 0x4B dans le code :

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

Attention

Si _emit génère des instructions qui modifient les registres et que vous compilez l'application avec les optimisations, le compilateur ne peut pas déterminer quels registres sont affectés. Par exemple, si _emit elle génère une instruction qui modifie le registre rax , le compilateur ne sait pas que rax a changé. Le compilateur peut alors évaluer de façon incorrecte la valeur dans ce registre après l'exécution du code assembleur inline. Par conséquent, votre application peut présenter un comportement imprévisible lorsqu'elle s'exécute.

FIN de la section spécifique à Microsoft

Voir aussi

Utilisation du langage assembleur dans les blocs __asm