Ein in Delphi geschriebenes Programm, um die Reihenfolge der 4 Bytes umzukehren, auf die der x-Zeiger zeigt:
Funktion toulong(x: pchar): longWord;
beginnen
Ergebnis := (longword(x^) shl 24) oder
(longword((x + 1)^) shl 16) oder
(longword((x + 2)^) shl 8) oder
(Langwort((x + 3)^));
Ende;
Das Folgende ist die eingebettete Assembly-Methode mit Delphi:
Funktion toulong(x: pchar): Langwort;
asm
mov esi,eax
mov axt,[esi]
xchg ah,al
shl eax,16
mov axt,[esi+2]
xchg ah,al
Ende;
Hinweis: Standardmäßig verwendet Delphi die Methode „register“. Wenn die Parameter innerhalb von 3 liegen,
Es werden jeweils eax, edx und ecx verwendet, und der Stapel wird für mehr als 3 Parameter verwendet. Rückgabeparameter
Der Speicher hängt von der Länge ab. Beispielsweise verwendet 8-Bit al zur Rückgabe, 16-Bit verwendet ax, 32-Bit verwendet eax und 64-Bit verwendet zwei.
32-Bit-Register edx:eax, wobei eax das niederwertige Bit ist.
Effizienz: In diesem Beispiel ist ASM etwa 50 % schneller als Delphi oder C.