System erkennt Assembler nicht



  • Dass Windows "masm" nicht kennt liegt wohl daran dass "masm" nicht im Path ist. Fuege das Verzeichnis, in dem masm.exe liegt, einfach dem Path hinzu (Rechtsklick auf Arbeitsplatz->Eigenschaften->Erweitert->Umgebungsvariablen und dann bei "PATH" ganz am Ende das VErzeichnis einfuegen). Danach sollte das kompilieren klappen.

    Um dir zu sagen, wieso es mit dem nasm nicht geklappt hat waeren die Fehlermeldungen sehr hilfreich. Ich kenn weder masm noch nasm, allerdings ists moeglich dass die beiden einfach nicht die gleiche Syntax haben (sprich, du die Befehle im nasm anders schreiben musst).
    Dass du einen Athlon64 hast, spielt bei den Befehlen keine Rolle. Der Athlon64 kennt alle Befehle, die im normalen x86-Assembler vorkommen (den du gerade lernst) und noch ein paar andere mehr 🙂



  • Erstmal danke für deine Antwort, allerdings befindet sich im ganzen masm32 Ordner keine Datei, die masm.exe heißt.
    Weiss vielleicht jemand, wie die nötige Datei heißt?



  • AFAIR heisst die Datei da ml.exe, jedoch zickt das Ding beim Versuch 16Bit-Code zu verarbeiten gern mal rum. Kenne mich mit dem MASM aber auch nicht weiter aus.
    Was nasm betrifft, hat Blue-Tiger schon richtig vermutet: Hat 1. eine andere Syntax und 2. ist dieser DOS-Code in Linux nicht lauffaehig (zumindest nicht ohne DOS-Emulator).



  • ich glaube du brauchst den 16 bit linker.

    kuckst du hier:http://board.codingcrew.de/viewtopic.php?t=218



  • Ja das ist ein DOS Programm und braucht einen 16bit-Linker (ist bei Büchern in dem Fall aber i.d.R. dabei). Ich muss jeweils ml datei.asm eingeben und dann wird assembliert und eine .exe gelinkt. Geht meist auch unter XP, bei so einfachen Dingen sowieso



  • Hallo,
    ich habe jetzt soweit alle Dinge gemacht, die Ihr mir geschrieben habt, doch leider erkennt Windows MASM immer noch nicht.
    Ich sag euch mal, was und wie ich die Änderungen gemacht habe.

    1. Wegen dem 16 Bit Linker habe ich alles genauso gemacht, wie im Thread, also Link.exe umbenannt und die Batchdatei erstellt.

    2. Ich habe folgendes in die Pathvariable geschrieben:

    %SystemRoot%\masm32\bin;

    Jetzt zeige ich euch am besten mal, wie ich den Code assemblieren will und was er mir für Fehler ausgibt.

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\Dokumente und Einstellungen\Manu>cd C:\Dokumente und Einstellungen\Manu\Deskt
    op\Assembler
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>masm asm1.asm
    Der Befehl "masm" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>ml asm1.asm
    Der Befehl "ml" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>ml asm1.asm
    Der Befehl "ml" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>masm asm1.asm
    Der Befehl "masm" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>make16 asm1.asm
    Der Befehl "make16" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>masm asm1.asm
    Der Befehl "masm" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>ml asm1.asm
    Der Befehl "ml" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    
    C:\Dokumente und Einstellungen\Manu\Desktop\Assembler>
    

    Ich weiss echt nicht mehr weiter.:(



  • So langsam glaube ich nicht mehr dran, dass der MASM Compiler je funktionieren wird. Daher habe ich mir jetzt den FASM installiert. Dieser funktioniert auch, doch wieder gibt es Probleme mit dem Code. Bei beiden Versionen (DOS und Win32) sagt der mir, dass das "DATEN SEGMENT" illegal ist.

    Wie muss es denn heißen, dass es funktioniert?



  • Um weiteren wirren Probierereien vorzubeugen: Der einzige Assembler, der AFAIK ausser MASM die MASM-Syntax unterstuetzt ist TASM und den gibt's nicht kostenlos.
    FASM kann den Code AFAIK gar nicht verarbeiten.

    Und durch planloses Eintippen irgendwelcher Befehle in die Shell wirst du MASM so auch nicht zum Laufen kriegen.

    Liegt denn ml.exe oder masm.exe, whatever tatsaechlich bei "%SystemRoot%\masm32\bin"?

    Als Alternativ-Assembler wuerde ich uebrigens, wenn ueberhaupt, fuer DOS-Code NASM empfehlen.



  • DIe Datei heißt zwar dort ml.exe liegt aber im /bin Verzeichnis, ja.
    Edit: Hoppla, jetzt hab ich mit meinem Account geschrieben.



  • Ich habe es jetzt doch hinbekommen.
    Vielen Dank für eure Hilfe!


Anmelden zum Antworten