Assembler Tutorial

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von SeriTools.

    Assembler Tutorial

    Hey Community,

    nach langem googlen habe ich immer noch kein anschauliches Tutorial zum Thema Assembler gefunden, deswegen stelle ich nun hier meine Frage:

    Kennt jemand von euch ein gutes Assembler Tutorial welches verständlich erklärt ist, oder ein gutes Buch zu diesem Thema, welches ihr mir weiterempfehlen könnt?

    Ich bitte euch hier nur zu antworten wenn ihr eine Antwort auf meine FRAGE habt und nicht irgendwie von wegen warum willst du Assembler lernen etc.
    Ich will es lernen weil ich mich weiterbilden will und ich es für meinen Beruf brauche.

    @Mods: Wenn es so ein Thema schonmal gab und ich es übersehen habe löscht dieses hier bitte :)

    lg.

    LucaWelker
    lg.

    LucaWelker
    Ja waren es ;) blöd bin ich auch nicht.. Aber ich suche auch welche, welche noch etwas mehr in die Theorie gehn. Ich habe natürlich nicht jeden Link angeklickt, aber die fünf welche ich mir angeschaut habe, haben mir persönlich nicht gefallen.
    lg.

    LucaWelker
    Naja so einfach wirst du keine Tutorials finden, den Assembler ist nicht wie andere Sprachen immer gleich, sondern hängt vom verwendeten Prozessor ab den man programmieren möchte. Nach dessen Befehlssatz richtig sich ja die Programmierung.
    Ich habe z.B. während meiner Ausbildung mit dem PIC16F84 angefangen zu programmieren, er hat 32 Befehle, also ziemlich überschaubar und man konnte schon einiges damit machen. Zum Testen haben wir uns ModulBoards gebaut welche Module für Ein- und Ausgabe hatten.

    Ebenfalls der Aufbau des Registers kann man micht verallgemeinern sondern is Typspezifisch, so sind beim PIC16F84 die ersten 8 Registerplätze z.B. Interupt-Plätze, heißt wenn ein Interrupt ausglöst wird, springt der Prozessor an diese Stelle und dort wird definiert was passieren soll.

    Als ich mal aus spaß angefangen habe mich mit den Prozessoren von Heute zu beschäftigen und ein eigenes OS in Assembler zu schreiben habe ich gemerkt das dieses wieder komplett anders war als mit dem PIC zu programmieren. Wenn man jedoch die Basics weiß, wie ein Prozessor funktioniert geht es, man muss sich eben nur den Befehlssatz raussuchen.

    Somit solltest du dich erstmal äußern, wass du genau machen möchtest. Willst du einen Mircoprozessor wie PIC oder ATMEL Programmieren um elektronische Schaltungen anzusteuern? Willst du sowas wie Betriebssystemprogrammierung machen?
    Hey,

    danke für deine genaue info ;) Ich hätte mich vllt. genauer äußern sollen. Im Prinzip geht es mir Hauptsächlich darum zu verstehen wie das arbeiten mit den einzelnen Registern usw. Funktioniert. Ggf. ist hier Assembler vllt. sogar der falsche Ansatz da ich vllt. zuerst wissen sollte wie ein Prozessor genau Funktioniert.

    Willst du einen Mircoprozessor wie PIC oder ATMEL Programmieren um elektronische Schaltungen anzusteuern? Willst du sowas wie Betriebssystemprogrammierung machen?
    Ganz erlich gesagt habe ich mir hier noch kein direktes Ziel gesetzt, sondern es ging mir mehr darum das ganze mal relativ(so gut wie es möglich ist) allgemein zu erlernen / zu verstehen. :)

    lg.
    lg.

    LucaWelker
    Nun einfach gesprochen hast du verschiedene Module im Prozessor. Ein Speicherregister wo das Programm sitzt, ein Taktgeber, Arbeitsregister, der eigentliche Prozessor und Perepherie Controller.

    Beim starten wird im Speicherregister an Adresse 0 gestartet und dann mit jedem Takt die Adresse inkrementiert, so läuft das Programm von oben nach unten ab.
    Bei jedem Takt wird der Wertwelcher aus Befehl + Parameter besteht an den Prozessor gegeben welcher den Befehl entsprechend verarbeitet mit den angegebenen Parametern. Ist es z.B. ein Ausgabe Befehl, so sendet der Prozessor das an den Perepherie Controller welcher dann die Ausgabe macht.

    Ich habe gerade mal ein paar Wiki artikel überflogen und denke dass dort ausreichend gut die Funktionsweise eines MP erklärt wird. Aber es ist ein komplextes Thema und am besten lern man sowas wenn man es anwendet, wie z.B. auf so einem kleinen MP wie dem PIC. Dass man irgendwas progammiert und gleich sieht was das Ergebnis ist.

    de.wikipedia.org/wiki/Mikroprozessor
    de.wikipedia.org/wiki/Befehlszyklus
    de.wikipedia.org/wiki/Assemblersprache
    Hey danke für die Antwort :)

    ich werde mir die Wikibeiträge mal durchlesen.
    Es gibt ja vier Register(zumindest so wie ich es bis jetzt gelesen habe; gilt für 32 Bit Prozessoren) die jeweils 32 Bit groß sind EAX, EBX, ECX und EDX, mein Problem bestand zum einen jetzt z.B. darin das in keinem Tutorial richtig erklärt war wofür die einzelnen Register wirklich da sind.. Was ich wann wo ablege etc.

    Was kostet den ein MP z.B. wie du es genannt hast den PIC und welche kannst du mir denn empfehlen?

    Ich werde mir die Beiträge mal durchlesen und weiter suchen vllt. finde ich noch ein paar Infos über die Register etc.

    lg:)
    lg.

    LucaWelker
    Nun also der PIC16F84 gibts bei Reichelt für 1-2€ vlt. dann benötigst du jedoch noch einen Brenner, um das Programm auf den Prozessor zu brennen. Eine Testumgebung kann man sich selbst bauen, mit LEDs an den IO-Pins und ebenfalls Schaltern an den IO Pins als Tristatelösung, so das die Pins eben auch als Output und INput verwendet werden können.

    Also im PIC gibts glaube ich 3 Register.
    Zum einen das Speicherregister wo das Programm liegt
    Das Workregister, damit Werte genutzt werden müssen sie erstmal in dieses Register, man könnte es als RAM bezeichnen wo Variablen usw. drin gespeichert werden
    Das Settingregister, wo zum einen Einstellungen gesetzt werden können, aber auch die Perepherie angesteuert wird drüber.

    Hier ist eine PDF wo der PIC beschrieben wird, auch noch einiges erklärt, der Befehlssatz aufgeführt, Beispiele und Schaltpläne für ein Testboard

    agee.c-lected.de/ag_projekte/picboard/script.pdf
    Hey :)

    danke dass nen ich doch mal brauchbare antworten :) sehr geil danke.. da merkt man halt doch wieder wer Ahnung von der Materie hat und wer einfach nur mal i.wo was schreiben wollte ;)

    Dann werd ich doch glatt mal versuchen das ganze so zu machen :)

    Eine Frage hätte ich noch :) wie siehts denn aus mit Communitys zum Thema PIC bzw. Assembler? Ich mein ich kann ja bei Fragen schlecht das Forum hier zumüllen xDD

    lg.
    lg.

    LucaWelker
    Nunja meine PIC Erfahrungen sind nu doch schon öhm ~4 Jahre her, aber ansonsten könntest mir bei kleinen Fragen ne PN schreiben, nur ohne Garantie das ich auch helfen kann *g*

    Ansonsten ist ein gutes Forum mikrocontroller.net/ aber das ist etwas überladen unübersichtlich und dort treiben sich neben wirklich guten auch jede menge Noobs wie hier in VB-Forum rum. Also Lernunwillig, wollen aber Cool sein und das krasseste Programmieren, jedoch null Ahnung von ASM oder Elektronik.

    Ich bin dort nicht angemeldet, habe aber schon die ein oder andere Frage gestellt, die mir dann auch immer zu meiner zufriedenheit beantwortet wurde.
    Hey,

    im Prinzip ist es egal wie lange es her ist.. aber du hast die Erfahrungen gesammelt und verlieren wirst du sie normal nich mehr :) außer du wirst Demenz(schreibt man das so?!) xD
    Danke für dein Angebot das werde ich natürlich dankend annehmen und zum Forum werde mich da mal registrieren und mal schaun.
    Und die lernunwilligen Noobs hat man leider in jedem Forum.

    lg.

    Edit: Hab mir grade mal das Forum angeschaut :-O soeben hat der Begriff überladen eine ganz neue Bedeutung bekommen :D das tut ja als Webentwickler fast schon weh xD
    lg.

    LucaWelker
    also ich finde das ganz Ok...xD
    gut man könnte es besser strukturieren, aber ich finds besser als blödsinnigen JavaScript-Effekte-Schnick-Schnack(JESS)...xD
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Nuja es ist m.M.n. verdammt überladen und das Design ist auch einfach nur hässlich xDD ich selbst bin auch kein riesen Fan von Javascript ich finde immer es sollte erstmal alles ohne Javascript funktionieren und danach wird dann Js eingebaut..

    Aber die Seite?! :D also das is schon übel! xD
    lg.

    LucaWelker
    Hehe xD okey das haut mich nun um:D ich geb mich geschlagenxD

    ja ich werd da jetzt erstmal durchklicken.. aber heute wird es nichts mehr hab von nem Arbeitskollegen so ne richtige Assi aufgabe bekommen xDD
    lg.

    LucaWelker