Fehlermeldung beim Linken



  • DATA SEGMENT WORD 'DATA'
    MSG DB 13,10,'Hello World',7,13,10,'$'
    DATA ENDS
    
    CODE SEGMENT WORD 'CODE'
    ASSUME CS:CODE, DS:DATA
    Start: mov ax,DATA
    	   mov ds,ax
    	   mov dx,OFFSET Msg
    	   mov ah,009h
    	   int 021h
    	   mov ah,04Ch
    	   int 021h
    CODE ENDS
    
    END Start
    

    Assemblieren funktioniert, beim Linken kommt dann folgender Fehler:

    **Turbo Link Version 1.6.71.0 Copyright (c) 1993,1996 Borland International
    Fatal: 16 bit segments not supported in module helloworld.asm

    Make error(s) occured.
    **

    Hab TASM und Radasm als IDE.

    Danke und Tschö



  • Moin, Moin...

    Der Fehler entsteht, weil RadASM immer TLINK32 benutzt. Leider läßt RadASM bei Benutzung von TASM nur Win32-Applikationen zu. Da Du aber ein Programm für DOS schreiben möchtest, musst der 16-Bit-Linker TLINK verwendet werden. Daher musst Du die Projekteinstellungen von Hand ändern.

    Ciao...



  • Make error(s) occured.

    kommt jetzt
    Aber vertippt habsch mich ni :|



  • ja ok, wir sehen schon. du willst keine Hilfe. 🙄



  • hmm, ich versteh nicht warum das Forum da Semikolons(also Kommentare) reinkommentiert, da stehen nur Kommas.
    Warum sollte ich keine Hilfe wollen?
    Ich will schon Hilfe, help plz 🙂



  • @Falky:

    Erstelle ein neues Projekt und wähle TASM als Assembler aus. Da es nur Win32-Anwendungen zur Auswahl gibt, wählst Du diese Option. Nachdem das Projekt erstellt wurde, fügst Du Dein Programm zu dem Projekt hinzu. Dann wählst Du unter Menupunkt Project den Eintrag Project Options. Die Zeile mit den Optionen für den Linker änderst Du wie folgt: 5,OT,$B\tlink.EXE /x /Tde /c $3

    Dann bestätigst Du die Änderung und läßt die Projekteinstellungen neu laden. Dann Assemble und Link wählen.

    Ciao



  • **C:\Tasm\BIN\tlink.EXE /x /Tde /c hello_world.obj

    Make error(s) occured.**



  • @Falky:

    Ist Deine TASM-Installation denn unter C:\Tasm zu finden oder hast Du es auf einem anderen Laufwerk und/oder in einem anderen Verzeichnis installiert? Wenn ja, musst Du natürlich den Pfad ändern(Option->Set Paths).

    Ciao



  • Pfad ist richtig 😉

    // In der Parameterliste von tlink.exe steht Tte, aber damit klappts auch nicht :|



  • @Falky:

    Du solltest die Parameterliste, die tlink.exe ausgibt, etwas genauer lesen.
    /Tti Specify target & image
    t can be d = DOS (default), w = Windows, x = DPMI
    i can be e=EXE or d=DLL

    Das heißt also, dass das t und das i nur Platzhalter sind, die durch den entsprechenden Buchstaben ersetzt werden müssen. Daher ist die Option /Tde für eine DOS-Exe völlig richtig.

    Weshalb es bei Dir mit dem Linken nicht klappt, kann ich leider nicht sagen. Bei mir funktioniert es ohne Probleme.

    Ciao..


Anmelden zum Antworten