9.15 Transposition operator

  ----------------------------

 

      C-- has a transposition operator, which is not found in other

  languages. This operator transposes the contents of two variables and is

  indicated by ><. The variables must both have the same number of bits -

  whether 8, 16, or 32.

 

      A few examples:

 

      AX >< BX; // saves the value of BX in AX and of AX in BX

      CH >< BL; // interchanges the contents of registers CH and BL

      dog >< cat; /* interchanges the values of variables dog and cat

      counter >< CX; // interchanges the values of variable counter and

                 //     register CX

 

      Transposition between two 8-bit variables in memory causes the contents

  of register AL to be destroyed. Transposition between two 16-bit variables

  in memory causes the contents of AX to be destroyed. Transposition between

  two 32-bit variables in memory causes the contents of EAX to be destroyed.

  In all other transpositions, such as between a variable in memory and a

  register, the values of all registers are saved.