Programmation en assembleur

Fermé
huita06 Messages postés 4 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 26 avril 2007 - 3 mars 2007 à 19:13
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

4 réponses

switch01 Messages postés 53 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 9 juillet 2008 58
3 mars 2007 à 21:04
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 ...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
3 mars 2007 à 21:23
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 ....
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
3 mars 2007 à 21:30
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.
0
switch01 Messages postés 53 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 9 juillet 2008 58
8 mars 2007 à 22:14
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 ...
0