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.
294 lines
9.8 KiB
HTML
294 lines
9.8 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>MMX Erweiterung -- neue Befehle (Schiebe-Befehle)</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">
|
|
<TABLE BORDER=2 WIDTH="100%" >
|
|
<TR ALIGN=LEFT BGCOLOR="#800000">
|
|
<TH ALIGN=LEFT>
|
|
<FONT COLOR="#FF8080">
|
|
<H2>Schiebe-Befehle</H2>
|
|
</FONT>
|
|
</TH>
|
|
</TR></TABLE>
|
|
|
|
<BR>
|
|
|
|
<TABLE BORDER=2 WIDTH="100%" >
|
|
<TR ALIGN=LEFT BGCOLOR="#000080">
|
|
<TH ALIGN=LEFT>
|
|
<FONT COLOR="#C0C0FF">
|
|
|
|
<A NAME="PSLLW">
|
|
<U>PSLLW</U> register, memory/register -- Logisches
|
|
(<U>L</U>ogical) nach Links Schieben (<U>S</U>hift-<U>L</U>eft)
|
|
von ge<U>P</U>ackten <U>W</U>ord-Datenelementen um die angegebene
|
|
Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
<A NAME="PSLLD">
|
|
<U>PSLLD</U> register, memory/register -- Logisches
|
|
(<U>L</U>ogical) nach Links Schieben (<U>S</U>hift-<U>L</U>eft)
|
|
von ge<U>P</U>ackten <U>D</U>oubleword-Datenelementen um die
|
|
angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
<A NAME="PSLLQ">
|
|
<U>PSLLQ</U> register, memory/register -- Logisches
|
|
(<U>L</U>ogical) nach Links Schieben (<U>S</U>hift-<U>L</U>eft)
|
|
des <U>Q</U>uadwords um die angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
</FONT>
|
|
</TH>
|
|
</TR></TABLE>
|
|
|
|
<P>Die PSLL-Befehle schieben die Bits der gepackten Datenelemente
|
|
des Zieloperanden um die im zweiten Operanden (Quelloperand)
|
|
angegebene Anzahl Binärstellen nach links. Von rechts werden
|
|
dabei 0-Bits nachgeschoben. Das Ergebnis der Verschiebung befindet
|
|
sich im Zieloperanden.</P>
|
|
|
|
<P><B>Anmerkungen:</B></P>
|
|
|
|
<UL>
|
|
<LI>Ist die Anzahl der zu verschiebenen Binärstellen zur
|
|
Entwicklungszeit der Routine bekannt, nicht größer als
|
|
8-Bit und konstant, so kann auch eine Variante der Befehle benutzt
|
|
werden. Diese Variante erwartet als Quelloperanden die Anzahl der
|
|
Verschiebungen als direkten Wert, zum Beispiel: PSLLD MM0, 8. Diese
|
|
Form der Verschiebung funktioniert auf die gleiche Weise mit allen
|
|
unterstützen Verschiebe-Befehlen.</LI>
|
|
|
|
<LI>Die Verschiebung erfolgt nicht über die Grenzen der
|
|
Datenelemente hinaus.</LI>
|
|
</UL>
|
|
|
|
<P>Der PSLLW-Befehl verschiebt die vier gepackten Word-Datenelemente
|
|
des Zieloperanden um die Anzahl Binärstellen nach links, die im
|
|
Quelloperanden angegeben wird. Soll um mehr als 15 Stellen verschoben
|
|
werden, so wird der Zieloperand auf den Wert 0 gesetzt.</P>
|
|
|
|
<P>Der PSLLD-Befehl verschiebt die gepackten Doubleword-Datenelemente
|
|
des Zieloperanden um die Anzahl Binärstellen nach Links, die im
|
|
Quelloperanden angegeben wird. Soll um mehr als 31 Stellen verschoben
|
|
werden, so wird der Zieloperand auf den Wert 0 gesetzt.</P>
|
|
|
|
<P>Der PSLLQ-Befehl verschiebt das Quadword im Zieloperanden um die
|
|
Anzahl Binärstellen nach links, die im Quelloperanden angegeben
|
|
wird. Soll um mehr als 63 Stellen verschoben werden, so wird der
|
|
Zieloperand auf den Wert 0 gesetzt.</P>
|
|
|
|
<FONT COLOR="#0000FF"><PRE>
|
|
MM0= 0305 A280 1005 FFFFh
|
|
(= 0000 0011 0000 0101 1010 0010 1000 0000 0001 0000 0000 0101 1111 1111 1111 1111b)
|
|
|
|
MM1= 1
|
|
|
|
PSLLW MM0, MM1
|
|
|
|
Ergebnis in MM0= 060A 4500 200A FFFEh
|
|
(= 0000 0110 0000 1010 0100 0101 0000 0000 0010 0000 0000 1010 1111 1111 1111 1110b)
|
|
</PRE></FONT>
|
|
|
|
<TABLE BORDER=2 WIDTH="100%" >
|
|
<TR ALIGN=LEFT BGCOLOR="#000080">
|
|
<TH ALIGN=LEFT>
|
|
<FONT COLOR="#C0C0FF">
|
|
|
|
<A NAME="PSRLW">
|
|
<U>PSRLW</U> register, memory/register -- Logisches (<U>L</U>ogical)
|
|
nach Rechts Schieben (<U>S</U>hift-<U>R</U>ight) von ge<U>P</U>ackten
|
|
<U>W</U>ord-Datenelementen um die angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
<A NAME="PSRLD">
|
|
<U>PSRLD</U> register, memory/register -- Logisches (<U>L</U>ogical)
|
|
nach Rechts Schieben (<U>S</U>hift-<U>R</U>ight) von ge<U>P</U>ackten
|
|
<U>D</U>oubleword-Datenelementen um die angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
<A NAME="PSRLQ">
|
|
<U>PSRLQ</U> register, memory/register -- Logisches (<U>L</U>ogical)
|
|
nach Rechts Schieben (<U>S</U>hift-<U>R</U>ight) des
|
|
<U>Q</U>uadwords um die angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
</FONT>
|
|
</TH>
|
|
</TR></TABLE>
|
|
|
|
<P>Die PSRL-Befehle schieben die Bits der gepackten Datenelemente des
|
|
Zieloperanden um die im zweiten Operanden (Quelloperand) angegebene
|
|
Anzahl Binärstellen nach rechts. Von links werden dabei 0-Bits
|
|
nachgeschoben. Das Ergebnis der Verschiebung befindet sich im
|
|
Zieloperanden.</P>
|
|
|
|
<P>Der PSRLW-Befehl verschiebt die vier gepackten Word-Datenelemente
|
|
des Zieloperanden um die Anzahl Binärstellen nach rechts, die im
|
|
Quelloperanden angegeben wird. Soll um mehr als 15 Stellen verschoben
|
|
werden, so wird der Zieloperand auf den Wert 0 gesetzt.</P>
|
|
|
|
<P>Der PSRLD-Befehl verschiebt die gepackten Doubleword-Datenelemente
|
|
des Zieloperanden um die Anzahl Binärstellen nach rechts, die im
|
|
Quelloperanden angegeben wird. Soll um mehr als 31 Stellen verschoben
|
|
werden, so wird der Zieloperand auf den Wert 0 gesetzt.</P>
|
|
|
|
<P>Der PSRLQ-Befehl verschiebt das Quadword im Zieloperanden um die
|
|
Anzahl Binärstellen nach rechts, die im Quelloperanden angegeben
|
|
wird. Soll um mehr als 63 Stellen verschoben werden, so wird der
|
|
Zieloperand auf den Wert 0 gesetzt.</P>
|
|
|
|
<FONT COLOR="#0000FF"><PRE>
|
|
MM0= 0305 A280 1005 FFFFh
|
|
(= 0000 0011 0000 0101 1010 0010 1000 0000 0001 0000 0000 0101 1111 1111 1111 1111b)
|
|
|
|
MM1= 1
|
|
|
|
PSRLW MM0, MM1
|
|
|
|
Ergebnis in MM0= 0182 5140 0802 7FFFh
|
|
(= 0000 0001 1000 0010 0101 0001 0100 0000 0000 1000 0000 0010 0111 1111 1111 1111b)
|
|
</PRE></FONT>
|
|
|
|
<TABLE BORDER=2 WIDTH="100%" >
|
|
<TR ALIGN=LEFT BGCOLOR="#000080">
|
|
<TH ALIGN=LEFT>
|
|
<FONT COLOR="#C0C0FF">
|
|
|
|
<A NAME="PSRAW">
|
|
<U>PSRAW</U> register, memory/register -- <U>A</U>rithmetisches nach
|
|
Rechts Schieben (<U>S</U>hift-<U>R</U>ight) von ge<U>P</U>ackten
|
|
<U>W</U>ord-Datenelementen um die angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
<A NAME="PSRAD">
|
|
<U>PSRAD</U> register, memory/register -- <U>A</U>rithmetisches nach
|
|
Rechts Schieben (<U>S</U>hift-<U>R</U>ight) von ge<U>P</U>ackten
|
|
<U>D</U>oubleword-Datenelementen um die angegebene Anzahl Binärstellen<BR>
|
|
</A>
|
|
|
|
</FONT>
|
|
</TH>
|
|
</TR></TABLE>
|
|
|
|
<P>Die PSRA-Befehle schieben die Bits der gepackten Datenelemente
|
|
des Zieloperanden um die im zweiten Operanden (Quelloperand) angegebene
|
|
Anzahl Binärstellen nach rechts. Von links werden dabei 0-Bits
|
|
nachgeschoben. Dabei wird das Vorzeichen des Zieloperanden nicht
|
|
beeinflußt, d.h. die gepackten Werte im Zieloperanden besitzen
|
|
nach der Verschiebung das gleiche Vorzeichen wie vor der Verschiebung.
|
|
Das Ergebnis der Verschiebung befindet sich im Zieloperanden.</P>
|
|
|
|
<P>Der PSRAW-Befehl verschiebt die vier vorzeichenbehafteten, gepackten
|
|
Word-Datenelemente des Zieloperanden um die Anzahl Binärstellen nach
|
|
rechts, die im Quelloperanden angegeben wird. Soll um mehr als 15 Stellen
|
|
verschoben werden, so wird der Zieloperand in Abhängigkeit des
|
|
Vorzeichenbits auf den Wert 0 (positiv) oder -1 (=FFFFh) (negativ)
|
|
gesetzt.</P>
|
|
|
|
<P>Der PSRAD-Befehl verschiebt die vorzeichenbehafteten, gepackten
|
|
Doubleword-Datenelemente des Zieloperanden um die Anzahl Binärstellen
|
|
nach rechts, die im Quelloperanden angegeben wird. Soll um mehr als 31
|
|
Stellen verschoben werden, so wird der Zieloperand in Abhängigkeit
|
|
des Vorzeichenbits auf den Wert 0 (positiv) oder -1 (=FFFFh) (negativ)
|
|
gesetzt.</P>
|
|
|
|
<FONT COLOR="#0000FF"><PRE>
|
|
MM0= 0305 A280 1005 FFFFh
|
|
(= 0000 0011 0000 0101 1010 0010 1000 0000 0001 0000 0000 0101 1111 1111 1111 1111b)
|
|
|
|
MM1= 1
|
|
|
|
PSRAW MM0, MM1
|
|
|
|
Ergebnis in MM0= 0182 D140 0802 FFFFh
|
|
(= 0000 0001 1000 0010 1101 0001 0100 0000 0000 1000 0000 0010 1111 1111 1111 1111b)
|
|
</PRE></FONT>
|
|
|
|
<!-- wie gehts weiter ------------------------------------------------------>
|
|
<P><HR SIZE=2></P>
|
|
<A HREF="mmx_10.htm" onMouseOver="touch( 'left' );" onMouseOut="release( 'left' );">
|
|
<IMG SRC="../images/arrowl.gif" NAME="left" ALT="zurueck" BORDER=0 ALIGN=LEFT></A>
|
|
|
|
<A HREF="mmx_12.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#Befehle" 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>
|