Assembler-Code mit Python ausführen

Ich möchte Montage-Code in einem Python-Skript ausführen. Ist das möglich?

In C-Programmierung wäre so

  • Wie schreibe ich Python-Erweiterungen in reiner asm und wäre es effizient?
  • Numpy around / rint langsam im Vergleich zu astype (int)
  • Wie kann ich den Mod-Operator in MIPS korrekt verwenden?
  • static inline getesp(){ __asm__("mov %esp, %eax"); } 

    Aber wie kann man das mit Python machen? Ist es möglich?

  • Fehler beim Versuch, MySQL mit sqlalchemy (Flask) zu verbinden
  • Python SQL-Funktion, Abfrage, um Daten nach Minuten zu gruppieren
  • Listenindex außerhalb des zulässigen Bereichs?
  • Wie implementiere ich die Klausel in sqlite django ORM
  • Python 2.7.3 _sqlite3-Modul wird nicht nach dem Übergeben von Header / Bibliotheken gebaut
  • Mit "executemany" können Sie Einträge in einer vorhandenen SQLite3-Datenbank aktualisieren (mit Python sqlite3)
  • 7 Solutions collect form web for “Assembler-Code mit Python ausführen”

    Eine Möglichkeit, die Sie dies tun könnten, wäre, eine (C) Erweiterung für Python zu schreiben. Sie können sich diese Dokumentation anschauen, um ausführliche Informationen darüber zu erhalten.

    Eine weitere Möglichkeit, C-basierte Python-Erweiterungen zu entwickeln, wäre die direkte Anbindung an eine externe Bibliothek mit dem Modul ctypes .

    In jedem Fall brauchst du einen C-Code, der entweder in eine Bibliothek oder eine Erweiterung kompiliert wurde und eine Möglichkeit, ihn von Python zu nennen. Klar für das, was Sie erreichen wollen, ist wahrscheinlich nicht optimal, aber eigentlich ist es nicht so viel Arbeit, um ein paar Funktionen auszusetzen.

    Sie können das CorePy Paket CorePy , das hier erhältlich ist . Um es auf einem amd64 zu verwenden, zB nach der Dokumentation:

     # Load the x86_64 instructions and environment >>> import corepy.arch.x86_64.isa as x86 >>> import corepy.arch.x86_64.platform as x86_env Platform: linux.spre_linux_x86_64_64 # Create a simple synthetic program >>> code = x86_env.InstructionStream() >>> code.add(x86.mov(code.gp_return, rsp)) # Execute the synthetic program >>> proc = x86_env.Processor() >>> result = proc.execute(code, mode='int') >>> print result <rsp value will be here> 

    Sie können die Montage direkt in Ihr Python-Programm einbetten:

    Diese Arbeiten, indem sie die Zusammenstellung kompilieren und zur Laufzeit in den ausführbaren Speicher laden. Die ersten beiden Projekte implementieren x86 Assemblers in Python, während die letzten ruft zu einem externen Compiler.

    Sorry für necroposting aber ich denke, dass Sie Ihre eigene DLL mit asm schreiben und nennen können, ist es Funktionen aus Python.

    In der Theorie könnten Sie:

    1. Schreiben Sie eine einfache Funktion in C, die die Assembly aufruft
    2. Verwenden Sie Cython oder Pyrex , um diese Funktion von Python aufzurufen

    Ich muss zugeben, dass ich weder Pyrex noch Cython benutzt habe, aber sie könnten in der Lage sein, das zu tun, was man braucht, ohne auf die Mühe zu gehen, eine voll geblasene C-Erweiterung zu schreiben.

    Es ist sehr möglich, dass ich einen kleinen Assembler in Python gemacht habe, einige der Bibliotheken, die ich verwendet habe, haben vielleicht Ctypes unterstützt, aber ich habe reine Python verwendet, die meisten Sprachen funktionieren tatsächlich auf einem niedrigen Niveau. Wir verwenden einfach die HLL Langage Features und nicht bezahlen Angemessene Aufmerksamkeit auf, wie der Code verarbeitet wird, habe ich auch eine kleine POC Bildbearbeitungs-App in Visual Basic geschrieben, die ASM x86 Code verwendet Ich bin nicht wirklich sicher, wie man das bearbeiten kann, was ich versuchte zu sagen. Außer vielleicht Funktionen, die den Asm-Code lesen und aus dem Skript selbst arbeiten. Ich glaube, meine Gedanken wurden darauf hingewiesen, dass ich falsch war ASM-Code kann durch die Verwendung von scripted Funktionen ausgeführt werden, die diesen Bereich des Codes lesen und kompilieren. Fast so, als wäre es ein eingebauter Assembler. Ich versuche zu helfen, nicht so toll ein Sprecher aber (oder Schriftsteller in diesem Fall wie es sein kann) diese Seite hier vielleicht in der Lage, besser zu erklären, was ich versuche zu sagen, http://code.activestate.com/recipes/579037- How-to-execute-x86-64-bit-assembly-code-direkt-f /

    Python unterstützt diese Art von Low-Level-Hardware-Interaktion nicht.

    Python ist die beste Programmiersprache der Welt.