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.