Autor Thema: Brauch hilfe zu Assembler  (Gelesen 8195 mal)

»Jukebox«

  • Beiträge: 10
    • Profil anzeigen
Gespeichert
« am: 12. December 2005, 16:25 »
Ich hab mir ein Buch zugelegt, "Programmiersprache Assembler".
Nun scheiter ich aber schon am ersten Programm.
Könnt ihr mir sagen was an diesem Programm falsch ist?
Ich nutze als Assembler MASM32

DATEN   SEGMENT
Meldung db "Assembler ist gar nicht so schwer"
        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

Sunbreaker

  • Beiträge: 5
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 12. December 2005, 17:16 »
Wie wärs mit ner Fehlermeldung o.ä.?

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #2 am: 12. December 2005, 17:36 »
@»Jukebox«: Also an deinem Quelltext ist nicht falsch. Ich habe diesen mit TASM assembliert. Es liegt vielleicht an dem MASM. Was machst du denn genau? Und welche Fehlermeldung erhäls du?
In the Future everyone will need OS-64!!!

[MM]

  • Beiträge: 130
    • Profil anzeigen
    • www.mmcoding.eu
Gespeichert
« Antwort #3 am: 12. December 2005, 17:42 »
Könnte da eventuell noch sowas wie ".model small" oder Ähnliches fehlen?
Die Meldung vom Assembler wäre wirklich ganz hilfreich.

MM

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 12. December 2005, 18:33 »
Und wie lautet dein MakeFile??? Ich weiss nicht, aber laut meinem ASM-Buch müsstest du anstatt...
Anfang: mov ax,DATENAnfang: mov ax,@data
...schreiben. Vieleicht ist da MASM strenger als TASM.

Gruss
Noooooooos

[MM]

  • Beiträge: 130
    • Profil anzeigen
    • www.mmcoding.eu
Gespeichert
« Antwort #5 am: 12. December 2005, 19:21 »
Da fällt mir auf, es soll doch bestimmt "DATA SEGMENT" heißen und nicht
"DATEN SEGMENT"

MM

»Jukebox«

  • Beiträge: 10
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 12. December 2005, 20:32 »
Das ist die Fehlermeldung, oder eher die beiden Meldungen:

Assembling: D:\masm32\programs\asm1.asm
D:\masm32\programs\asm1.asm(14) : error A2004: symbol type conflict
D:\masm32\programs\asm1.asm(31) : warning A4023: with /coff switch, leading underscore required for start address : Anfang
 Datentr„ger in Laufwerk D: ist BACKUP
 Volumeseriennummer: 3CBA-FE16

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #7 am: 13. December 2005, 07:26 »
Höre nicht auf die anderen. Das mit dem .modell oder @data ist nur eine andere Syntax. Diese Fehlermeldung kenne ich aber leider nicht, da ich TASM verwende (habe MASM schon immer gehasst). Aber kann man mit MASM32 (siehe 32) überhaubt 16-Bit Code erstellen? Ich habe leider keine Ahnung von dem MASM32. Aber wenn du willst schicke ich dir mein TASM. Damit klappts 100%ig.
In the Future everyone will need OS-64!!!

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 13. December 2005, 10:55 »
Ich empfehle einen der freien Assembler (NASM, YASM, FASM, ...), da sich bei ihnen vorallem eine vernünftige Speicheradressierung durchgesetzt hat.
db 0x55AA

»Jukebox«

  • Beiträge: 10
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 15. December 2005, 22:09 »
THX, nutze jetzt eine ältere MASM Version, nun läuft alles, hab nochmal gegoogled zum Thema 16Bit usw. und da sah ich das mehrere das Problem hatten/haben.

THX nochmal an alle.

 

Einloggen