Cela dépend de la précision que vous voulez obtenir et du nombre de problèmes que vous voulez résoudre.
Vous dites que vous appelez des interruptions pour lire et écrire des fichiers. Je suppose que vous faites les anciennes fonctions d'interruption INT 21H. INT 21H La fonction 2Ch renvoie l'heure, précise à environ 5/100 secondes. Voir http://spike.scu.edu.au/~barry/interrupts.html#ah2c pour plus d'informations.
Si vous pouvez appeler les fonctions de l'API Windows, vous pouvez appeler le QueryPerformanceCounter
pour obtenir le nombre de ticks au début du code que vous voulez chronométrer. Appelez la fonction à nouveau après, soustrayez le début de la fin, puis divisez le résultat par la valeur de retour de QueryPerformanceFrequency
, et vous l'avez.
Bien sûr, cela nécessite de faire de l'arithmétique 64 bits.
Vous pouvez appeler la fonction API GetSystemTime
en lui transmettant une structure SYSTEMTIME
remplie. Ou vous pouvez appeler timeGetTime
, ce qui renvoie le nombre de millisecondes écoulées depuis le démarrage de l'ordinateur. Vous devez être prudent avec celui-ci, car il va rouler après 49 jours.
Il y a probablement d'autres façons d'y aller aussi. Mais le plus simple, si vous appelez les fonctions INT 21H, est d'utiliser simplement la fonction 2CH.
Est-ce que vous écrivez des programmes DOS pour fonctionner sur Win7 ??? – Gabe
J'écris un algorithme dans Assembly pour montrer son potentiel de vitesse. La plate-forme, Windows 7, se trouve être ce que mon ordinateur fonctionne. C'est plus comme un programme de preuve de concept. –