Programmation en assembleur

huita06 Messages postés 4 Statut Membre -  
switch01 Messages postés 53 Statut Membre -
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 Statut Membre 58
 
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 8854 Statut Modérateur 1 526
 
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 8854 Statut Modérateur 1 526
 
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 Statut Membre 58
 
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