Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Langage > Assembleur
        Est-il intéressant pour les performances d'écrire des parties de programme en assembleur ?
        Comment écrire des parties d'un programme en assembleur ?
        Pourquoi obtiens-je le message 'Redémarrage de la compilation en utilisant l'assembleur' ?
        Quelle est la différence entre asm, _asm et __asm ?



Est-il intéressant pour les performances d'écrire des parties de programme en assembleur ?
Créé le 01/09/2004[haut]
auteur : Geronimo
Ecrire des parties de programme en assembleur peut permettre d'optimiser les performances de votre programme, mais ce n'est pas obligatoirement le cas. Tout d'abord, sachez que la compilation se termine par une phase d'optimisation ; c'est-à-dire que le compilateur va essayer de transformer au mieux les instructions pour les rendres plus rapides. Pour cela, il utilise du code assembleur adéquat. Donc quand vous écrivez des parties de programme en assembleur, il faut être vraiment sûr que votre code sera plus performant que celui créé par le compilateur. Il faut alors que vous maitrisiez (très) bien l'assembleur. Ainsi, surtout si vous êtes débutant, il n'est pas nécessaire d'essayer de remplacer du code C++ par de l'assembleur, pensant optimiser votre programme.


Comment écrire des parties d'un programme en assembleur ?
Créé le 01/09/2004[haut]
auteur : Geronimo
Pour des raisons d'optimisation, il peut être intéressant d'écrire des parties d'un programme en assembleur. Cependant, cela peut être très couteux en temps de développement, pour une optimisation pas forcémment remarquable. Il suffit de placer son code assembleur à l'intérieur d'un bloc commençant par le mot-clé asm :

asm
{
    mov eax, 10;  // Place 10 dans eax (eax = 10)
    add eax, 10;  // Ajoute 10 dans eax (eax = 20)
}
Vous devez également placer la directive #pragma inline au début du fichier contenant de l'assembleur. Ceci indique à C++Builder qu'il y aura de l'assembleur dans votre source.

lien : fr L'assembleur avec C++Builder
lien : fr Le Cavalier Hamiltonien

Pourquoi obtiens-je le message "Redémarrage de la compilation en utilisant l'assembleur" ?
Créé le 01/09/2004[haut]
auteur : Geronimo
La réponse est simple : vous avez oublié de placer la directive

#pragma inline
en tête de l'unité où vous avez placé de l'assembleur. Le compilateur redémarre donc la compilation en activant la compilation de l'assembleur quand il en rencontre. Lorsque vous placez cette directive, le compilateur est prévenu dès le début de la présence d'assembleur dans le code et active alors l'assembleur avant de compiler.


Quelle est la différence entre asm, _asm et __asm ?
Créé le 01/09/2004[haut]
auteur : Geronimo
Aucune, les trois mots-clés asm, _asm et __asm permettent d'introduire un bloc d'assembleur dans votre code.



Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web