Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Microsoft-spezifisch
Wie eine gewöhnliche C# oder C++-Bezeichnung weist eine Bezeichnung in einem Block Bereich __asm während der Funktion, in der er definiert wurde (nicht nur im Block).goto und Assemblyanweisungen können Anweisungen zu den Bezeichnungen innerhalb oder außerhalb der Bindung __asm-Block.
Die Bezeichnungen, die in __asm Blöcke definiert sind, wird die Groß-/Kleinschreibung nicht beachtet. goto können diese Assemblyanweisungen - Anweisungen und Sprungmarken ohne Berücksichtigung der Groß-/Kleinschreibung verweisen.C- und C++-Bezeichnungen wird die Groß-/Kleinschreibung beachtet, wenn sie nur von goto-Anweisungen verwendet werden.Assemblyanweisungen können eine oder C++-Bezeichnung ohne Berücksichtigung der Groß-/Kleinschreibung wechseln.
Der folgende Code zeigt alle Permutationen an:
void func( void )
{
goto C_Dest; /* Legal: correct case */
goto c_dest; /* Error: incorrect case */
goto A_Dest; /* Legal: correct case */
goto a_dest; /* Legal: incorrect case */
__asm
{
jmp C_Dest ; Legal: correct case
jmp c_dest ; Legal: incorrect case
jmp A_Dest ; Legal: correct case
jmp a_dest ; Legal: incorrect case
a_dest: ; __asm label
}
C_Dest: /* C label */
return;
}
int main()
{
}
Verwenden Sie C-Bibliotheks funktionsnamen nicht als Bezeichnungen in __asm Blöcke.Beispielsweise können Sie gereizt werden, um exit als Bezeichnung verwendet werden soll, wie folgt:
; BAD TECHNIQUE: using library function name as label
jne exit
.
.
.
exit:
; More __asm code follows
Da Beenden der Name der Wechselstrom-Bibliotheksfunktion ist, kann dieser Code einen Sprung zur Beenden-Funktion statt an die gewünschte Position.
Wie in MASM-Programmen, liefert das Dollar (Symbol)$als aktueller Adressenzähler.Es handelt sich um eine Bezeichnung für die Anweisung, die gerade assembliert wird.In __asm Blöcke ist die wichtigste mit langen bedingte Sprünge auszuführen:
jne $+5 ; next instruction is 5 bytes long
jmp farlabel
; $+5
.
.
.
farlabel:
Microsoft ENDES bestimmten