Bekomme beim assemblieren mit masm Fehler ...



  • ... dummerweise habe ich keine Ahnung was ich falsch gemacht habe.
    Ich habe mir den masm bzw. masm32v8 von dieser Seite heruntergeladen, wie es im Buch stand und ihn installiert.
    Laut dem Buch müsste ich nur "masm <datei>" eingeben und es würde die Datei assemblieren, dummerweise finde ich in dem gesamten masm32 Ordner keine Datei mit diesem Namen. Also habe ich den mitgelieferten Editor bzw. die IDE verwendet und die Datei geöffnet und unter "Project" die Option "Assemble ASM File" ausgewählt.
    Da erhalte ich folgende Fehler:

    Assembling: E:\Sources\Assembler\asm1.asm
    E:\Sources\Assembler\asm1.asm(19) : error A2004: symbol type conflict
    E:\Sources\Assembler\asm1.asm(35) : warning A4023: with /coff switch, leading underscore required for start address : Anfang
    Datentr„ger in Laufwerk E: ist Programme
    Datentr„gernummer: 7833-7379

    Das Programm hab ich aus dem Buch (meines wissens nach) richtig abgetippt:

    (Sorry für die Formatierung in meinem Editor sieht es ordentlich aus.)

    ;MS-DOS Beispielprogramm
    ;Programmname asm1.asm
    
    												;Kommentar:
    DATEN		SEGMENT								;Hier gehören die Daten hin.
    
    Meldung db "Assembler ist gar nicht so schwer"
    		db "$"									;Damit das OS weiß, wann der String zu Ende ist
    
    DATEN		ENDS								;Ende des Datenbereichs
    
    CODE		SEGMENT								;Beginn des Codesegments
    
    			ASSUME CS:CODE, DS:DATEN			;Code und Daten zuordnen
    
    Anfang:		mov ax,DATEN
    			mov ds,ax							;Die Daten gehören in das Daten
    												;Segment (ds)
    			mov dx,offset Meldung				;Diese Meldung soll ausgegeben werden
    												;damit das OS weiß was wir wollen
    
    			int 21h								;OS zum ausgeben des Strings veranlassen
    
    			mov ah,4Ch							;Alles für das Programmende vorbereiten
    
    			int 21h								;und das OS wieder informieren
    
    CODE		ENDS								;Ende der Anweisungen
    
    			END Anfang							;Start des Programmes bei Anfang
    


  • Habe mir jetzt mal noch zusätzlich den TASM besorgt, welcher auch im Buch erwähnt wurde, und mit diesem wird das File ohne Probleme übersetzt 😕



    die strings müssen entweder in doppelten anführungszeichen sein oder in einfachen, aber nicht beides zusammen wie bei dir.

    Meldung db "Assembler ist gar nicht so schwer'
            db "$'
    

    wird zu

    Meldung db "Assembler ist gar nicht so schwer"
            db "$"
    

    im BIN ordner befindet sich eine ml.exe mit dieser kannst du dein programm von der kommandozeile aus assemblieren. du musst aber erstmal nur eingeben:
    ml /c asm1.asm
    das wird dein programm nur assemblieren. da der linker ein 32bit linker ist, kannst du ihn nicht zum linken benutzen. sondern musst dir erstmal nen 16bit linker besorgen, weil dein programm eine 16bit dosanwendung werden soll.



  • yup tasm ist auch ne lösung, benutz lieber den 🙂



  • Die Strings sind in doppelten Anführungszeichen, auch hier im Forum, wenn ich auf Editieren klicke nur in der Anzeige des Postings nicht.

    Wenn ich auf jeden Fall beim linken mit dem masm gescheitert wäre, dann benutze ich vorerst den TASM damit komme ich klar und später kann ich immernoch umsteigen 🙂

    Danke 🙂



  • tja, das ist wohl ein forumbug. *zumNobuoTrüberguck =p



  • *ZuEinerPersonVonDerErNichtWeissObSieGenanntWerdenWillHerueberschau* 😃
    Leider sind die ganzen Syntax-Coloring-Codes noch recht verbuggd.
    Ich selbst kann daran leider nichts aendern -> Ich hab's nicht geschrieben. 🙄
    =>UA. fuer solche Bugrepords ist das Forumtechnik-Forum da. 🙂



  • Kann mir wer von euch ne IDE oder nen Editor mit Syntax HL. empfehlen am besten einer der mit tasm zusammenarbeiten kann, sonst muss ich ja immer über die Konsole assemblieren und linken 😞



  • leider gibts da nicht viel für DOS.
    du könntest mal bei google nach tpasm suchen. das ist die ide für assembler von trutz eyke podschun aus seinem buch "das assembler buch".
    der müsste freeware sein.
    alle andere IDEs die heutzutage entwickelt werden sind leider nur für win32asm und sind sehr 16bit unfreundlich.
    ich hab mal versucht die leute dazu zu bewegen, diese ein wenig 16bit freundlicher zu machen. alles was man als antwort bekommt ist: "16bit is dead!"

    wie gesagt einfach bei google nach TPasm suchen. das hatte ich ne zeitlang benutzt. es war relativ bugfrei.


Anmelden zum Antworten