Assembler für Anfänger

In jedem Geschäft geht es darum, anzufangen. Oder hier noch ein gutes Sprichwort: "Der Anfang ist die halbe Miete." Aber manchmal wissen Sie nicht einmal, wie Sie sich einer Frage von Interesse nähern sollen. Aufgrund der Tatsache, dass meine Erinnerungen noch frisch sind, teile ich meine Gedanken mit denjenigen, die interessiert sind.

Bild

Ich werde gleich sagen, dass ich es persönlich nicht unter dem PC, sondern unter den Mikrocontrollern montiere. Dies spielt jedoch keine Rolle, da das Befehlssystem für diese Mikrocontroller mit einem PC (im Gegensatz zu den AVR-Mikrocontrollern) sehr ähnlich ist. Tatsächlich ist er ein Assembler und ein Assembler in Afrika.

Natürlich habe ich mir nicht zum Ziel gesetzt, in diesem Artikel alles Notwendige von Anfang bis Ende zu beschreiben. Glücklicherweise wurde bereits unglaublich viel Literatur in Assembler geschrieben. Und ja, meine Erfahrung kann sich von der Erfahrung anderer Programmierer unterscheiden, aber ich denke, es ist nicht überflüssig, das Grundkonzept dieses Themas in meinem Verständnis zu skizzieren.

Zunächst möchte ich neugierige Rekruten beruhigen: Der Assembler ist entgegen der stereotypen Meinung überhaupt nicht kompliziert. Es ist nur näher an der "Erde", das heißt an der Architektur. In der Tat ist es sehr einfach, wenn Sie die Hauptidee erfassen. Im Gegensatz zu Hochsprachen und einer Vielzahl spezialisierter Programmierplattformen (mit alledem meine ich C ++, MatLAB und ähnliche Dinge, die Programmierkenntnisse erfordern) haben sich die Teams ein- oder zweimal darum gekümmert. Am Anfang, selbst als ich das Doppelintegral berechnen musste, verursachte diese Aufgabe nur Verwirrung: Wie kann eine solche Prozedur mit einer so mageren Anzahl von Operationen durchgeführt werden? Tatsächlich können Sie im Assembler nur Zahlen addieren, subtrahieren und verschieben. Mithilfe von Assembler können Sie jedoch beliebig komplexe Vorgänge ausführen, und der Code wird extrem einfach.
bset P2.0
Und wie sie sagen, kein Problem. Müssen Sie vier in Reihe geschaltete Teile einschalten? Ja, leicht:
mov P2, # 000fh
Ja, hier meine ich, dass der Neuling Kämpfer auch mit Zahlensystemen bereits vertraut ist. Na ja, zumindest mit einer Dezimalstelle. ;)

Um also bei der Montage Erfolg zu haben, sollten Sie die Architektur (in meinem Fall) des Mikrocontrollers verstehen. Dies ist die Zeit.

Übrigens ist die Organisation des Gedächtnisses einer der wunden Punkte im Wissen über Architektur. Hier auf Habré habe ich den entsprechenden Artikel gesehen: habrahabr.ru/blogs/programming/128991 . Ich kann auch die Hauptschmerzpunkte erwähnen: Unterbrechungen. Die Sache ist nicht kompliziert, aber zunächst (aus irgendeinem Grund) schwer zu erkennen.

Wenn Sie vor einer schwierigen Aufgabe stehen und zunächst nicht einmal wissen, wie Sie sie angehen sollen, schreiben Sie am besten einen Algorithmus. Es spart wirklich. Und am Anfang ist es besser, mit dem Algorithmus zu beginnen, auch wenn das Programm nicht kompliziert ist, da dieser Prozess dabei hilft, alles in den Kopf zu bekommen. Zurück zum Beispiel mit der Berechnung des Doppelintegrals nach experimentellen Daten. Ich habe den ganzen Tag über den Algorithmus nachgedacht, aber dann habe ich das Programm in nur 20 Minuten darauf geschrieben. Außerdem ist der Algorithmus nützlich für die weitere Modernisierung und / oder den Betrieb des Programms. Andernfalls erfordert der Assembler-Code, wenn er zeilenweise verstanden wird, manchmal viel Arbeit, um herauszufinden, was die allgemeine Idee ist.

Der zweite Schlüssel zum Erfolg ist also ein gut geschriebener und gut gestalteter Algorithmus. Ich empfehle dringend, sich nicht sofort ans Gerät zu setzen und ein Programm zu schreiben. Sie werden unterwegs nichts Vernünftiges schreiben. Das sind zwei.

Eigentlich würde ich gerne als Fandorin schreiben: "Das ist ein t-t-three" ... Aber ich fürchte, wir können jetzt hier aufhören. Obwohl ich noch ein paar Empfehlungen und Lebkuchen hinzufügen möchte.

Um meinen etwas verwirrten Monolog zusammenzufassen: Die wichtigsten Punkte bei der Assembler-Programmierung sind Kenntnisse der Architektur und die kohärente Konstruktion von Gedanken. Natürlich ist es nicht notwendig, sich sofort auf ein Literaturstudium einzulassen, das die Innenseiten desselben PCs beschreibt, aber eine allgemeine Idee (ich wiederhole es zumindest für den Anfang) wird sehr notwendig sein.

Und jetzt die versprochenen Lebkuchenplätzchen! Hier kreuzige ich über einen unverständlichen Assembler, aber was ist eigentlich gut daran? Ja, viele Dinge! Zunächst müssen Sie sich natürlich nicht viele Befehle, Bibliotheken und andere verwandte Abfälle merken. Nur ein paar Teams und Sie sind voll ausgestattet. Zweitens können Sie aufgrund der extremen Nähe zu Maschinencodes fast alles tun, was Sie wollen (im Gegensatz zu denselben Hochsprachen)! Drittens wird der Assembler-Code aufgrund der maximalen Prägnanz des Wortlauts extrem schnell ausgeführt.

Im Allgemeinen solide Pluspunkte. In diesem optimistischen Sinne möchte ich mich verabschieden.

Jetzt auch beliebt: