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
Python + Assembler ?
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.
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.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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.
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.
Inline-Assembler ist iirc nicht Bestandteil des C-Sprachstandards, sondern eine Compiler-Erweiterung. __asm__ wird nur vom gcc unterstützt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
Man könnte auch mit `ctypes` auf GNU lightning zugreifen.