Um programa escrito em Delphi para inverter a ordem dos 4 bytes apontados pelo ponteiro x:
função toulong(x: pchar): longWord;
começar
resultado: = (palavra longa (x ^) shl 24) ou
(palavra longa((x + 1)^) shl 16) ou
(palavra longa((x + 2)^) shl 8) ou
(palavra longa((x + 3)^));
fim;
A seguir está o método de montagem incorporado usando Delphi:
função toulong(x: pchar): palavra longa;
asm
mov esi,eax
machado mov,[esi]
xchg ah, al
shl eax,16
machado mov,[esi+2]
xchg ah, al
fim;
Nota: Por padrão, o Delphi usa o método "registrar". Se os parâmetros estiverem dentro de 3,
eax, edx e ecx serão usados respectivamente, e a pilha será usada para mais de 3 parâmetros. parâmetros de retorno
O armazenamento depende do comprimento. Por exemplo, 8 bits usa al para retornar, 16 bits usa ax, 32 bits usa eax e 64 bits usa dois.
Registro de 32 bits edx:eax, onde eax é o bit mais baixo.
Eficiência: Neste exemplo, ASM é cerca de 50% mais rápido que Delphi ou C.