Скорость процессора
Проба получения скорости процессора с помощью ASM вставок. Первый исходник
получает скорость старых процессоров. Другой исходник показывает скорость новых
на данный момент процессоров, CPU должно быть > 686
Платформа:
Windows , Linux создано: в 2005 году.
Автор: D.J.Peters,
'CPU Speed Dim As Ulongint start64,diff64 Dim As Single starttimer,onesecond=1.0045! 'get timer starttimer=timer 'CPU Counter holen Asm rdtsc Asm mov dword Ptr [start64], eax Asm mov dword Ptr [start64+4], edx 'wait one second While (timer-starttimer)<onesecond:Wend 'CPU Counter erneut lesen Asm rdtsc 'Diffrenz bilden carrybit nicht vergessen Asm mov ebx, eax Asm mov eax, edx Asm Sub ebx, dword Ptr [start64] Asm sbb eax, dword Ptr [start64+4] Asm mov dword Ptr [diff64], ebx Asm mov dword Ptr [diff64+4], eax 'Differenz durch 1 Millionen teilen Asm mov ecx, 1000000 Asm mov eax, ebx Asm cdq Asm idiv ecx Asm mov dword Ptr [diff64], eax Print "CPU Speed "; str$(diff64) ; " MHz." Sleep End
' get CPU Speed Dim As Ulongint start64,diff64 Dim As Single starttimer,onesecond=1.0000! 'Timer merken starttimer=timer 'get CPU counter Asm rdtsc Asm mov dword Ptr [start64], eax Asm mov dword Ptr [start64+4], edx '1 Sekunde warten Asm asm_wait_begin: While (timer-starttimer)<onesecond:Wend 'CPU Counter erneut lesen Asm rdtsc 'Diffrenz bilden carrybit nicht vergessen Asm mov ebx, eax Asm mov eax, edx Asm Sub ebx, dword Ptr [start64] Asm sbb eax, dword Ptr [start64+4] Asm mov dword Ptr [diff64], ebx Asm mov dword Ptr [diff64+4], eax diff64 \= 1000000 Print "CPU Speed "; str$(diff64) ; " MHz." Sleep End