Kann mir jemand mit erfahrung ein paar tips geben wie man am besten vorgeht wenn man Assembler lernen will. Und einpaar gute tutorial links wären sehr hilfeich. Ich muss in 2 wochen mit 8051 etwas coden, das problem ist das die meisten bücher zu umfangreich/komplex sind. Vielen dank
Die Zeit ein paar Wochen zurückdrehen? Ansonsten 24h am Tag lesen/verstehen/lernen. Und wenn das nicht reicht, die Nacht noch dazu nehmen.
> Ich muss in 2 wochen mit 8051 etwas coden, ... Musst du in 2 Wochen mit der Programmierung beginnen und hast dann 2 Monate Zeit, die Sache fertigzustellen, wobei das zu erstellende Programm lediglich eine LED zum Blinken bringen soll? Dann fang jetzt an, ein 8051-Buch zu lesen. Wenn du bis in zwei Wochen noch nicht alles kapiert hast, kannst du dir den Rest in den verblei- benden 2 Monaten erarbeiten. Oder muss in 2 Wochen das Programm schon fertig sein, und das Programm ist eine Segway-Steuerung mit allem drum und dran? Dann würde ich vielleicht doch eher den ersten Vorschlag von "..." in Erwägung ziehen, dabei aber "Wochen" durch "Jahre" ersetzen ;-) Spaß beiseite: Wenn dir ein paar Mikroprozessorbegriffe (wie Speicher- adresse, Akkumulator oder Stack) bereits geläufig sind, kannst du mit Hilfe eines ordentlichen 8051-Buchs (Tipps habe ich leider keine) bis in zwei Wochen bestimmt schon kleinere Anwendungen (auch etwas mehr als die blinkende LED) programmieren. Sooo schwierig ist die Assemblerprogram- miererei auch wieder nicht. Schwieriger wird es dann, wenn du in Assembler komplizierte Berechnungen anstellen und dir die einzelnen Rechenroutinen (z.B. 16-Bit-Division) aus einzelnen 8051-Befehlen zusammenstückeln musst, und wenn das Pro- gramm so umfangreich ist, dass du dir über eine ordentlich Software- struktur Gedanken machen musst, um den Überblick zu behalten.
> Ich muss in 2 wochen mit 8051 etwas coden, das problem ist das die > meisten bücher zu umfangreich/komplex sind. Nimm einen Compiler zu Hilfe :-)
Naja also die sache ist die ich studiere elektrotechnik wir haben eine Vorlesungen die nennt sich Mikcomputertechnik gehts um Hardwarestruktur und Assembler programierung mit 8051/52 und PIC und DSP. Die Klausur ist erst in 2 Monaten oder so aber ich muss jetzt anfangen zu lernen lese seit einpaar tagen exzessiv bücher werde daraus aber nicht so wirklich schlau. Die klausur ist recht umfangreich daa fängt mit einfachen Assembler befehlen über state machines struktogramme,Hardwarespezifische fragen,und schließlich mega Aufgabe wie sie haben 4 sensoren 8 tasten usw usw schreiben sie assembler code dazu... Die Vorlesung besuche ich nicht weil unser Prof redet in Assembler man versteht ihn einfach nicht. MFG
> Die Vorlesung besuche ich nicht weil unser Prof redet in Assembler > man versteht ihn einfach nicht. "Ein Teufelskreis ...", würde Herr Kaiser sagen ;-) Hast du ein Stückchen Hardware oder Software, auf dem du das Gelernte zappeln lassen kannst? Mir geht es jedenfalls so, dass Bücher zwar wichtig sind, der Aha-Effekt aber erst durch das Ausprobieren kommt. Da bin ich z.B. gerade über einen 8051-Simulator gestolpert: http://www.edsim51.com/ Ich habe keine Ahnung, ob der etwas taugt, aber er sieht ganz lustig aus, da insbesondere auch etwas virtuelle Peripherie (Schalter, LEDs, Tastatur, Schieberegler, Motor usw.) vorhanden ist. Unten auf der Webseite ist ein Link auf "A very good online tutorial": http://www.mytutorialcafe.com/index%20Tutorial.htm Auch hierzu habe ich keine Erfahrungswerte, aber vielleicht entspricht es ja deinem Geschmack. Auf 8052.com, einer der zentralen Anlaufstellen für 805[12]-Fans, gibt es auch eins: http://www.8052.com/tut8051 Vielleicht hilft's ...
Ja in Tat ein Teufelskreis :-) Ja vielen dank für den anfang sind die links sehr nützlich .
Hi Assembler lernen heißt begreifen, das ein µC nichts kann. Alles was gemacht werden muß, ist in der Fuktionalität der Register zu sehen. z. B. eine Zuweisung in Pascal A:=5, in Basic A=5, in Assembler LDI Reg_x, 5 STS A, Reg-x Sicherlich gibt's auch Makros und komplexere Befehle. z.B. ist ein RJMP Marke hinterlegt mit Adresse Marke holen, auf den Programmcounter setzen und damit die Adresse anspringen, um den nächsten Befehl zu holen. Dies ist jedoch in der Hardwarestruktur des µC hinterlegt, wenn derentsprechende Hexcode in sein Befehlsregister geladden wird. nd da sind wir auch schon beim Thema, Assembler ist eine Mnemonik-Sprache, die ebenfalls erst übersetzt werden muß, damit ein Controller versteht, was von ihm verlangt wird. So, nun zum Lernen. Da gibt's verschidene Lesebefehle (LoaD) sowie auch verschiedene Schreibbefehle (STore) Die schaut man sich erst einmal an. Dann folgen die logischen und mathematischen Operationen innerhalb der Register Or, And, Add usw. Nun wollen wir etwas auswerten und darauf reagieren, also Entscheidungen treffen, sogenannte Vergleiche anstellen (ComPare) Compare ist nichts anderes, als eine Subtraktion, die aber nicht ausgeführt, sondern nur Flags beeinflußt. D.H. die vergleichenden Register behalten ihre Werte, anders bei Subtraktion, wo ein Register das Ergebnis führt, aber auch (Ergebnis-) Flags werden gesetzt. Zur Reaktion auf die Ergebnisse gibt es Sprünge, die von den Flags abhängen oder unbedingte, die den Programmverlauf steuern. Es gibt noch ein paar prozessorabhängige Befehle z.B. für Timer, Counter, Ports und spezielle Register. Die lernt man entsprechend bei Bedarf. Fassen wir kurz zusammen, immer denken, wie ein µC funktioniert. Wert in Register holen, beeinflussen und in Speicher zurückschreiben oder Wert holen, vergleichen und je nach Flagzustand (größer, größer-gleich, gleich, kleiner-gleich, kleiner) zu einer Marke springen. Während eine Hochsprache den Programmierer von solch komplizierten Schritten wie Adressierung, Hardwaresteuerung etc. durch komplexe Befehle entlastet, muß in Assembler halt auf der Basis des Controllers gedacht werden. Hat man das begriffen, ist das erlernen von Assembler kein Problem mehr. Gruß oldmax
Schau dir mal Das Mikrocontroller Kochbuch von A. Roth an. Ist fürs Verständnis nicht schlecht wenns um x51 geht. Eventuell andere Derivate aber die Prinzipien und der Befehlssatz sind gleich
ms schrieb:
> Schau dir mal Das Mikrocontroller Kochbuch von A. Roth an.
jepp, kann ich zu 100% bestätigen. Gutes Buch.
Dazu evtl noch das Applikations Kochbuch.
Beides bei Bücherbilliger erhältlich.
Also ich kann dir was zu meinen Anfängen schreiben. Und zwar habe ich angefangen mit dem Programm von http://emu8086.com/ Assembler zu lernen. Leider ist diese Software nicht kostenlos aber hat auch schon viele Beispiele und die Ausgabe, die man zu sehen bekommt ist leicht durchschaubar. Als Begleitlektüre diente mir dieses Buch: Assembler: Maschinennahes Programmieren von Anfang an. Mit Windows-Programmierung (Taschenbuch) von Reiner Backer. Dann ging mir darum, erstmal mit Basisbefehlen zu experimentieren. Also MOV, Sprungbefehle und das Ansprechen von Registern usw. Im Grunde bekommt man schnell ein Gefühl dafür, sofern man sich damit beschäftigt und nicht nur mit Copy & Paste bastelt. Später habe ich mir dann für roundabout 35€ ein KISS-Lernsystem gelötet und ausserhalb von Simulationssoftware meinen Code ausprobiert. Soweit kam ich bislang ohne weitere Hilfe und nu habe ich vor eine Stufe weiter zu gehen und weitere Gerätschaften mit dem µC anzusteuern.
ich hab assembler gelernt weil ich wissen wollte wie viren funktionieren... das bekommt man am besten raus wenn man selber welche schreibt. für die rechtsabteilung hier: es waren reine test-viren ohne schadfunktion, dafür mit einem zähler der die verbreitung nach der zehnten generation unterbrechen würde falls mal einer abhaut.
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.