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
}
Przestroga |
---|
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