Einfaches Assembler Programm

Hallo!

Ich hab mir das Buch "Assembler" von Reiner Backer gekauft und wollte damit gleich mal anfangen.
Das erste Programm sieht da so aus:

Code:
;Programmname asm1.asm

DATEN		SEGMENT
Meldung		db "Asembler 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

Der Assembler sagt dazu:

Code:
asm1.asm:4: warning: macro `SEGMENT' exists, but not taking 0 parameters
asm1.asm:5: label or instruction expected at start of line
asm1.asm:9: label or instruction expected at start of line
asm1.asm:10: warning: macro `SEGMENT' exists, but not taking 0 parameters
asm1.asm:11: label or instruction expected at start of line
asm1.asm:13: label or instruction expected at start of line
asm1.asm:15: undefined symbol `DATEN' (first use)
asm1.asm:15:  (Each undefined symbol is reported only once.)
asm1.asm:18: label or instruction expected at start of line
asm1.asm:18: undefined symbol `offset' (first use)
asm1.asm:26: label or instruction expected at start of line
asm1.asm:27: label or instruction expected at start of line

Ok. Und was heist das jetzt? Ich hab von Assembler nun ja nun gar keine Ahnung und hab das Beispiel jetzt einfach mal stupide aus dem Buch abgetippt.
Wäre toll wenn mir jemand mal auf die Sprünge helfen könnte ;)

Als Assembler hab ich yasm genommen und das System ist Kubuntu.

Danke

Nimda05
 
Was sagt denn das Buch zum benötigten Assmebler? Der Syntax nach sieht es mir stark nach MASM aus. Jedenfalls 16-Bittig mit DOS Interrupts. Du könntest zwar versuchen, es auf NASM umzuschreiben, aber stressfreier solle es in diesem Fall sein, den benötigten Assembler in einem Emulator laufen zu lassen. Vor allem weil die generierten Executables eher DOS als Zielplattform haben.
 
jau.. das beispiel ist eig für MS-Dos und MASM oder TASM.
Aber ist das nicht egal? Ist Assembler nicht plattformunabhängig?
 
Original von Nimda05
jau.. das beispiel ist eig für MS-Dos und MASM oder TASM.
Aber ist das nicht egal? Ist Assembler nicht plattformunabhängig?
Ich bin zwar absolut kein ASM Profi, aber:

-Zum einen coded man in diesen Umgebungen nicht "reinen" Assembler. Oft werden von den Editoren/Compilern noch zusaztz Features angeboten, die dann andere garnicht kennen.

-Assembler muss man sogar an die CPU Architektur anpassen...

Hoffe dass das ungefähr der Wahrheit entspricht :D
 
Das stimmt sogar ganz sicher, da jeder Prozessor (oder uC) ein anderes Instruction Set verwendet, deswegen werden ja Programme für die unterschiedlichen Architekturen neu übersetzt. Also bevor man Assembler anfängt, sollte man wissen, worauf es laufen soll. Zum Einsteigen empfehle ich einen ATMega Mikrocontroller, der kann für Anfänger nicht soviel und Tutorials gibts zu Hauf. Außerdem gibts von der Firma Atmel eine schöne IDE (Simulator, etc...).
 
Ich hab mal meinen alten Unterlagen gegraben:
http://www.drpaulcarter.com/pcasm/
das Buch (online) wurde mal in einer Vorlesung emfpohlen
Allerdings bildete 0x86 Assembly nur einen kleinen Abschnitt der Vorlesung, daher kann ich nicht sagen, ob es sich zur Vertiefung eignet. Jedenfalls ließen sich die Beispiele sowohl unter windows wie auch Susi/Knoppix 5 assemblieren.
Außerdem gibt es noch "the art of assembly" als Linux-Edition:
http://webster.cs.ucr.edu/AoA/Linux/index.html
Was die Plattformunabhängigkeit angeht: wäre doch schrekclich, wenn Kubuntu DOS-Interrupts/Architektur benutzen würde ;). Allerdings, wie auch aus dem ersten Link ersichtlich, kann man sich mit einigen Include Dateien zu einer relativen OS-Unabhängigkeit behelfen. Im Prinzip ist man mit ASM gar nicht an ein OS gebunden, aber sobald man "zu tief" ins System eingreifen will oder OS-spezifisches Zeug (Ein/Ausgabe) ausführen möchte, kommt man nicht drumherum sich damit zu befassen.
 
Assembler ist schon schön. Schade nur, dass er wirklich so extrem Prozessorbezogen ist. Leider muss man sich hier für jeden Prozessor schon wieder komplett neu einarbbeiten. Parallelen sind zwar vorhanden, doch wäre es wirklich mal sinnvoll bei den Grundlagen anzufangen. In diesem Fall wäre es wie schon oben erwähnt die PIC-Programmierung an sich. Bei Microchip.com findest du einiges und kannst dich mal ein wenig einarbeiten. Falls dir noch so ziemlich alles an Grundlagen fehlt, dann schau doch einfach auf www.Sprut.de
Ich denke, dass diese Seite so ziemlich jedes Fachbuch um weiten übertrifft.

Hoffe ich konnte ein wenig helfen.
 
Jau. Ich hab sogar nen selbstgebauten PIC Brenner hier.. Hab das Teil schon mal vor ewiger Zeit zusammengekloppt weil ich eigentlich die Schrittmotorsteuerung meiner CNC-Fräse selbst bauen wollte. Hab dann aber aus Zeitgründen und Kostengründen doch auf ne gekaufte Version zurückgegriffen.
Wäre natürlich mal ne möglichkeit das ganze wieder aufzugreifen.
Ich werd mal drüber nachdenken.

Danke an alle! =)

Nimda05
 
Zurück
Oben