ASM-Anfänger hat Probleme mit MASM



  • Hi,

    wie der Titel schon sagt bin ich ASM-Anfänger und bekomme es noch nicht einmal hin ein Programm mit dem MASM zum laufen zu bekommen, bei dem folgendem Code den ich aus einem Tutorial habe:

    .MODEL Small
        .STACK 100h
    
        .DATA
    Nachricht DB 'Hello world!$'
    
        .CODE
    
    _Start:
    
        mov ax,@data
        mov ds,ax
    
        mov dx,OFFSET Nachricht
        mov ah,09h
        int 21h
    
        mov ah,4Ch
        int 21h
    
    END _Start
    

    bekomme ich immer folgende Fehlermeldung:

    Assembling: C:\masm32\asm\test.asm
    C:\masm32\asm\test.asm(11) : error A2006: undefined symbol : DGROUP
    

    Ich hab schon in die FAQ geschaut und auch die Suchfunktion bemüht und das ganze auch schon mit alink (von nasm) versucht jedoch lieferte sich mir kein anderes ergebnis.

    Danke für jede Hilfe.

    Gruß Wolle



  • Moin, Moin...

    Da Du die einfache Segmentkontrolle benutzt, musst Du auch die STARTUP- und EXIT-Makros verwenden, damit Daten- und Stacksegment korrekt initialisiert werden.

    .MODEL Small
        .STACK 100h
    
        .DATA
    Nachricht DB 'Hello world!$'
    
        .CODE
    
    .startup
    
        mov dx,OFFSET Nachricht
        mov ah,09h
        int 21h
    
    .exit 0
    
    END
    

    Des Weiteren benötigst Du einen 16-Bit-Linker, d.h. einen Linker, der DOS-Exe erzeugen kann.

    Hole Dir den Linker von hier: http://win32asm.cjb.net/

    Klick auf Download und in der erscheinenden Liste gibt es einen Link mit Namen Link version 5.63.

    Das Programm lnk563.exe ist ein selbstentpackendes Archiv. Nach der Ausführung stehen drei Dateien im Verzeichnis:

    link.exe
    cvpack.exe
    readme.txt

    Den Linker link.exe umbenennen in link16.exe und in das Verzeichnis bin kopieren.

    Dein Programm übersetzt Du so:

    ml /c DeinProgramm.asm
    link16 DeinProgramm.obj;

    Das Semikolon am Ende der Linker-Kommandozeile unterdrückt den Abfragemodus.

    Ciao...



  • Ahhh ok, vielen dank!!!

    Gruß Wolle.


Anmelden zum Antworten