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

<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&auml;higkeit eines Prozessors erfolgt &uuml;ber
den CPUID-Befehl. Dieser Befehl existiert auf allen Pentium-Prozessoren und
dient der Ermittlung des Rechnertyps. &Uuml;ber den CPUID-Befehl ist es
m&ouml;glich, eine Reihe von Eigenschaften des Prozessors zu ermitteln. Hier
soll jedoch nur der Teil des Befehls besprochen werden, der f&uuml;r die Erkennung
eines MMX-Prozessors notwendig ist. Ruft man den CPUID-Befehl mit dem Wert 1
im EAX-Register auf, dann kann &uuml;ber Bit 23 des EDX-Registers die
MMX-Kompatibilit&auml;t &uuml;berpr&uuml;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&uuml;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&auml;ngigkeit des R&uuml;ckgabewertes der Funktion ein
String ausgegeben. F&uuml;r die Compilierung bzw. Assemblierung des
Quellcodes wird WATCOM C, Version 10.0 oder h&ouml;her ben&ouml;tigt.</P>
<P>Konnte das Vorhandensein eines MMX-Prozessors best&auml;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&uuml;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&auml;ge zu dieser Webseite, bitte per email an:
<A HREF="mailto:hohmuth@t-online.de">
<B>hohmuth@t-online.de</B>
</A>
<BR>
Letzte &Auml;nderungen am: 02.01.1999, Jens Hohmuth.
</ADDRESS>
</BODY>
</HTML>