NASM Compilierungsproblem



  • piscosterr schrieb:

    du meinst sicher gcc.. oder welche werkzeuge hätte sonst unter linux zu verfügung?

    Ja, gcc, binutils und gdb. Die binutils bestehen aus einer Reihe von Programmen, darunter as, der GNU Assembler...



  • abc.w schrieb:

    Piscosterr: Eine Moeglichkeit waere vielleicht, auf Linux umzusteigen. Da haettest Du keine Probleme mit der Auswahl der Werkzeuge usw... Was meinst Du dazu?

    und dann am besten gleich mit dem zeitgemäßen AT&T-Syntax anfangen 😮

    piscosterr schrieb:

    Ich hät dazu 2 Fragen:
    1. Wie muss ich den Code abändern? Gibts dazu irgendein Tutorial, welche Befehle bei nasm gelten?

    Hier kann man dir bestimmt weiter helfen.

    piscosterr schrieb:

    2.Brauch ich für masm eigentlich Visual Studio oder kann ich den auch in Code Blocks einbinden?

    Assembler und IDE sind zwei verschiedene Sachen – im diesem Fall würde ich dir von beiden abraten (im Bezug auf masm).
    IMO eine der besten IDE's für Assembler (insbesondere für masm) ist RadAsm
    masm kannst du durch das masm32-Package beziehen. Hier ist dann auch schon eine in deinem Fall benötigter 16Bit-Linker dabei.

    Nun weiß ich nicht ob es einen speziellen Grund gibt, warum du mit 16Bit Assembler für DOS anfängst, aber ich würde dir davon generell abraten. Das genannte masm32 SDK ist IMO sehr Anfängerfreundlich und erlaubt es sich leicht in die 32Bit Assemblerprogrammierung unter Windows ein zu arbeiten.

    Hier noch eine Batch (*.bat) die du zum kompilieren brauchst (Voraussetzung masm32 unter C:\ installiert):

    @echo off 
    if not exist %CD%\%~n1.asm goto nofile 
    if exist %CD%\%1.obj del %CD%\%~n1.obj 
    if exist %CD%\%1.exe del %CD%\%~n1.exe 
    
    @echo on 
    C:\masm32\bin\ml.exe %CD%\%~n1.asm 
    C:\masm32\bin\link16.exe %CD%\%~n1.obj,%CD%\%~n1.exe,,,
    @echo off 
    
    goto end 
    
    :nofile 
    echo invalid source file 
    :end 
    pause
    


  • Hey
    erstmal thx für deine Antwort
    @masm

    Nun weiß ich nicht ob es einen speziellen Grund gibt, warum du mit 16Bit Assembler für DOS anfängst, aber ich würde dir davon generell abraten. Das genannte masm32 SDK ist IMO sehr Anfängerfreundlich und erlaubt es sich leicht in die 32Bit Assemblerprogrammierung unter Windows ein zu arbeiten.

    hab mir das Buch Assembler von Reiner Beck gekauft und versuche mit diesem ASM zu lernen

    Assembler und IDE sind zwei verschiedene Sachen – im diesem Fall würde ich dir von beiden abraten (im Bezug auf masm).
    IMO eine der besten IDE's für Assembler (insbesondere für masm) ist RadAsm

    **
    Wie kann ich den masm in diese IDE einfügen, den ich kann irgendwie mein Programm nicht kompilieren?(nur html dateien *lol*)**

    Hier noch eine Batch (*.bat) die du zum kompilieren brauchst (Voraussetzung masm32 unter C:\ installiert):

    Irgendwie funzt die datei bei mir nicht obwohl alles unter C: installiert wurde.

    Hab amal einen Screenshot gemacht 😃 :

    http://www.bilder-space.de/show.php?file=27.01WWvJF0w9qaaO3kS.JPG

    freu mich scho auf deine Antwort
    greetz piscoster



  • piscoster schrieb:

    Wie kann ich den masm in diese IDE einfügen, den ich kann irgendwie mein Programm nicht kompilieren?(nur html dateien *lol*)[/b]

    HTML Dateien? Ich spare mir den Kommentar.

    Wie kannst du "MASM in die IDE einfügen" ... IDE steht für Integrated Development Environment. Eine IDE bietet dir den Komfort Text-Editor, Compiler und Linker in einem Programm zu nutzen.

    "By default" bietet das Visual Studio - meiner Ansicht nach - keine direkte Unterstützung für Assembler (MASM).
    Du kannst aber per Custom Build Rule (z.B.) für eine *.asm Datei definieren, dass sie Compiler X und Linker Y verwenden soll.

    Ansonsten kannst du aber auch per Kommandozeile, Batch oder Makefile kompilieren und linken. Wichtig ist nur, dass dein Compiler / Linker dein Text-File bekommt.



  • piscoster schrieb:

    **
    Wie kann ich den masm in diese IDE einfügen, den ich kann irgendwie mein Programm nicht kompilieren?(nur html dateien *lol*)**

    du hättest dir mal durchlesen sollen, was bei der Beschreibung des Downloads steht:

    Includes addins and custom controls
    You also need programming packs

    Den Download findet man direkt darunter -> RadASM programming pack
    Aus diesem Archiv brauchst du nur 2 Sachen: masm.ini und den Ordner 'Masm'. Diese kopierst du in das Verzeichnis in der die RadAsm.exe ist.

    Danach gehst du (in der IDE) auf Options->'Programming languages': hier musst du dann die masm.ini auswählen (und hinzufügen). Daraufhin gehst du unter Project->'Set Assembler'->masm.
    Jetzt ist RadAsm für Win32-Assembler konfiguriert.
    Leider ist bei dieser Konfiguration nicht möglich direkt 16Bit-Dos Programme zu erstellen – hab daher die masm.ini um den Projekttypen ‚Dos App (.exe) ‘ erweitert: hier kannst du sie runterladen. (du musst RadAsm nach dem Ersetzen neu starten)
    Danach kannst du ein Projekt vom Typen ‚Dos App‘ erstellen – das sollte dann theoretisch auch bei dir laufen 😉

    piscoster schrieb:

    Irgendwie funzt die datei bei mir nicht obwohl alles unter C: installiert wurde.

    du musst die Batch ja auch mit dem Dateinamen als Parameter starten. z.B.:'C:>Batch.bat MeinQuellcode.asm'.
    Mir ist aber grad aufgefallen, das da so oder so ein kleiner Fehler drin wahr:
    die Zeilen:

    C:\masm32\bin\ml.exe %CD%\%~n1.asm
    C:\masm32\bin\link16.exe %CD%\%n1.obj,%CD%\%n1.exe,,,

    müssen eigentlich

    C:\masm32\bin\ml.exe /c %CD%\%~n1.asm
    C:\masm32\bin\link16.exe %CD%\%n1.obj,%CD%\%n1.exe,,,,

    heißen.
    🙄



  • Toll, die zeitgemässen Batch-Dateien... 😉



  • abc.w schrieb:

    Toll, die zeitgemässen Batch-Dateien... 😉

    😃



  • hab alles so gemacht wie du masm sagtest und alle ordner bei radasm reinkopiert. kaum klick ich auf build kommt mir schon wieder eine Fehlermeldung(sooo knap vorm Ziel 😡 ) entgegen
    hab wieder einmal einen screenshot gemacht:

    http://www.bilder-space.de/thumb/02.02ICRiNmM8kiwk0Rt.JPG

    hoffentlich könnt ihr mir helfen den sonst dreh ich durch bei diesen ganzen Fehlermeldungen 😡 😡 😮 😕

    greetz pisco 😃



  • benutz die masm.ini die ich dir im vorherigen Beitrag verlinkt habe (nicht vergessen: RadAsm neu starten und Projekt neu anlegen)
    http://www.file-upload.net/download-2208578/masm.ini.html´



  • piscosterr schrieb:

    hoffentlich könnt ihr mir helfen den sonst dreh ich durch bei diesen ganzen Fehlermeldungen

    Wie gesagt, unter Linux hättest Du alle zusammengehörenden Werkzeuge...


Anmelden zum Antworten