FONCTION D'AFFICHAGE DE CHAINE - ASM - BUG A L'EXECUTION

Signaler
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
-
Messages postés
46
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
2 décembre 2006
-
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/10026-fonction-d-affichage-de-chaine-asm-bug-a-l-execution

Messages postés
46
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
2 décembre 2006

Réponse a KAID:
la tu te goure un peu quand même: insérer de l'ASm dans un code en C est très répandu: pourquoi ? en particulier pour les fonctions d'affichage.
les fonctions d'affichages en C (dont la plus connue printf() ) sont extrememnt lentes, le fait d'inclure de l'asm permet d'augmenter considérablement la vitesse d'affichage et , par la même la vitesse d'execution du programme (c'est pour cela que les moteurs 3d sont en partie codés en ASM)
juste pour te rendre compte, execute le code suivant:

#include <stdio.h>
int i;
void main()
{
for(i=0;i<1000000000;i++)
{
printf("%d
",i);
}
}


tu pourra attendre longtemps avant que le prog se termine!
alors que si tu vire l'affichage du nombre, l'execution durera 20 secs (sur 1,4 GHz).
d'ou l'avantage d'inclure de l'ASM dans du C.
cela s'appelle l'optimisation!
d'ou le probleme non résolu qui persiste.

P.S: la fonction write() est un peu plus rapide que printf().
@+
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

madprog: Turbo C non ? Mais bon, le 16 bits et les interruptions DOS ne sont pas promis à un grand avenir :)
Messages postés
16
Date d'inscription
mardi 1 octobre 2002
Statut
Membre
Dernière intervention
7 août 2005

Kaid: et tu connais un compilateur c/c++ en 16bits ?
merci
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

En fait la vraie question qu'il faut se poser est "A quoi sert d'appeler des interruptions DOS 16 Bits dans un programme Win32 32 Bits ?" La réponse étant "A rien", pas la peine de s'étaler là-dessus.
Afficher les 16 commentaires