error A2006: undefined symbol : DGROUP



  • Moin, Moin...
    Ich habe Dein Programm mit MASM (Version 6.14.8444) assembliert(ml /c DasProgramm.asm) und keine Fehlermeldung erhalten.

    Noch ein kleiner Hinweis. Du benutzt die MODEL-Direktive. In diesem Fall sollte man das .STARTUP-Makro verwenden, dass den Stack einrichtet und die Segmentregister belegt. Am Ende des Programms nutzt man dann das .EXIT-Makro.

    MODEL Small
    .STACK 100h
    .DATA
    Meldung DB "Hallo Welt$"
    .CODE
    
    Start:  .STARTUP
    
            mov dx, OFFSET Meldung
            mov ah, 09h
            int 21h
    
            .EXIT 0
    
    END
    

    Ciao...



  • Selber Fehler. Ich ziehe mir einfach eine alte Assemblerversion



  • Kannst du deine Versione evtl. hochladen? Ich verzweifel gerade total, per google finde ich keine alten Versionen. Und alle neueren wollen nicht den alten Quellcode übersetzen 😞


  • Mod

    öhmja? schrieb:

    F:\masm32\FIles\first.asm(7) : error A2004: symbol type conflict

    Vielleicht können wir das ja anders regeln:

    Womit programmierst du Assembler? Welchen Editor hast du und wo hast du dir die Dateien für Assembler heruntergeladen. Vielleicht ist mein Kram ja zu alt / neu was weiß ich 😕 ?

    wieso ich? du hast das problem, also solltest du deine spezifikationen nennen. mir ist klar, dass mein vorschlag nicht funktionieren muss, war eben nur eine idee. _DATA ist ein symbol, @DATA ein macro für DGROUP - warum und wieso das probleme bereit ist mir unklar, allerdings funktionieren einige der alten macros mit masm 7+ nicht mehr richtig. möglicherweise könnte noch

    mov ax, seg Meldung
    

    funktionieren. einfach mal ausprobieren.



  • Egal was ich gerade versuche, esklappt einfach nicht. Ich lade mir zig Compiler runter, zig IDEs aber ich kann die ganzen alten Beispielcodes nicht übersetzen. Immer wird etwas neues bemängelt, mal das MODEL, dann DATA usw. usf. Egal ob tasm nasm oder masm...

    Deswegen wäre es evtl gut wenn mir jemand sagen kann wo ich eine vernünftige Version herbekomme. Sowas wie der DEV C++ für C++ Anfänger. Runterladen -> läuft.


  • Mod

    meistens befindet sich das problem vor dem computer. du könntest ja klein anfangen mit dem minimal code:

    end
    

    und dann einfach schauen, wann die probleme auftauchen.



  • Moin, Moin...

    Ich habe das MASM32-Paket Version 8.2 benutzt, um Dein Programm zu übersetzen. Das bekommst Du hier: http://www.codingcrew.de/masm32/index.php

    Erläutere doch bitte genau, wie Du Dein Programm übersetzt(welche Kommandozeilenparameter).

    Ciao...



  • camper schrieb:

    meistens befindet sich das problem vor dem computer. du könntest ja klein anfangen mit dem minimal code:

    end
    

    und dann einfach schauen, wann die probleme auftauchen.

    Junge, jetzt komm mir mal nicht so blöde.
    Ich programmiere nicht zum ersten Mal und weiß, woran es liegt. Nur eine passende Lösung hatte ich nicht gefunden.

    Das ich mir mit diesem Post deine "Hilfe" verscherzt habe ist mir klar.


  • Mod

    tja - wer nicht will der hat schon ...



  • Juten Tach.

    Ich hab dasselbe Problem wie öhmja? dazumals:D

    Code:

    .MODEL Small	           ;Speichermodell: Small
    		.STACK 100h		   ;Stackgrösse auf 256 Byte
    		.DATA		           ;Beginn des Datensegmentes
    Meldung	DB	"Hallo Welt$"		   ;Unsere Meldung
    		.CODE			   ;Beginn des Codesegmentes
    Start:	mov	ax,@data	           ;Datensegmentadresse nach ax
    		mov	ds,ax		   ;Inhalt von AX nach DS
    		mov	dx,OFFSET Meldung  ;Offsetadr. nach dx 
    		mov	ah,09h
    		int	21h	           ;Schreibe String
    		mov	ah,4Ch
    		int	21h		   ;Programm beenden
    		END Start
    

    Meldung:
    error A2006: undefined symbol : DGROUP

    Das ist der Beispielcode aus einem Assembler Buch. Jedoch wird dort nur Dos beschrieben fürn Einstieg. Denk da könnt der Fehler liegen^^. Nur wie bring ich das auch für XP zum laufen.

    Zum Compiler verwend ich den mitgeliegerten Compiler von Microsoft Visual Studio 2005.
    MASM Macro Assembler Version 8.00.50727.42.

    Um den Code zu Compilieren oder Assimiliere
    Hab ich mich in MASM Verzeichnis vegeben begeben.
    Un mit ml /c <Verzeichnis>\hallo.asm eingegeben zum Assimilieren

    Jo hier bin ich nu kA wie weida:D

    Wär nett wenn mir jemand Starthilfe geben könnte

    Gruss Chubbs



  • Du benutzt den MASM Macro Assembler Version 8.00.50727.42. der erstellt Dir per default Objektdateien im COFF - Format.
    Deinen 16-Bit Assemblerquelltext solltest Du ins damals übliche OMF - Format assemblieren.
    (ml /omf generate OMF objekt file)
    Die Befehlszeile: ml/omf hallo.asm assembliert dann fehlerfrei.
    Im Internet gibs kostenlos 16-Bit Linker, die Dir aus hallo.obj eine hallo.exe machen, die dann auch unter Windows-XP läuft.

    MfG



  • Hier gibts den Microsoft 16-Bit Linker von 1994!
    http://www.gaby.de/ftp/pub/win3x/archive/softlib/lnk562.exe
    😉



  • Vielen Dank funktioniert einwandfrei.

    So nun ein weiteres Problem.

    .MODEL Tiny				    ;Com-Datei-Speichermodell
    		.Code						;codesegment
    		ORG 100h					;Start-Offsetadresse
    
    Start:	
    		mov	ah,09h
    		mov dx,OFFSET Frage
    		int	21h						;Frage antzeigen
    		mov	ah,07h					;DOS Funktionsnummer
    		int 21h						;Zeichen in AL einseen
    		cmp	al,"j"					:wurde j gedrückt?
    		je	Ja1						;Wenn j gedrückt
    		cmp	al,"J"					;wurde J gedrückt
    		jne	Ende					;wenn nein: Springe zu Ende
    Ja1:
    		int	19h						;System booten!
    Ende:
    		mov	ah,09h
    		mov	dx,OFFSET NeinTxt
    		int	21h						;Neixt ausgeben!
    		mov	ah,4Ch					;Fkt. Prg. beenden;
    		int 21h						;Programm beenden!
    
    Frage	DB	10,13,"System Booten? (j/n) $" ;Daten
    NeinTxt DB	10,13,"Aktion abgebrocken! $"
    		END Start
    

    Dieser Code soll keine exe programm mehr erstellen, sondern eine Com programm
    Dies ist immernoch ein beispielcode aus einem buch mit den gleichen vorraussetzungen die ich beim ersten beitrag erwähnt habe.

    Laut buch sollte ich diesen code folgendermassen assimilieren

    ml /c /AT dateiname.ext

    dann

    link/t dateiname

    für ich den ersten befehl aus erscheint folgende meldung.
    ../reb.asm(11) : error A2044: invalid character in file
    ..reb.asm(26) : warning A4023: with /coff switch, leading unders
    core required for start address : Start

    zu testzwecken hab ich die zeile 11 auskommentiert und da lässt sich es assimilieren jedoch mit dem von euch erwähntem weg über den linker nich linken:D

    naja hoffe das ihr versteht was ich meine;D


Anmelden zum Antworten