Un programa escrito en Delphi para invertir el orden de los 4 bytes señalados por el puntero x:
función toulong(x: pchar): palabra larga;
comenzar
resultado := (palabra larga(x^) shl 24) o
(palabra larga((x + 1)^) shl 16) o
(palabra larga((x + 2)^) shl 8) o
(palabra larga((x + 3)^));
fin;
El siguiente es el método de ensamblaje integrado usando Delphi:
función toulong(x: pchar): palabra larga;
ENSAMBLE
mov esi, eax
mov hacha,[esi]
xchg ah,al
shl eax, 16
mov hacha,[esi+2]
xchg ah,al
fin;
Nota: De forma predeterminada, Delphi utiliza el método "registro" si los parámetros están dentro de 3,
Se utilizarán eax, edx y ecx respectivamente, y la pila se utilizará para más de 3 parámetros. parámetros de retorno
El almacenamiento depende de la longitud. Por ejemplo, 8 bits usa al para regresar, 16 bits usa ax, 32 bits usa eax y 64 bits usa dos.
Registro de 32 bits edx:eax, donde eax es el bit bajo.
Eficiencia: en este ejemplo, ASM es aproximadamente un 50% más rápido que Delphi o C.