c code:
        a^=b^=a^=b;
as compiled by gcc:
        movl -4(%ebp),%eax
        xorl -8(%ebp),%eax
        movl %eax,%edx
        movl %edx,-4(%ebp)
        movl %edx,%eax
        xorl -8(%ebp),%eax
        movl %eax,%edx
        movl %edx,-8(%ebp)
        xorl %edx,-4(%ebp)
alternatively:
        register int c;
        c=a; a=b; b=c;
as compiled by gcc:
        movl -4(%ebp),%eax
        movl -8(%ebp),%edx
        movl %edx,-4(%ebp)
        movl %eax,-8(%ebp)
sorry.