You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.6 KiB
HTML
126 lines
4.6 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>MMX Erweiterung -- Erkennung von MMX-Prozessoren</TITLE>
|
|
<SCRIPT LANGUAGE="Javascript">
|
|
<!-- Test Browser Version
|
|
|
|
// Javascript written 1998 by Jens Hohmuth (Script-Version: 3.0)
|
|
// (c) Copyright 1998 by Jens Hohmuth@fh-zwickau.de. All rights reserved.
|
|
|
|
var browserok= 0;
|
|
var version= parseInt( navigator.appVersion );
|
|
|
|
if( version >= 3 ) browserok= 1;
|
|
if( document.images ) browserok= 1;
|
|
|
|
if( browserok )
|
|
{
|
|
var imgdata_touched = new Array();
|
|
var imgdata_released= new Array();
|
|
}
|
|
|
|
// load imagedata
|
|
function precache( name, pic1, pic2 )
|
|
{
|
|
if( browserok )
|
|
{
|
|
imgdata_touched [ name ]= new Image();
|
|
imgdata_touched [ name ].src= pic2;
|
|
imgdata_released[ name ]= new Image();
|
|
imgdata_released[ name ].src= pic1;
|
|
}
|
|
}
|
|
|
|
// "Release", called if mouse left button
|
|
function release( name )
|
|
{
|
|
if( browserok )
|
|
{
|
|
document.images[ name ].src= imgdata_released[ name ].src;
|
|
}
|
|
}
|
|
|
|
// "Touch", called if mouse over link-button
|
|
function touch( name )
|
|
{
|
|
if( browserok )
|
|
{
|
|
document.images[ name ].src= imgdata_touched[ name ].src;
|
|
}
|
|
}
|
|
|
|
// load (precache) Buttons
|
|
if( browserok )
|
|
{
|
|
precache( "left", "../images/arrowl.gif", "../images/arrowlp.gif" );
|
|
precache( "right", "../images/arrowr.gif", "../images/arrowrp.gif" );
|
|
precache( "index", "../images/index.gif", "../images/indexp.gif" );
|
|
}
|
|
//-->
|
|
</SCRIPT>
|
|
|
|
</HEAD>
|
|
|
|
<BODY BGCOLOR="#C0C0C0" BACKGROUND="../images/stone.jpg">
|
|
<H1><FONT COLOR="#800000">4 Erkennung von MMX-Prozessoren</FONT></H1>
|
|
|
|
<A NAME="CPUID Befehl"><H2><FONT COLOR="#000080">CPUID Befehl</FONT></H2></A>
|
|
|
|
<P>Eine Erkennung der MMX-Fähigkeit eines Prozessors erfolgt über
|
|
den CPUID-Befehl. Dieser Befehl existiert auf allen Pentium-Prozessoren und
|
|
dient der Ermittlung des Rechnertyps. Über den CPUID-Befehl ist es
|
|
möglich, eine Reihe von Eigenschaften des Prozessors zu ermitteln. Hier
|
|
soll jedoch nur der Teil des Befehls besprochen werden, der für die Erkennung
|
|
eines MMX-Prozessors notwendig ist. Ruft man den CPUID-Befehl mit dem Wert 1
|
|
im EAX-Register auf, dann kann über Bit 23 des EDX-Registers die
|
|
MMX-Kompatibilität überprüft werden.</P>
|
|
|
|
<P>Ist das Bit 23 des Feature-Flags (EDX) gesetzt, handelt es sich bei dem
|
|
Prozessor um einen MMX-kompatiblen Prozessor. Der folgende Programmausschnitt
|
|
stellt den Teil der CPU-Identifikation dar, der das Vorhandensein eines
|
|
MMX-Prozessors feststellt.</P>
|
|
|
|
<FONT COLOR="#0000FF"><PRE> mov eax,1 ; Feature Flag abfragen
|
|
CPUID ; CPUID-Befehl ausführen
|
|
test edx,00800000h ; Bit 23 in edx gesetzt ?
|
|
jnz MMX_kompatible ; Ja ==> Prozessor ist MMX-kompatible</PRE></FONT>
|
|
|
|
<P>Eine komplette Routine, um einen MMX-kompatiblen Prozessor zu identifizieren,
|
|
befindet sich unter <A HREF="../code/mmx_test.asm">mmx_test.asm</A>. Diese
|
|
Routine wird im C-Programm <A HREF="../code/mmx_test.c">mmx_test.c</A>
|
|
aufgerufen und in Abhängigkeit des Rückgabewertes der Funktion ein
|
|
String ausgegeben. Für die Compilierung bzw. Assemblierung des
|
|
Quellcodes wird WATCOM C, Version 10.0 oder höher benötigt.</P>
|
|
|
|
<P>Konnte das Vorhandensein eines MMX-Prozessors bestätigt werden, so steht
|
|
der Nutzung der MMX-Befehle nichts mehr im Weg. Im folgenden werden die Befehle
|
|
sowie jeweils eine kurze Beschreibung und Beispiele der durchgeführten
|
|
Operationen dargestellt.</P>
|
|
|
|
<!-- wie gehts weiter ------------------------------------------------------>
|
|
<P><HR SIZE=2></P>
|
|
<A HREF="mmx_3.htm" onMouseOver="touch( 'left' );" onMouseOut="release( 'left' );">
|
|
<IMG SRC="../images/arrowl.gif" NAME="left" ALT="zurueck" BORDER=0 ALIGN=LEFT></A>
|
|
|
|
<A HREF="mmx_5.htm" onMouseOver="touch( 'right' );" onMouseOut="release( 'right' );">
|
|
<IMG SRC="../images/arrowr.gif" NAME="right" ALT="weiter" BORDER=0 ALIGN=RIGHT></A>
|
|
|
|
<CENTER>
|
|
<A HREF="index.htm#Erkennung" onMouseOver="touch( 'index' );" onMouseOut="release( 'index' );">
|
|
<IMG SRC = "../images/index.gif" NAME="index" ALT="Zum Index" BORDER=0></A>
|
|
</CENTER>
|
|
<BR>
|
|
|
|
<!-- Adresse --------------------------------------------------------------->
|
|
<HR SIZE=2>
|
|
<ADDRESS>
|
|
Probleme oder Vorschläge zu dieser Webseite, bitte per email an:
|
|
<A HREF="mailto:hohmuth@t-online.de">
|
|
<B>hohmuth@t-online.de</B>
|
|
</A>
|
|
<BR>
|
|
Letzte Änderungen am: 02.01.1999, Jens Hohmuth.
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|