MASM32 et Performances ????

Signaler
Messages postés
2
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
22 juillet 2004
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++
Messages postés
2
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
22 juillet 2004

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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Interruptions a bannir sur systeme moderne, utiliser API.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
569
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
6 janvier 2021
2
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
Messages postés
3
Date d'inscription
lundi 7 juillet 2003
Statut
Membre
Dernière intervention
1 août 2004

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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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++