IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Est-il intéressant pour les performances d'écrire des parties de programme en assembleur ?
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 sur 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 ?
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.

Liens : L'assembleur avec C++Builder par Gilles Louise ainsi que Le Cavalier Hamiltonien du même auteur.

Pourquoi obtiens-je le message "Redémarrage de la compilation en utilisant l'assembleur" ?
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 ?
auteur : Geronimo
Aucune, les trois mots-clés asm , _asm et __asm permettent d'introduire un bloc d'assembleur dans votre code.
asm
{
//...
}
=
_asm
{
//...
}
=
__asm
{
//...
}