PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Textausgabe-Prob


MastaEda
19.04.2002, 13:01
Hallöchen
ich hab mich mal wieder in Assembler versucht, aber es trat nun folgendes Problem auf:
Wenn ich Text auf den Bildschirm ausgeben will erscheinen vor dem Text irgendwelche Zeichen, Zahlen und Buchstaben.

Beispiel:

model small
.stack 100h

.data
hallo db ´hallo$´

.code
mov dx,offset hallo
mov ah,09h
int 21h

mov ah,4ch
int 21h
END

Wenn ich bei hallo db ´hallo´ das $ weglasse kommt noch mehr Müll. :mauer:
Ich benutze dazu TASM.
Weiß einer eine Lösung? Das sieht nämlich total beschissen aus!


Felix Kaiser
19.04.2002, 13:44
Easy 8)


mov ax,@data
mov ds,ax
mov dx,offset hallo
mov ah,09h
int 21h


Du musst das Segment setzen. DOS Interrupt Funktion AH=09 erwartet die Zeichenkette auf DS:DX. Wenn DS nicht richtig gesetzt wird, dann wirst du sicher auf ein Problem stoßen. In dem du DS mit dem Wert aus @data inizialisierst, zeigt DS:0000 automatisch auf den Beginn deines Abschnitts ´.data´ in deinem Code. Zugleich erzeugt der Linker eine zu reallozierende Adresse, damit das Register das richtige Offset zur Laufzeit trägt. Das aber ist eher unwichtig für dich, das macht DOS schon ;)

MastaEda
19.04.2002, 15:32
Cool danke!! Jetzt funzt das!