Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: »Jukebox« 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
-
Wie wärs mit ner Fehlermeldung o.ä.?
-
@»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?
-
Könnte da eventuell noch sowas wie ".model small" oder Ãhnliches fehlen?
Die Meldung vom Assembler wäre wirklich ganz hilfreich.
MM
-
Und wie lautet dein MakeFile??? Ich weiss nicht, aber laut meinem ASM-Buch müsstest du anstatt...
Anfang: mov ax,DATEN
Anfang: mov ax,@data
...schreiben. Vieleicht ist da MASM strenger als TASM.
Gruss
Noooooooos
-
Da fällt mir auf, es soll doch bestimmt "DATA SEGMENT" heißen und nicht
"DATEN SEGMENT"
MM
-
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
-
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.
-
Ich empfehle einen der freien Assembler (NASM, YASM, FASM, ...), da sich bei ihnen vorallem eine vernünftige Speicheradressierung durchgesetzt hat.
-
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.