MASM , TASM oder NASM ?



  • Hallo MASM , TASM oder NASM ? Was wäre in der heutigen Zeit am besten?

    Und ist es sinnvoll sofort mit der Windows Programmierung in Assembler anzufangen oder lieber erst DOS Programme schreiben?



  • Ich kann dir eine Empfehlung für NASM aussprechen, bin ein sehr zufriedener Nutzer (wenn auch ich zugeben muss, dass ich relativ selten darauf zurückgreife :D). Für den Einstieg solltest du vielleicht auch einen Blick auf FASM werfen...

    masm schrieb:

    Und ist es sinnvoll sofort mit der Windows Programmierung in Assembler anzufangen oder lieber erst DOS Programme schreiben?

    DOS Programmierung hat mir mehr Spass gemacht als Windows Programmierung mit Assembler. Das liegt daran, dass man unter DOS im Prinzip alle Möglichkeiten offen hat; du kannst mit dem Assembler wüten wie du willst. Unter Windows kannst du mit deinem Assembler im Normalfall nur das machen, was du auch mit C programmieren könntest. Nur halt in Assembler, was vieles für das ungeübte Auge komplizierter macht. Insofern bin ich mir nicht mal so sicher, ob es überhaupt sinnvoll ist, direkt in Assembler für Windows zu programmieren.

    Aber das ist deine Entscheidung, eventuell hast du ja etwas Bestimmtes vor. Wenn du später sowieso unter Windows Programmieren willst, dann solltest du meiner Meinung auch dort einsteigen. Schliesslich schreibt man dort Programme anders als unter anderen Systemen.

    MfG



  • and dieser stelle möchte ich auch noch yasm hervorheben 🙂



  • Zum Einstieg ist das eigentlich ziemlich egal.
    Letztendlich nehmen sich die Assembler alle nicht viel, da sie alle eine recht aehnliche Syntax haben. Ansonsten kommt es halt darauf an, was du machen willst.

    TASM wird jedoch seit ueber 10 Jahren nicht mehr weiter entwickelt und ist daher eigentlich nur noch beim Einsteig in Assembler bei der Arbeit mit Tutorials sinnvoll, die TASM benutzen.
    MASM ist hauptsaechlich bei der Arbeit mit dem VS oder bei der Windows-Programmierung sinnvoll, sofern man auf Microsofts best of kryptische Fehlermeldungen und Macro-Programmierung steht, die von Assembler-Code oft nicht viel uebrig laesst.
    NASM ist ein recht ausgereifter und aktueller x86 allround-Assembler mit einem TASM-Kompatibilitaetsmodus. YASM ist ein "fork" AFAIR mit weniger binaeren Ausgabeformaten, dafuer einem ausgefeilteren Praeprozessor und oft aktuellerem Befehlssatz.
    FASM ist auch besonders fuer die Windows-Programmierung praktisch.
    Weiter gibt es dann noch GAS mit den Binutils fuer Freunde der Betriebssystemfamilie mit dem x.

    Das duerften die wichtigsten Assembler fuer x86 sein, hth.

    Ob du mit DOS oder Windows anfaengst ist irgendwo auch Geschmackssache. DOS laesst dir halt mehr Freiheiten beim Umgang mit der Hardware und es gibt wahrscheinlich immer noch mehr Tutorials als zur Programmierung fuer Win32.
    Ansonsten full ack zu /rant/.



  • Nobuo T schrieb:

    YASM ist ein "fork" AFAIR mit weniger binaeren ausgabeformaten, dafuer einem ausgefeilteren Praeprozessor und oft aktuellerem Befehlssatz.

    nö, yasm ist ein kompletter rewrite, der rest ist richtig :). ich bin damals zwangsläufig von nasm auf yasm umgestiegen da die entwicklung bei nasm stillstand und yasm der erste assembler war, welcher den x86_64 befehlssatz unterstützt hat :).



  • masm schrieb:

    Und ist es sinnvoll sofort mit der Windows Programmierung in Assembler anzufangen oder lieber erst DOS Programme schreiben?

    Ich würde sagen, es macht überhaupt keinen Sinn, ganze Programme in Assembler zu schreiben. Weder für Windows, noch für DOS, noch für Linux, noch für sonstige.
    Sinnvoller ist, Funktionen zu schreiben und in ein Programm in höherer Sprache einbinden. Das ist ehe realitäts- und praxisbezogen...


Anmelden zum Antworten