Je souhaitai vous faire connaître une astuce en assembleur, qui ne vous sera pas utile en Purebasic avec le jeu d'instructions aussi complet que ceux des pentiums, mais qui ne laisse pas indifférent sur l'astuce employée.
Il est donc possible de permuter le contenu de 2 registres sans l'usage d'un 3 ème registre, par le biais de 3 opérateurs logiques XOR.

Code : Tout sélectionner
; OPTIONS DE COMPILATION + ACTIVER L'ASSEMBLEUR EN LIGNE
PROCEDURE.L TEST_XOR(a.l,b.l)
MOV EAX,a ; 14 % 00001110
MOV EBX,b ; 59 % 00111011
XOR EAX,EBX ; 53 % 00110101
XOR EBX,EAX ; 14 % 00001110
XOR EAX,EBX ; 59 % 00111011
; MOV EAX,EBX ; 14 % 00001110 : EAX=EBX
PROCEDURERETURN ; RETOURNE LE CONTENU DE EAX
ENDPROCEDURE
PROCEDURE.L TEST_XCHG(a.l,b.l)
MOV EAX,a ; 14 % 00001110
MOV EBX,b ; 59 % 00111011
XCHG EAX,EBX ; 59 % 00111011
; MOV EAX,EBX ; 14 % 00001110 : EAX=EBX
PROCEDURERETURN ; RETOURNE LE CONTENU DE EAX
ENDPROCEDURE
DEBUG TEST_XOR(14,59)
DEBUG TEST_XCHG(14,59)