Für Testzwecke ist häufig eine Stoppuhr erforderlich, um die Ausführungsgeschwindigkeit beliebiger Programme testen zu können. Eine korrekte Zeitmessung ist jedoch vom genauen Timing der Hände und Augen abhängig, wenn z. B. der PC und gleichzeitig die Stoppuhr zu kontrollieren ist. TIMEMARK.DEB stoppt bei einer Auflösung von 0,1 Sekunden die vergangene Zeit bis zu einer Stunde lang und zeigt die Einheiten, die seit dem letzten Aufruf von TIMEMARK vergangen sind, in ganzen und zehntel Sekunden an. Wenn Sie die Ausführungsgeschwindigkeit von EXE- oder COM-Programmen messen wollen, richten Sie sich am besten den folgenden Stapeljob »STOP.BAT« ein:
@ECHO OFF TIMEMARK >NUL %1 %2 %3 %4 %5 %6 %7 %8 %9 TIMEMARK ECHO Sekunden
Rufen Sie die Batch-Datei z. B. mit »STOP DIR« auf, um festzustellen, wieviel Zeit der DIR-Befehl benötigt. Das Ergebnis zeigt recht genau die Laufzeit des im Parameter übergebenen Programms inklusive der Ladezeit bei externen Befehlen an. TIMEMARK ermittelt über den BIOS-Interrupt 1Ah den Wert des System-Zeitzählers und verwendet als Zwischenspeicher für den letzten registrierten Zeitpunkt den Interruptvektor 68h. Die Differenz zwischen dem Inhalt des Vektors und der tatsächlichen Zeit rechnet das Programm in Einheiten zu je 1/18,2 Sekunden in ganze und zehntel Sekunden um und gibt das Ergebnis auf dem Bildschirm aus. Anschließend sichert TIMEMARK den neuen Zeitpunkt im erwähnten Interruptvektor. Das Ergebnis bleibt nur innerhalb von 60 Minuten genau. Längere Zeiten kann TIMEMARK nicht korrekt registrieren. Der erste Aufruf bringt ein willlkürliches Ergebnis, weil sich die Zeitmessung stets auf den letzten Start von TIMEMARK bezieht. Eine Umleitung auf die Null-Einheit ( >nul) verhindert die Ausgabe unerwünschter Werte. Um die Genauigkeit von STOP.BAT zu erhöhen, sollten Sie vom erhaltenen Ergebnis die Zeitspanne subtrahieren, die ein Aufruf von STOP ohne Parameter ergibt.
Name: | TIMEMARK.DEB |
Funktion: | Stoppt Zeiten von bis zu einer Stunde mit einer Auflösung von 0,1 Sekunden. |
Übersetzung: | DEBUG <TIMEMARK.DEB |
Prüfsumme: | 0270 |
Anwendung: | 1. TIMEMARK >NUL2. Anwendung aufrufen
3. TIMEMARK |
Einschränkungen: | Funktioniert nur bis zu 60 Minuten; darüberhinaus stimmt das Ergebnis nicht mehr. |
A MOV AH,0 ;100 INT 1A ;102 MOV AX,3568 ;104 INT 21 ;107 MOV AX,2568 ;109 INT 21 ;10C SUB DX,BX ;10E MOV AX,32 ;110 MUL DX ;113 DIV Wo[144] ;115 XOR DX,DX ;119 DIV Wo[142] ;11B PUSH DX ;11F CALL 12B ;120 MOV DL,2C ;123 CALL 13D ;125 POP DX ;128 JMP 13A ;129 XOR DX,DX ;12B DIV Wo[142] ;12D AND AX,AX ;131 JZ 13A ;133 PUSH DX ;135 CALL 12B ;136 POP DX ;139 ADD DL,30 ;13A MOV AH,2 ;13D INT 21 ;13F RET ;141 DW A,5B RCX 46 NTIMEMARK.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot
💡 Sie haben einen Linkedin-Account? Dann können Sie meinen Newsletter „Der 18-Jährige, der einen Zettel schrieb und verschwand“ abonnieren ✔︎