Un programme écrit en Delphi pour inverser l'ordre des 4 octets pointés par le pointeur x :
fonction toulong(x: pchar): motlong;
commencer
résultat := (mot long(x^) shl 24) ou
(mot long((x + 1)^) shl 16) ou
(mot long((x + 2)^) shl 8) ou
(mot long((x + 3)^));
fin;
Voici la méthode d'assemblage embarqué utilisant Delphi :
fonction toulong(x: pchar) : mot long ;
asme
mouvement esi, eax
hache mov,[esi]
xchg ah,al
shl eax,16
hache de déplacement,[esi+2]
xchg ah,al
fin;
Remarque : Par défaut, Delphi utilise la méthode "register". Si les paramètres sont compris entre 3,
eax, edx et ecx seront utilisés respectivement, et la pile sera utilisée pour plus de 3 paramètres. paramètres de retour
Le stockage dépend de la longueur. Par exemple, 8 bits utilise al pour renvoyer, 16 bits utilise ax, 32 bits utilise eax et 64 bits en utilise deux.
Registre 32 bits edx:eax, où eax est le bit faible.
Efficacité : dans cet exemple, ASM est environ 50 % plus rapide que Delphi ou C.