Assembler: Ungewollte Zeichen auf STDOUT

Grulf

Grünschnabel
Hallo,
seit neuestem beschäftige ich mich mal mit Assembler. Ich benutze übrigens NASM.
Nun habe ich folgendes Programm:
Code:
mov dx,message     ;   message nach dx laden
mov ah,0x9     ;   09h (Funktion zur Stringausgabe) nach ah laden
int 0x21     ;   Interrupt 021h

mov ah,0x4C     ;   04Ch (Funktion zum erfolgreichen Beenden des Programmes) nach ah laden
int 0x21     ;   Interrupt 021h

message db 'Hello world!',0x0D,0x0A,'$'     ;   Deklaration message (C-äquivalent: "Hello World!\n\f$")

Kompiliert mit dem Befehl:
---8<---
nasm test.asm -f bin -o Hello.exe
---8<---
Das sollte ein einfaches "Hello World!" - ohne "" - ausgeben. Der Output lautet jedoch wie folgt:
Code:
?(K?(V?((??? ?               ??µ ??¶ ? ??        ?               ?!?

             ?? ?      ?!?L?!Hello world!

Was ist da falsch?

Gruß,
Grulf.
 
Zuletzt bearbeitet:
Die Zeiten dass ich Assemblersprachen gemacht habe sind eigetnlich vorbei.
Es wäre dennoch sicher hilfreich, wenn Du Prozessor und Betriebssystem nennst, da Assembler eigtnlich keine Sprache vielmehr eine Sprachfamilie ist.

Pauschal sieht es so aus, als ob Deine Ausgaberoutine einen anderen Offset als Basis zu nehmen scheint. Vielleicht solltest Du mal einen Debugger bemühen, dann wirst Du vielleicht schlauer was da unter der Decke passiert.

viel Glück

Takidoso
 

Neue Beiträge

Zurück