Unterschied zw. NASM und TASM



  • Hi

    ich versuche gerade Assembler zu lernen. Ich wollte folgenden Code mit NASM compilieren:

    DATEN SEGMENT
    
    Meldung db "Hallo, 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
    

    Doch leider ging das nicht. Hab das dann mit TASM versucht und dort hat es fehlerfrei geklappt. Wie muss der Code für NASM aussehen? Und wieso?

    mfg



  • Der Code koennte z.B. so aussehen:

    BITS16
    section .text
    ..start
    
    mov ax,data
    mov ds,ax
    mov dx,Meldung
    mov ah,9
    int 21h
    mov ah,4Ch
    int 21h
    
    section .data
    Meldung db "Hallo, ein TEST$"
    

    Haettest Du die Dokumentation zu NASM gelesen, wuesstest Du, warum das in etwa so aussehen muss. TASM und NASM sind nunmal nicht das gleiche. 😉

    [ Dieser Beitrag wurde am 30.12.2002 um 18:17 Uhr von Nobuo T editiert. ]



  • den Section kram kann mensch auch weglassen, und auch die ersten beiden Anweisungen (mov ax, data; mov ds, ax), wenn das nacher eine ganz normale .com-File sein soll. "klug"scheiß

    mfg
    -bg-


Log in to reply