J'essaie de porter un code d'assemblage écrit dans Visual Studio dans l'assemblage en ligne GNU sous Linux. Le code d'origine utilise _emit que MSDN décrit comme une pseudo instruction et explique comme suit:Quel est l'équivalent de _emit sur Linux?
La pseudo-instruction _emit est similaire à la directive DB de MASM. Vous utilisez _emit pour définir un seul octet immédiat à l'emplacement actuel dans le segment de texte en cours. Toutefois, _emit ne peut définir qu'un seul octet à la fois et il ne peut définir que des octets dans le segment de texte. Il utilise la même syntaxe que l'instruction INT.
Comment puis-je faire la même chose sous Linux?
+1, bon point sur les optimisations. –
Merci! Cela a bien fonctionné. – samgrover
Avec '__volatile__' (ou simplement' volatile' sur les compilateurs modernes) vous ne devriez avoir aucun problème même avec les optimisations activées. Le compilateur doit émettre l'octet à l'emplacement indiqué (bien sûr, le code environnant peut être fortement optimisé ...). – BeeOnRope