Frage von JCK2000, 17

Wie kann man mit AssemblerAssembler(nasm) ein Fenster auf Linux erstellen?

Antwort
von TeeTier, 11

Das kannst du, indem du irgendeine Bibliothek für grafische Oberflächen benutzt. Zum Beispiel Qt oder GTK.

Suche bei Google am besten nach "nasm gtk" oder ähnlichem. Dabei wirst du schnell fündig werden.

Du musst dir dann nur noch Bezeichner, Konstanten und andere magische Werte aus den Original-Headern lutschen, und in deinen Assembler-Code einbauen.

Kleiner Tipp: Schreibe einfach ein kleines Mini-Programm in C oder C++ mit dem grafischen Toolkit deiner Wahl, und disassembliere die resultierende ELF Datei mithilfe von objdump, zum Beispiel:

objdump -d -Mintel -C -j .text prog.elf > disasm.s

Das dissassembliert (-d) dir die text-Section (-j) der binary "prog.elf" mit Intel-Syntax (-M) wobei C++-Bezeichner (-C) aufgelöst werden und schreibt das Disassemblat in "disasm.s".

Dort suchst du nach dem Einstiegspunkt ...

00000000004006cd <main>:

... und hangelst dich dann von dort aus durch, bis du genau siehst, welche Funktionen mit welchen Parametern aufgerufen werden. Das ist eine relativ stressfreie Methode, um zumindest am Anfang schnell an die gewünschten Infos zu kommen.

Viel Spaß! :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten