Problem mit ASM



  • Hi Leute
    Ich bin neu in der Programmierung in ASM und hab schon mein erstes Problem mit dem Compilieren des Programms.
    Ich benutz FASM mit dem Editor von FASM und möchte das Programm erstellen:

    DATA SEGMENT
    
    text db "Hallo Welt"
         db "$"
    
    ENDS DATA
    
    CODE SEGMENT
    
    ASSUME CS:CODE, DS:DATEN
    Anfang:
    mov ax, DATA
    mov ds, ax
    mov dx, offset text
    mov ah, 9
    
    int 21h
    mov ah, 4Ch
    int 21h
    
    CODE ENDS
    END Anfang
    

    Es kommt aber ein Fehler:

    ERROR: illegal instruction
    
    Intstruction:
    DATA SEGMENT
    

    Ich benutz das Buch: Assembler: Maschinennahes Programmieren von Anfang an.

    WEiß jemand was ich falsch mache?



  • das Programm ist für MASM (16bit,DOS) geschrieben - du musst den Syntax an FASMs anpassen. Bei Problemen am besten im offiziellen FASM-forum fragen/suchen.



  • wie masm schreibt...oder auch mal die Dokumentation und die Beispiele von Fasm (für Dos) lesen. Das Hello World Beispiel sieht dort zum Beispiel so aus:

    ; fasm example of writing simple EXE program
    
    format MZ
    
    	push	cs
    	pop	ds
    
    	mov	ah,9
    	mov	dx,hello
    	int	21h
    
    	mov	ax,4C00h
    	int	21h
    
    hello db 'Hello world!',24h
    

    Anfängern möchte ich aber dringend raten, die 16bit-Beispiele aus dem Buch erstmal nach Debug-Syntax zu übersetzten.
    ( Tut von Prof.Dr.H.Weber: http://swlx01.hs-esslingen.de/vorl/rt2/debug.pdf )


Anmelden zum Antworten