• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

nasm Assembler findet include Datei nicht

ath0

Well-Known Member
#26
Falls du doch beim selber machen bleiben solltest, könnte ich dir die ISBN von dem Buch besorgen das ich damals als Einstieg genutzt habe und das wirklich super gut war.
Das Buch war zwar ewig alt (ich glaube ca so alt wie ich selbst) aber ohne diese Lektüre hätte ich sicher nicht geschafft Assembler richtig zu verstehen. Das Buch liegt bei meinem Kumpel im Regal, welcher es mir damals geliehen hatte. Ich habe das Ding in 1 oder 2 Wochen eingeathmet, eigentlich lese ich wenig bis gar nicht aber ich wollte es damals ganz genau wissen und habe damit auch erst aufgehört, nachdem ich für mich beschlossen habe, die sinnvollen nutzungsgrenzen für damalige Zeiten erreicht zu haben. Damit meine ich nicht Optimierungen oder TeilImplementierungen wie im Kernel unseres geliebten BSDs sondern komplette Programme, bei Optimierungen und Teilimplementierungen könnte ich garantiert noch ein ganzes stück mehr interessantes finden das man basteln kann und wer weiß evtl. komme ich ja nochmal zurück in die Assembler Gefilde, gerade der caching Murgs der jetzt die Prozessorwelt belastet schreit gerade zu nach näherer Betrachtung :)
 
R

ralli

Guest
Themenstarter #27
Falls du doch beim selber machen bleiben solltest, könnte ich dir die ISBN von dem Buch besorgen das ich damals als Einstieg genutzt habe und das wirklich super gut war.
Hallo @ath0,

sehr gerne nehme ich Dein Angebot an.:) Ich denke, das das ohne ein wirklich gutes Standardwerk nicht zu schultern ist. Ich möchte es nach wie vor gerne lernen, auch weil ich dann die Arbeit einer CPU besser verstehen lerne. Also mein vorauseilender Dank ist Dir bereits sicher.
 
#28
Falls Du Videokurse magst, kann ich Dir diesen Einsteigerkurs sehr empfehlen:

https://www.udemy.com/x86-asm-foundations/learn/v4/overview

Der Kurs beginnt wirklich von Anfang an und behandelt u.a. erstmal die Zahlensysteme, die Umrechnung auf Papier, die Register usw. Dann einfache Addition, Subtraktion usw. in Assembler und spaeter gehts wirklich ins Eingemachte. Die reine Videolaenge betraegt 29 Stunden, was etwas ueber den Umfang aussagt.

Auch mit minimalen Englischkenntnissen kann man diesem Dozenten sehr gut folgen. Der Kurs behandelt »fasm« unter Windows. Allerdings sind die source codes auch fuer Linux verfuegbar und lassen sich mit wenig Aufwand auch unter *BSD ausfuehren. Hierbei geht es primaer um das Erlernen und Verstehen von Assembler und weniger um das OS.

PS: Die Videos lassen sich per youtube-dl auch offline speichern und archivieren.
 

Vril

Well-Known Member
#30
Assembler ist so eine Sache!
Einerseits: hochkompakter und effizienter Code, somit schneller als jede Hochsprache.
( deshalb macht es auch keinen Sinn, sich beim oder zum Assembler-Lernen den Assemblercode
der beim übersetzen von Hochsprachensourcecode entsteht anzuschauen - es hat schon seinen Sinn,
weshalb meistens defaultmässig die Assemblerdatei ins Nirwana befördert wird - und deren Erhalt nur
mittels Switch beim Compileraufruf erreicht werden kann. )
Andererseits: komplett auf den Prozessor bzw. die Prozessorfamilie ausgelegt und sehr eingeschränkt nutzbar
( kein Mensch wird heute auf die Idee verfallen und eine grafische Animation in Assembler programmieren zu wollen...
na gut - ich kenne da ein paar Russen, die haben ihr Hirn schon in Register und Stacks organisiert und denken in
Assemblercode ... manchmal glaube ich sogar, die denken schon in Maschinencode ... naja nicht binär aber mindestens hex
lach )

Wenn man also Assembler lernt, lernen will ... dann stellt sich ja erstmal die Frage, auf und für welchen Prozessor und
was will ich in Assembler so alles machen.

Aktuelle Prozessoren, wie wir sie heute in PCs vorfinden - halte ich für viel zu komplex.
Wenn man nen Jet fliegen lernen will, setzt man sich ja auch nicht rein und versucht zu starten,
sondern lernt über Jahre, beginnend mit Modellflug, manntragenden Segelflug, Simulation usw.

Es gibt genügend 16 oder 32Bit Prozessoren, die heute weniger als ein Euro kosten und bei deren
Programmierung (auch in Assembler) recht schnell Erfolge zu erreichen sind.

Man kann z.B. abfragen ob ein Taster gedrückt ist oder ob mehrere Taster in bestimmter Reihenfolge
gedrückt wurden und als Ergebnis unterschiedliche LEDs zum Leuchten bringen.

Dazu sind weder Lötkenntnisse ( es gibt Steckbretter als Experimentierboards ) noch
E-Technik-Grundlagen ( das Ohmsche Gesetzt kennen wir ja aus der Schule, Physik 7.Klasse! )
erforderlich.

Zum Assemblerlernen eines dieser µProzessoren/Controllern ist nur so ein Prozessor,
ein Steckbrett, ein paar Bauteile um den Prozessor zu beschalten und eine Verbindung
zum BSD-PC erforderlich und den Maschinencode vom PC zum µ zu übertragen.

