Dela via


_emit Pseudoinstruktion

Microsoft-specifik

_emit pseudoinstruktionen definierar en byte vid den aktuella positionen i det aktuella textsegmentet. Pseudoinstruktionen _emit liknar direktivet DB i MASM.

Följande fragment placerar byteen 0x4A, 0x43 och 0x4B i koden:

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

Försiktighet

Om _emit genererar instruktioner som ändrar register och du kompilerar programmet med optimeringar kan kompilatorn inte avgöra vilka register som påverkas. Om _emit till exempel genererar en instruktion som ändrar rax-registret vet kompilatorn inte att rax har ändrats. Kompilatorn kan sedan göra ett felaktigt antagande om värdet i det registret efter att assemblerkoden inlinjats. Därför kan ditt program uppvisa oförutsägbart beteende när det körs.

Avsluta Microsoft Specifik

Se även

Använda sammansättningsspråk i __asm block