_emit Pseudoinstruction

Microsoft-spezifisch

Der _emit Pseudoinstruction definiert ein Byte an der aktuellen Position im aktuellen Textsegment.Der _emit Pseudoinstruction ähnelt den DB-Direktive von MASM.

Das folgende Fragment platziert die Bytes 0x4A, 0x43 und 0x4B in den Code:

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

Wenn _emit-Anweisungen, die Register und ändern, kompilieren Sie die Anwendung mit Optimierungen generiert, kann der Compiler nicht feststellen, welche Register beeinflusst werden.Wenn _emit eine Anweisung generiert, die das rax Register ändert, weiß der Compiler nicht, dass rax geändert hat.Der Compiler hat sich dann eine falsche Annahme über den Wert in diesem Register, nachdem der Inlineassemblercode ausführt.Daher weist die Anwendung möglicherweise unvorhersehbares Verhalten auf, wenn sie ausgeführt wird.

END Microsoft-spezifisch

Siehe auch

Referenz

Verwenden der Assemblysprache in __asm-Blöcken