Udostępnij za pośrednictwem


Pseudoinstrukcja _emit

Specyficzne dla firmy Microsoft

_Emit pseudoinstruction definiuje jeden bajt w bieżącej lokalizacji w bieżącym segmencie tekstu._Emit przypomina pseudoinstruction DB z MASM w dyrektywie.

Poniższy fragment umieszcza bajtów 0x4A, 0x43 i 0x4B w kodzie:

#define randasm __asm _emit 0x4A __asm _emit 0x43 __asm _emit 0x4B
 .
 .
 .
__asm {
     randasm
     }
Informacje dotyczące przestrogiPrzestroga

Jeśli _emit generuje instrukcje które modyfikują rejestrów i skompilować aplikację z optymalizacje, kompilator nie może określić, jakie rejestry są dotknięte.Na przykład jeśli _emit generuje instrukcję, która modyfikuje rax rejestru, kompilator nie wie, że rax została zmieniona.Kompilator może następnie wprowadzić błędnym założeniu o wartości w tym zarejestrować po wykonuje kod asembler wbudowany.W związku z tym aplikacja może wykazywać nieprzewidywalne zachowanie, gdy zostanie uruchomiony.

KONIEC informacji specyficznych dla firmy Microsoft

Zobacz też

Informacje

Korzystanie z języka zestawu w blokach __asm