Faudrait regarder dans la référence X86 pour voir comment se convertissent l'un et l'autre. Dans une vie antérieure, je codais en ASM68k directement en langage machine avec le bouquin à côté, ça doit être possible de trouver la même chose en X86 (me contentais de l'assembleur avec cui-là).
Pour le xor plus rapide que le mov, électroniquement, ça s'explique certainement assez facilement. Le xor ne fait qu'inverser des bits, le mov va chopper une zone mémoire et va la mettre à un endroit donner, certainement en faisant un tas de contrôles jolis et mignons.