Seite 1 von 1

Python + Assembler ?

Verfasst: Donnerstag 25. Dezember 2008, 20:32
von jonas
Hi,
kann ich durch irgendein Modul (Inline-)Assemblercode ausführen?
Ich mein das geht ja auch in anderen Hochsprachen...
MfG Jonas
PS: Schöne Restweihnacht ;)

Verfasst: Donnerstag 25. Dezember 2008, 21:31
von lunar
Das geht in den wenigstens verbreiteten Hochsprache. Die einzige Sprache, die ich kenne und die das in der Sprachspezifikation aufführt, ist Delphi. C# und Java können das schon gar nicht, C und C++ auch nur durch Compilererweiterungen.

Bei Python ist das schwierig bis unmöglich. So müsste man überhaupt erstmal einen Assembler für die Zielplattform mitliefern, um den Assemblercode zu assemblieren (ich denke mal nicht, dass du Inline-Assembler interpretieren willst, obwohl das natürlich auch möglich wäre ;) ). Noch schwieriger wäre allerdings die Zuordnung von Python-Objekten zu Assemblerregistern bzw. Speicheradressen.

Verfasst: Donnerstag 25. Dezember 2008, 21:33
von cofi
Wenn du deinen Assemblercode in eine C Extension packst dürfte das am einfachsten gehen.

Was die anderen Hochsprachen angeht würde mir nur C++ einfallen, aber da ist der inline Assambler ein C relikt und keinesfalls Teil der "Hoch"sprache.

Verfasst: Donnerstag 25. Dezember 2008, 21:39
von lunar
Inline-Assembler ist iirc nicht Bestandteil des C-Sprachstandards, sondern eine Compiler-Erweiterung. __asm__ wird nur vom gcc unterstützt.

Verfasst: Freitag 26. Dezember 2008, 00:29
von Leonidas
Ist auch die Frage wozu man sowas braucht. Man kann doch mit ctypes schon schöne Interpreter-Crashes produzieren, da braucht man doch gar nicht auf Assember zurückgreifen.

Verfasst: Freitag 26. Dezember 2008, 14:34
von audax
Geht aber:
CorePy (Site gerade down) kann das.

Verfasst: Freitag 26. Dezember 2008, 21:03
von jonas
Hi Leute,
Leonidas hat geschrieben:Ist auch die Frage wozu man sowas braucht.
Rumprobieren... :D
CorePy werde ich mir mal ansehen, Danke!

MfG Jonas

Verfasst: Samstag 27. Dezember 2008, 00:30
von BlackJack
Neben TurboPascal, FreePascal, und Delphi würden mir noch D und Forth als Hochsprachen einfallen, bei denen es Unterstützung für Assembler gibt. Gehört bei Forth AFAIK nicht zum Standard, ist aber üblich.

Man könnte auch mit `ctypes` auf GNU lightning zugreifen.