Wenn Du z.B. mit einem Assemblerprogramm auf dem µController eine LED nach Tasterdruck
zum Blinken bringst - hast Du schon folgendes gelernt:

1. Assemblerprogrammierung des entsprechenden Prozessors
2. du kannst den µ "resetten", initialisieren ( welche Pins sind nun Eingänge, welche Ausgängen ), in einer Endlosloop laufen lassen
3. du weisst warum und wie in Assembler ein Taster entprellt werden muss
3. du kann den µController beschalten ( Spannungsversorgungen, eventuell externer Quarz für Takt )
4. du kannst eine Diodenkennlinie lesen und errechnen mit welchem Vorwiderstand deren Strom begrenzt werden muss
5. etc. pp.


Was brauchst Du:
µController: AVR, Atmet, Pic, TI usw.
Lesestoff: das Internet ( vor allem auch das deutschsprachige ) ist voll von Anleitungen und Tipps in der Art wie:
https://www.projektlabor.tu-berlin.de/menue/onlinekurs/testaufbau/wie_funktioniert_ein_steckbrett/

Was Du auf keinen Fall brauchst:
1. Arduino und dessen Clones
2. Raspberry Pi, dessen Forks und Clones
3. Basicähnliche Sprachen und 'Entwicklungsumgebungen'
3. Auf Java-basierte Entwicklungsumgebungen
4. Windows
Letzteres erwähne ich deshalb, weil inzwischen an vielen FHs gerade in dem Bereich oft mit Win gearbeitet wird -
aber wir wollen und sollten uns hier nicht auf dieses FH Niveau begeben
 
R

ralli

Guest
Themenstarter #31
Sehr schöner Beitrag @Vril, danke dafür.

Ich denke, ich habe es schon mal gepostet, im Grunde gibt es bei mir keinen Bedarf, eine wie immer geartete Aufgabe in Assembler zu programmieren. Ich bin einfach nur neugierig und wollte mal reinschnuppern. Die Zeit, wo die Rechenleistung noch im argen lag und der Arbeitsspeicher knapp und teuer, sind gottlob ja auch vorbei. Damals war 1988 dBase III und IV noch in Assembler erstellt. Im Grunde komm ich mit Java ganz gut klar, hat den Vorteil, das es portabel ist.
 

ath0

Well-Known Member
#36
Also die ISBN von dem Buch ist 3-528-04791-7 leider habe ich damit nichts finden können das mit dem Buch zu tun hat. Da das Buch schon ca so alt wie ich Selbst ist, könnte es natürlich auch sein das es nie im Netz gelandet ist. Den Titel kann ich dir geben sobald ich das Buch wieder in Händen halte, evtl. schon Morgen. Ich versuche mal heraus zu finden, ob es schon aus dem Urheberrecht raus ist, wenn dem so wäre, könnte ich evtl. eine Kopie anfertigen. Obwohl ich denke das der Urheber selbst schon ewig im Ruhestand ist und der Verlag evtl. der Wende zum Opfer gefallen ist.
 

Rakor

Administrator
Mitarbeiter
#37
Gebraucht aus dem Amazonas für 5 Euro zu bekommen. "Assembler-Programmierung mit dem PC. Eine schrittweise und praxisnahe Einführung"
 
R

ralli

Guest
Themenstarter #38
Danke @ath0 und @Rakor für Eure Bemühungen. Ich denke, ich werde erst mal mit C anfangen, da gibt es genügend Literatur und ge rauchen kann ich es immer.
 

Vril

Well-Known Member
#39
Danke @ath0 und @Rakor für Eure Bemühungen. Ich denke, ich werde erst mal mit C anfangen, da gibt es genügend Literatur und ge rauchen kann ich es immer.
Eine Hochsprache ist natürlich schon deshalb effektiver, weil Dir die Prozessornähe erspart bleibt.
Es macht ja auch wenig Sinn heute Assembler mit Büchern zu lernen - die sich vielleicht auf Intel8088 beziehen.
 

ath0

Well-Known Member
#40
Eine Hochsprache ist natürlich schon deshalb effektiver, weil Dir die Prozessornähe erspart bleibt.
Es macht ja auch wenig Sinn heute Assembler mit Büchern zu lernen - die sich vielleicht auf Intel8088 beziehen.
Ok, ich gestehe, heutige CPUs sind etwas koplexer geworden, aber das es wenig Sinn macht sich mit 8088 oder 8086 CPUs zu befassen, dem würde ich definitiv wiedersprechen. Die grundlegende Architektur hat sich nicht geändert, die register eines 8086 sind noch heute in voller Pracht in einer was weis ich Intel I7 CPU vorhanden und die Befehle von (das wollte ich schon immer mal sagen ohne das es sich Albern anhört :D ) Früher funktionieren auch noch. Was sich verändert hat, sind definitiv die Tacktraten. Für die ersten Schritte ist 8086 Assembler genau das Richtige da man hier noch nichts mit neumodischem Schnickschnak überladenem Kram zu tun hat und sich erstmal auf das Wesentliche konzentrieren kann. Heute schaue ich wenn ich Mal wieder Assembler basteln will in die Papers von Intel und kann unter allen darin enthaltenen Informationen alles für mich wichtige raus lesen, ohne die Anfänge mit 8086 Assembler, wäre ich damit absolut überfordert.

Das Buch behandelt den 8086 und 8088, für welchen man damals Programmiert hat, war ziehmlich wurst, jedoch z.b. bei der externen übertragung musste man die 8 Bit breite anbindung beachten ;)

@Rekor, mein Internet muss kaputt sein^^ , ich habe mit der ISBN irgendwas über SPS Programmierung gefunden, aber nicht das Büchlein.