Prüfen, ob eine CPU MMX unterstützt |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Folgende Funktion gibt True zurück, falls die CPU des Systems MMX unterstützt:
function IsMMX: Boolean;
asm
PUSH EBX
PUSHFD // Erweiterte Flags holen
POP EAX // In EAX speichern
MOV ECX, EAX // In ECX speichern
XOR EAX, $00200000 // Bit 21 negieren
PUSH EAX
POPFD
PUSHFD // Erweiterte Flags holen
POP EAX // In EAX speichern
XOR EAX, ECX // Wenn sich BIT 21 schreiben
JE @@NoMMX // Der Befehl CPUID wird
MOV EAX, $01 // Feature Flags anfragen
DB $0F,$A2 // $0F, $A2 CPUID Befehl
XOR EAX, EAX
TEST EDX, $800000 // MMX ist vorhanden wenn Bit 23 gesetzt ist
JZ @@NoMMX
MOV EAX, 1 // True
@@NoMMX:
POP EBX
end;