2009-11-16 5 views
3

J'ai regardé un code d'assemblage et j'ai trouvé que cela arrive assez régulièrement.Assembly @@ label question

@@: 
... 
... ; some instructions 
... 
LOOP @B 

Parfois, il y a aussi @F.

Je suppose que @B signifie revenir à l'étiquette précédente et @F à l'étiquette "avant/avant"? Ai-je raison? Cela ne fonctionne qu'avec les étiquettes "@@"? Si j'ai l'étiquette "label1" et que j'utilise @B, cela fonctionnerait-il aussi?

Merci.

Répondre

5

Vous l'avez compris.

Elles sont très utiles dans les extensions de macro. Si votre macro contient une boucle, l'utilisation de ces symboles intégrés vous permet d'écrire la macro de sorte qu'elle puisse être étendue plusieurs fois. Si votre macro devait utiliser une étiquette standard, l'expansion de la macro deux fois créerait des étiquettes dupliquées.

Ces références d'étiquettes relatives (@B, @F) ne se réfèrent jamais à des étiquettes normalement définies, mais uniquement à @@.

Voici quelques liens de documentation: