Symbol Type Conflict



  • Hi,

    ich hab heute mein erstes ASM Programm probiert zum Laufen zu kriegen.. Dies ist mir leider nicht geglückt.. Hier mal der Source:

    DATEN       SEGMENT
    Meldung     db "Dies ist ein Test!"
                db "$"
    DATEN       ENDS
    
    CODE        SEGMENT
    
                ASSUME CS:CODE,DS:DATEN
    
    _Anfang:    mov ax,DATEN
                mov ds,ax
                mov dx,offset Meldung
                mov ah,9
                int 21h
                mov ah,4ch
                int 21h
    CODE        ENDS
    
                END _Anfang
    

    Und dann bekomme ich folgende Fehlermeldung bei Assemblieren mit MASM:

    D:\masm32\procs\ams1.asm(10) : error A2004: symbol type conflict
    

    Was mach ich falsch?



  • Hallo,

    weiß niemand darauf eine Antwort? Ich habe exakt das gleiche Problem und finde nirgends dazu eine Lösung. Wäre für Hilfe sehr dankbar, evtl. auch von dem Autor des eigentlichen Posts, falls dieser es mitlerweile gelöst hat.

    vielen Dank!



  • Ich wuerde vermuten, dass sich mit dem MASM32 kein 16Bit-Code assemblieren laesst...



  • ASM_Einsteiger schrieb:

    Hallo,

    weiß niemand darauf eine Antwort? Ich habe exakt das gleiche Problem und finde nirgends dazu eine Lösung. Wäre für Hilfe sehr dankbar, evtl. auch von dem Autor des eigentlichen Posts, falls dieser es mitlerweile gelöst hat.
    vielen Dank!

    Hi!

    Lege Dir einen neuen Ordner an und nenne ihn MASM16.
    Kopiere in diesen Ordner aus dem Verzeichnis MASM32\BIN\ den Macro-Assembler ml.exe
    und die Datei ml.err.
    Besorge Dir aus dem Internet einen 16 Bit-Linker z.B.

    http://www.gaby.de/ftp/pub/win3x/archive/softlib/lnk562.exe
    lnk562.exe ist selbstenpackend, es wird link.exe (16 Bit-Linker)generiert.

    Dein MASM16-Ordner sieht jetz so aus:

    C:\MASM16>dir
    Volume in Laufwerk C: hat keine Bezeichnung.
    Volumeseriennummer: 742A-B425

    Verzeichnis von C:\MASM16

    03.03.2008 19:11 <DIR> .
    03.03.2008 19:11 <DIR> ..
    29.03.1999 08:45 372.736 ml.exe
    21.07.2001 20:31 9.687 ml.err
    03.03.2008 20:01 386 test.asm
    03.03.2008 19:07 195.023 lnk562.exe
    16.09.1994 14:00 364.544 LINK.EXE
    5 Datei(en) 942.376 Bytes
    2 Verzeichnis(se), 273.448.960 Bytes frei

    ml rufst Du mit der Option /Zm Enable MASM 5.10 compatibility auf.

    C:\MASM16>ml/Zm test.asm
    Microsoft (R) Macro Assembler Version 6.14.8444
    Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

    Assembling: test.asm

    Microsoft (R) Segmented Executable Linker Version 5.60.220 Sep 9 1994
    Copyright (C) Microsoft Corp 1984-1993. All rights reserved.

    Object Modules [.obj]: test.obj
    Run File [test.exe]: "test.exe"
    List File [nul.map]: NUL
    Libraries [.lib]:
    Definitions File [nul.def]:
    LINK : warning L4021: no stack segment

    C:\MASM16>test.exe
    Dies ist ein Test!
    C:\MASM16>Alles klar?!

    MfG



  • @Nobuo T

    danke für die Antwort und Hinweis! Ich dachte mir sowas schon, war mir aber auch nicht sicher und wusste auch nicht, wie ich daraus ein 32bit Programm mache, bzw. ein 16bit "assemblen" kann

    @freak11

    vielen Dank für die ausfühliche Anleitung! 🙂 ... hat auf Anhieb geklappt und war genau das was ich gesucht habe ... jetzt kann ich auch die anderen Beispiele nachvollziehen und endlich weitermachen

    nochmals Danke für die Antworten, klasse Forum! 🙂


Anmelden zum Antworten