_emit – pseudoinstrukce
Specifické pro Microsoft
_Emit pseudoinstruction definuje jeden bajt na aktuální pozici v segmentu aktuální text._Emit pseudoinstruction podobá DB směrnice o MASM.
Následující fragment bajtů, 0x4B, 0x4A a 0x43 umístí do kódu:
#define randasm __asm _emit 0x4A __asm _emit 0x43 __asm _emit 0x4B
.
.
.
__asm {
randasm
}
Upozornění |
---|
Pokud _emit vytvoří instrukce, které mění registry a kompilace aplikace s optimalizací, kompilátor nemůže určit, jaké rejstříky jsou ovlivněny.Například pokud _emit generuje instrukci, která mění rax registr, kompilátor nebude vědět, který rax byl změněn.Kompilátor pak může způsobit nesprávné předpoklady o hodnotu v tomto zaregistrovat po vložený kód assembler.V důsledku toho aplikace docházet neočekávané chování při spuštění. |
Specificka produktu Microsoft END