Es hängt davon ab, wie genau Sie erhalten möchten und wie viele Probleme Sie haben möchten.
Sie sagen, dass Sie Interrupts zum Lesen und Schreiben von Dateien aufrufen. Ich nehme an, Sie machen die alten INT 21H Interrupt-Funktionen. INT 21H Funktion 2Ch gibt die Uhrzeit mit einer Genauigkeit von ca. 5/100 Sekunden zurück. Siehe http://spike.scu.edu.au/~barry/interrupts.html#ah2c für weitere Informationen.
Wenn Sie Windows-API-Funktionen aufrufen können, können Sie QueryPerformanceCounter
aufrufen, um die Tick-Zählung am Anfang des Codes, den Sie möchten, zu erhalten. Rufen Sie die Funktion danach erneut auf, subtrahieren Sie den Anfang vom Ende, und teilen Sie das Ergebnis durch den Rückgabewert von QueryPerformanceFrequency
, und Sie haben es.
Natürlich erfordert dies 64-Bit-Arithmetik.
Sie können die API-Funktion GetSystemTime
aufrufen, indem Sie eine SYSTEMTIME
Struktur übergeben, die ausgefüllt wird. Oder Sie rufen timeGetTime
auf, die die Anzahl der Millisekunden zurückgibt, seit der Computer gestartet wurde. Sie müssen vorsichtig mit diesem sein, weil es nach 49 Tagen überrollen wird.
Es gibt wahrscheinlich auch andere Wege zu gehen. Aber am einfachsten, wenn Sie INT 21H-Funktionen aufrufen, verwenden Sie einfach die Funktion 2CH.
Schreiben Sie DOS-Programme auf Win7 laufen ??? – Gabe
Ich schreibe einen Algorithmus in Assembly, um sein Geschwindigkeitspotential zu zeigen. Die Plattform, Windows 7, ist zufällig genau das, was auf meinem Computer läuft. Es ist mehr wie ein Proof-of-Concept-Programm. –