Programmation en assembleur [Fermé]

Messages postés
4
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
26 avril 2007
- - Dernière réponse : switch01
Messages postés
53
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
9 juillet 2008
- 8 mars 2007 à 22:14
svp pouvez vous me donné une séquence dinstruction assembleur qui a un temps d'exécution d'une minute pour un microprocesseur ayant une frequence égale à 500mhz
je vous remercie
Afficher la suite 

4 réponses

Messages postés
53
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
9 juillet 2008
51
0
Merci
bah pour ça tu fait une boucle qui contient des instructions qui font un certain temps (par exemple tu repete 60 fois une boucle d'une seconde) ou tu lis la date au debut de ta boucle tu lance ta boucle et dès que une minute ont passés tu sort de la boucle ac un bon vieux jmp ...
Messages postés
8896
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1368
0
Merci
Un nop c'est un cycle n'est ce pas?

500 Mhz ça fait 500 000 000 cycles par secondes, c'est bien ça?

Faudrait donc faire 500 000 000 * 60 nop ....
Messages postés
8896
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1368
0
Merci
Ah oui, au fait, au cas où tu n'aurais pas envie de taper 500 000 000 * 60 nop, tu peux utiliser l'instruction rdtsc, c'est ce que suggérait switch01.

rdtsc te donne le nombre de cycles effectués par le processeur depuis le démarrage. Il suffit de le comparer régulièrement dans une boucle, sachant que tu fais 500 millions d'instructions par secondes.
Messages postés
53
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
9 juillet 2008
51
0
Merci
sinon y'a aussi la fonction 0 de l'interruption 1Ah (MOV AH,0 INT 1Ah) qui renvoie un nombre qui augmente de un 18,2 fois par seconde ... c'est peut etre un dixieme moins precis que le moyen ac nop mais comme ça ton code a le meme resultat sur un pc a 500 MHz que sur un PC a 1GHz... de plus c'est plus simple a coder ...