MASM32 et Performances ????

gor00 Messages postés 2 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 22 juillet 2004 - 22 juil. 2004 à 10:57
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 1 août 2004 à 09:17
Salut à tous,
Je me posé une question à propos des programmes en assembleur réalisés à l'aide de MASM32. Cet outil propose plusieurs fonctions et librairies qui facilitent grandemand la programmation.
Comme par exemple le bien connu "invoke" pour utiliser les API.

Je me pose alors des questions quand aux performances obtenues avec un tel outil.
Est-ce que le fait d'utiliser de tels fonctions et les API de Windows ne rapproche pas les performance du programme, sa vitesse d'exécution et sa taille d'un programme fait en C???
Ou bien est-ce que celà reste quand même plus rapide que le C???

Si quelqu'un pouvait m'éclairer??

Merci

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juil. 2004 à 12:05
Pour sur que ce n'est pas un prog asm ecrit a coups de invoke qui fera mieux qu'un bon code C compile par VS 2003.
MASM32 permet d'ecrire du vrai asm, on choisit facilite ou performances.

ciao...
BruNews, Admin CS, MVP Visual C++
0
gor00 Messages postés 2 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 22 juillet 2004
22 juil. 2004 à 13:43
Merci pour ta réponse,

de plus ça fait déjà un moment que j'essaie justement de faire du vrai asm avec MASM32... à base d'interruptions :)

Malheureusement je n'ai même pas réussi à compiler un simple "Hello World" et ce n'est pas à défaut d'avoir essayé....

Est-ce que quelqu'un peut m'expliquer un peu plus en détail la manière ou bien encore m'orienter vers un tutoriel pour MASM32????

Merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juil. 2004 à 13:55
Interruptions a bannir sur systeme moderne, utiliser API.

ciao...
BruNews, Admin CS, MVP Visual C++
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
22 juil. 2004 à 14:29
Salut,
En ce qui concerne Masm32 les macros ne ralentissent en rien la vitesse du code , le compilateur les transforme en code asm normal.
masm32 est le langage assembleur du visual C++ de microsoft et je ne crois pas qu'il y ait des différences de vitesses notables.

Pour le reste voir mon site ,http://perso.wanadoo.fr/luce.yves/
l'example hello word est dans masm32\example1.
la suite des exemples ne manque pas d'intérêt.
Editmasm une fois mis en place compile sans problème.
ToutEnMasm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Neitsa Messages postés 3 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 1 août 2004
1 août 2004 à 02:57
Bonjour,

Comme le dit ToutEnAsm, les macros ne ralentissent rien. Par exemple la macro "invoke" ne fait que remplacer le couple Push/call. Niveau exécution c'est exactement pareil, par contre niveau lisibilité du code, on y gagne !

Certains refusent mordicus d'utiliser la syntaxe en langage évolué de MASM (je pense notemment aux .if .elseif .else .endif; .while .endw, etc.) pensant que cela "dénature" l'Asm. Pourtant le compilo fait un remarquable boulot d'optimisation sur ce genre de routine, et comme dit précédemment c'est nettement plus lisible au niveau du source...

J'ai définitivement adopté les Macros et le la syntaxe de haut niveau proposé par MASM ! :)

Neitsa.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2004 à 09:17
Exact que invoke remplace Push/call avec cette difference essentielle qu'on ne controle pas du tout la parallelisation (pairing) des instructions. C'est jusque 8 cycles de penalite par AGI Stall sur un P4.
Pour faire du lisible on ecrit en C et ce le sera beaucoup plus.
Si on ecrit direct en ASM on se doit de traquer chaque cycle sinon il ne reste que la frime de dire qu'on le fait en omettant de dire qu'on produit un tres mauvais asm.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous