MASM problem (linker)



  • wenn ich folgenden code versuche zu assamblen/linken dann zeigt der linker nur:"hello_world.obj : fatal error LNK1190: invalid fixup found, type 0x0001"

    .model tiny
    .code
    
    _start:  mov ah, 09h
             mov dx, offset HelloWorld
             int 21h
    
    ende:    mov ah, 4ch
             int 21h
    
    HelloWorld db "Hello World!",10d,13d,"$"
    
    end _start
    end
    

    was heist das und wie kann ich's beheben???

    ich danke für antworten!



  • Hi,

    ich benutze den MASM zwar nicht, aber weshalb steht da zwei mal end untereinander?
    Vermutlich wird eines reichen 😉



  • Moin, Moin...

    Kann es sein, dass Du mit dem 32-Bit-Linker gelinkt hast? Wenn Du ein DOS-Programm erstellen möchtest, musst Du den 16-Bit-Linker verwenden und den gibt es hier:

    ftp://ftp.microsoft.com/softlib/mslfiles/lnk563.exe

    Der Linker heißt schlicht link.exe. Entpacken in ein temporäres Verzeichnis und den Link.exe umbenennen in z.B. link16.exe. Dann ins Verzeichnis 'bin' kopieren.

    Linken mit link16 /TINY DeinProgramm.obj;

    Das Semikolon am Ende der Zeile unterdrückt die Abfrageprozedur des Linkers.

    Ciao...

    [ Dieser Beitrag wurde am 23.06.2003 um 07:01 Uhr von Kal El editiert. ]



  • das zweite "end" stand auch so im tutorial, deshalb dachte ich mir:"OK, wenn's da so steht!"

    und danke für den tip mit dem 16bit linker!


Anmelden zum Antworten