UTILISER DES CLASS C++ AVEC MASM DIRECTX XAUDIO2BASICSOUND

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
- - Dernière réponse : ToutEnMasm
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
26 mars 2016
- 11 janv. 2011 à 17:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52658-utiliser-des-class-c-avec-masm-directx-xaudio2basicsound

Afficher la suite 
ToutEnMasm
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
26 mars 2016
1 -
l'instruction peut servir à cela:
http://www.masm32.com/board/index.php?topic=11061.0
tout y est ,code ,tests de rapidité ....
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
Sur 64 bits:

.1
dec ecx
mov eax,[esi]
mov edx,[esi+4]
lea esi,[esi+8]
mov [edi],eax
mov [edi+4],edx
lea edi,[edi+8]
jne .1

ici, il n'y a aucun stall.

Une copie de 128 bits avec une seule instruction génèrera forcement un stall sur le jmp. Avec la prédiction de branchement, je ne suis pas sur que movdqa soit plus rapide. Là encore, la perte de mémoire est de 50%.
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
Tu ne me contredis pas car tu ne parles pas de l'utilisation.

Alloue 10000 fois 1 dword et compare 10000 movdqa puis 10000 mov reg32 (sans parler de la perte de mémoire induite). Ensuite alloue 1 fois 10000 dword et là d'accord.

Je n'ai pas trouvé le nombre de cycles utilisé par l'instruction movdqa et movdqu ni la page du forum masm qui en parle donc pas évident pour calculer quoi que ce soit.
ToutEnMasm
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
26 mars 2016
1 -
Desolé de te contredire , mais le gain à été verifié par des bancs d'essais (voir us masm forum) et c'est indiscutable.
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
en fait, le gain de vitesse n'est même pas certain car copier de la mémoire inutilisée n'est pas un gain de temps. Cela depends donc de l'utilisation.