<HTML>
<HEAD>
<TITLE>MMX Erweiterung -- neue Befehle (Logische 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>Logische Befehle</H2></TH>
</FONT>
</TR></TABLE>

<BR>

<TABLE BORDER=2 WIDTH="100%" >
<TR ALIGN=LEFT BGCOLOR="#000080">
<TH ALIGN=LEFT>
<FONT COLOR="#C0C0FF">

<A NAME="PAND">
<U>PAND</U> register, memory/register -- ge<U>P</U>acktes
Verkn&uuml;pfen durch <U>AND</U>
</A>

</FONT>
</TH>
</TR></TABLE>

<P>Der PAND-Befehl verkn&uuml;pft den gesamten 64-Bit
breiten Quelloperanden bitweise durch eine UND-Verkn&uuml;pfung
mit dem Zieloperanden. Das Ergebnis dieser Verkn&uuml;pfung
befindet sich nach dem Befehl im Zieloperanden.</P>

<FONT COLOR="#0000FF"><PRE>
        MM0= 0370 0020 01A1 E2F2h
        (= 0000 0011 0111 0000 0000 0000 0010 0000 0000 0001 1010 0001 1110 0010 1111 0010b)

        MM1= 0123 4567 89AB CDEFh
        (= 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111b)

        PAND MM0, MM1

        Ergebnis in MM0= 0120 0020 01A1 C0E2h
        (= 0000 0001 0010 0000 0000 0000 0010 0000 0000 0001 1010 0001 1100 0000 1110 0010b)
</PRE></FONT>

<TABLE BORDER=2 WIDTH="100%" >
<TR ALIGN=LEFT BGCOLOR="#000080">
<TH ALIGN=LEFT>
<FONT COLOR="#C0C0FF">

<A NAME="PANDN">
<U>PANDN</U> register, memory/register --
</A>

</FONT>
</TH>
</TR></TABLE>

<P>Der PANDN-Befehl arbeitet in zwei Schritten. In einem ersten
Schritt wird der Zieloperand bitweise negiert. Damit wird aus jeder
1 eine 0 und umgekehrt. In einem zweiten Schritt wird das Ergebnis
dieser Negation mit dem Quelloperanden bitweise UND-verkn&uuml;pft
und im Zieloperanden gespeichert.</P>

<FONT COLOR="#0000FF"><PRE>
       MM0= 0370 0020 01A1 E2F2h
       (= 0000 0011 0111 0000 0000 0000 0010 0000 0000 0001 1010 0001 1110 0010 1111 0010b)

       MM1= 0123 4567 89AB CDEFh
       (= 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111b)

       PANDN MM0, MM1

       ; Negation von MM0 im ersten Schritt ergibt

       (= 1111 1100 1000 1111 1111 1111 1101 1111 1111 1110 0101 1110 0001 1101 0000 1101b)

       ; Verkn&uuml;pfung von Negation-MM0 mit MM1 ergibt Ergebnis in MM0

       MM0= 0003 4547 880A 0D0Dh
       (= 0000 0000 0000 0011 0100 0101 0100 0111 1000 1000 0000 1010 0000 1101 0000 1101b)
</PRE></FONT>

<TABLE BORDER=2 WIDTH="100%" >
<TR ALIGN=LEFT BGCOLOR="#000080">
<TH ALIGN=LEFT>
<FONT COLOR="#C0C0FF">

<A NAME="POR">
<U>POR</U> register, memory/register -- ge<U>P</U>acktes
verkn&uuml;pfen mit <U>OR</U> (Oder-Verkn&uuml;pfung)
</A>

</FONT>
</TH>
</TR></TABLE>

<P>Der POR-Befehl verkn&uuml;pft den gesamten 64 Bit breiten
Quelloperanden bitweise durch eine ODER-Verkn&uuml;pfung mit
dem Zieloperanden. Das Ergebnis dieser Verkn&uuml;pfung befindet
sich nach dem Befehl im Zieloperanden.</P>

<FONT COLOR="#0000FF"><PRE>
        MM0= 0370 0020 01A1 E2F2h
        (= 0000 0011 0111 0000 0000 0000 0010 0000 0000 0001 1010 0001 1110 0010 1111 0010b)

        MM1= 0123 4567 89AB CDEFh
        (= 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111b)

        POR MM0, MM1

        Ergebnis in MM0= 0373 4567 89AB EFFFh
        (= 0000 0011 0111 0011 0100 0101 0110 0111 1000 1001 1010 1011 1110 1111 1111 1111b)
</PRE></FONT>

<TABLE BORDER=2 WIDTH="100%" >
<TR ALIGN=LEFT BGCOLOR="#000080">
<TH ALIGN=LEFT>
<FONT COLOR="#C0C0FF">

<A NAME="PXOR">
<U>PXOR</U> register, memory/register -- ge<U>P</U>acktes
verkn&uuml;pfen mit <U>XOR</U> (Exklusive-Oder-Verkn&uuml;pfung)
</A>

</FONT>
</TH>
</TR></TABLE>

<P>Der PXOR-Befehl verkn&uuml;pft den gesamten 64 Bit breiten
Quelloperanden bitweise durch eine Exklusive-ODER-Verkn&uuml;pfung
(XOR) mit dem Zieloperanden. Das Ergebnis der Verkn&uuml;pfung
befindet sich nach dem Befehl im Zieloperanden.</P>

<FONT COLOR="#0000FF"><PRE>
        MM0= 0370 0020 01A1 E2F2h
        (= 0000 0011 0111 0000 0000 0000 0010 0000 0000 0001 1010 0001 1110 0010 1111 0010b)

        MM1= 0123 4567 89AB CDEFh
        (= 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111b)

        PXOR MM0, MM1

        Ergebnis in MM0= 0253 4547 880A 2F1Dh
        (= 0000 0010 0101 0011 0100 0101 0100 0111 1000 1000 0000 1010 0010 1111 0001 1101b)
</PRE></FONT>

<!-- wie gehts weiter ------------------------------------------------------>
<P><HR SIZE=2></P>
<A HREF="mmx_8.htm" onMouseOver="touch( 'left' );" onMouseOut="release( 'left' );">
<IMG SRC="../images/arrowl.gif" NAME="left" ALT="zurueck" BORDER=0 ALIGN=LEFT></A>

<A HREF="mmx_10.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&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>