NASM Ausführbare Datei unter Windows 7 64Bit



  • Hallo ich habe bis jetzt nur nasm Files unter Linux kompiliert. Jetzt habe ich mir Nasm unter Windows 7 64Bit installiert und komm zu keiner Wirklichen ausführbaren Datei.

    nasm dateiname.nasm -f bin -o dateiname.exe --> kommt nix gescheites heraus

    Kann mir jemand sagen wie ich Ausführbare exe Dateien erstellen kann welche only 64Bit sind oder halt 32Bit und auch unter 64Bit laufen? ⚠



  • Steht im Wesentlichen im NASM Manual, section 1.1.1.
    ...

    Ist in Microsofts Welt klassischerweise nicht ganz so intuitiv:
    Um exe-Dateien erstellen zu koennen, musst du zunaechst eine objekt-Datei erzeugen (zB. mit "-f win32" oder "-f win64" fuer 32- oder 64Bit-Windows-Objekt-Dateien) und daraus dann mittels Linker (und zusaetzlichen Libs oder dll-Listen - je nach Linker) eine .exe-Datei. Jeder aktuelle Linker, der Windows-Programme erstellen kann, sollte irgendwo auch mit 64Bit-Objs klar kommen.

    Hast du ansonsten ueberhaupt schon eine Ahnung, wie du an das Schreiben von Windows-Programmen mit der WinAPI und ihren ganzen dlls herangehst?



  • Also einfach nasm dateiname.asm -f win64
    anschließend dann die obj datei mit nem linker wie alink linken?
    weil mit nasm dateiname.asm -f win64 bekomme ich immer nen fehler....



  • Bist du "RGEE"?
    Wusste doch, dass mir die Frage bekannt vorkommt.

    Mit der beschriebenen Methode kannst du zwar 32- oder 64Bit-Windows-Obj-Dateien und damit via Linker auch .exe-Programme erzeugen, aber wie ich bereits erwaehnte, brauchst du dafuer auch extra fuer 64Bit Windows geschriebene Quellcodes. Ich kenne kein Anfaengertutorial, das solche Quellcodes behandelt.

    Alink wurde AFAIK vor 10 Jahren das letzte mal aktualisiert... Vielleicht solltest du dich fuer 64Bit-Programme nach einem aktuelleren Linker umsehen. Ich verwende fuer meine ASM-Spielereien im Moment ganz gern den GoLink Linker von GoAsm (funktioniert natuerlich auch mit von nasm erstellten Objs).



  • Danke für die Antwort, aber nein ich bin fr33g 😉 und nicht RGEE
    Ja die Frage kann dir durchaus bekannt vorkommen, da ich so eine ähnliche ja stellte bzw glaube sogar die gleiche.
    Aber dachte wenn hier nen thread offen ist kann ich ja hier nochmal nachfragen, weil es eben hier so rüber kam als wie man mit -f win64 das Problem lösen kann ohne extra für 64 bit zu schreiben.
    Aber jetzt wurde ich ja eines besseren belehrt;-)
    Gruß freeG



  • Der heißt ja auch im anderen Post fr33g und nicht RGEE! 😕



  • Leichenschänder (Achte mal auf das Datum der Posts).


Anmelden zum Antworten