x 포인터가 가리키는 4바이트의 순서를 바꾸기 위해 Delphi로 작성된 프로그램:
함수 toulong(x: pchar): longWord;
시작하다
결과 := (longword(x^) shl 24) 또는
(longword((x + 1)^) shl 16) 또는
(longword((x + 2)^) shl 8) 또는
(긴 단어((x + 3)^));
끝;
Delphi를 이용한 임베디드 어셈블리 방법은 다음과 같습니다.
함수 toulong(x: pchar): longword;
asm
mov esi,eax
이동 도끼,[esi]
xchg 아, 알
shl eax,16
이동 도끼,[esi+2]
xchg 아, 알
끝;
참고: 기본적으로 Delphi는 매개변수가 3 이내인 경우 "register" 방법을 사용합니다.
eax, edx, ecx가 각각 사용되며, 스택은 3개 이상의 매개변수에 사용됩니다. 반환 매개변수
저장 공간은 길이에 따라 다릅니다. 예를 들어 8비트는 반환에 al을 사용하고, 16비트는 ax를 사용하고, 32비트는 eax를 사용하고, 64비트는 2를 사용합니다.
32비트 레지스터 edx:eax. 여기서 eax는 하위 비트입니다.
효율성: 이 예에서 ASM은 Delphi 또는 C보다 약 50% 빠릅니다.