Revision 1 of 1, by Trev on 2-9-2020. The page as it is now.
Asm/de
Zurück zu den reservierten Wörtern.
Das reservierte Wort Asm gehört zum Inline Assembler. Es leitet im Pascalcode einen Abschnitt mit Assemblercode ein.
Beispiel, wie der Assemblercode im Programm aufgerufen wird:
asm// Hier steht der Assemblercode
// Hier steht der Assemblercode
END;Beispiel für die Verwendung von Inline Assembler:
var
intWert: Integer;
intErgebnis : Integer;
begin
intWert := ...;
// Wird von Lazarus / Free Pascal bei Intel x86 Prozessoren benötigt:
{$ASMMODE intel}
asm// weist dem Register EAX den Wert der Variablen intWert zu// addiere den Binärwert 110 (der entsprechende Dezimalwert ist 6)// subtrahiere den Dezimalwert 2// weist der Variablen intErgebnis den Inhalt des Registers EAX zu
MOV EAX, intWert // weist dem Register EAX den Wert der Variablen intWert zu
ADD EAX, 110B // addiere den Binärwert 110 (der entsprechende Dezimalwert ist 6)
SUB EAX, 2 // subtrahiere den Dezimalwert 2
MOV intErgebnis, EAX // weist der Variablen intErgebnis den Inhalt des Registers EAX zu
END;
... := IntToStr(intErgebnis);
end;Beispiel für reine Assembler-Procedure/Function:
{$ASMMODE intel}
procedure nop; assembler;
asm
nop
END;From the Free Pascal wiki, page "Asm/de", as it stood on 2020-02-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
