Hallo erstmal, also, da man mir hier ständig sagt, dass man uCs nur vernünftig mit assembler programmieren kann, will ich damit nun beginnen. Für den Anfang wollte ich, wie in C, erstmal kleine windowsprogramme schreiben. Also den qualtext aus meinem übungsbuch abgetippt, in den masm quickedit eingegeben und auf Build All geklickt. Ich erhalte aber den Fehler: <8>error A2004:symbol type conflict <16>warning A4023:with /coff switch... Irgendwie als Anfänger sehr blöde zu verstehen, da ich den quelltext 1:1 abgekopiert habe und es nun funktionieren soll. Gibts es da noch andere schöne Entwicklungsumgebungen oder was mache ich falsch... Quelltext sieht so aus: DATEN SEGMENT ;- Beginn des Datensegments Meldung db "Hello World" ;- Die Zeichenkette "Hello World" db "$" ;- Endzeichen der Zeichenkette DATEN ENDS ;- Ende des Datensegment CODE SEGMENT ;- Beginn des Codesegements ASSUME CS:CODE,DS:DATEN ;- Dem Assembler die Segmente mitteilen Anfang: ;- Label für den Anfang des Programmes mov ax, DATEN ;- das Daten... mov ds, ax ; ...segment laden mov dx, offset Meldung ;- den Text in das Datenregister laden mov ah, 9 ;- dem Betriebssystem mitteilen, was wir wollen int 21h ;- diesen Befehl ausführen (hier Ausgabe des Texts) mov ah, 4Ch ;- dem Betriebssystem wieder mitteilen, was wir wollen int 21h ;- diesen Befehl wieder ausführen CODE ENDS ;- Ende des Codesegments END Anfang ;- dem Assembler das Ende des Labels Anfang mitteilen
Wie rufst du denn MASM auf? Welches Speichermodell ist eingestellt? mov ax, DATEN ;- das Daten... Sollte es sich um 32 Bit flat handeln, dann geht das natürlich nicht, weil der Code nur in einem 16-Bit-Modell funktioniert...
Naja, das ist eindeutig ein DOS-Programm was du da abgetippt hast, die Fehlermeldung deutet aber darauf hin dass du versuchst ne Win32 EXE zu assemblieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.