Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

Mikroprozessorprogrammierung

Das "Vokabular" von Befehlen, das ein bestimmter Mikroprozessorchip besitzt, ist spezifisch für dieses Chipmodell. Ein Intel 80386 verwendet beispielsweise einen völlig anderen Satz von Binärcodes als ein Motorola 68020, um äquivalente Funktionen zu bezeichnen.

Leider gibt es keine Standards für Mikroprozessorbefehle. Das macht die Programmierung auf der untersten Ebene sehr unübersichtlich und spezialisiert.

Wenn ein menschlicher Programmierer eine Reihe von Anweisungen entwickelt, um einem Mikroprozessor direkt mitzuteilen, wie er etwas tun soll (z. B. die Kraftstoffeinspritzrate eines Motors automatisch steuern), programmiert er in der eigenen „Sprache“ der CPU. Diese Sprache, die aus denselben Binärcodes besteht, die die Steuereinheit im CPU-Chip dekodiert, um Aufgaben auszuführen, wird oft als Maschinensprache bezeichnet .

Während Maschinensprachsoftware in binärer Notation „formuliert“ werden kann, wird sie oft in hexadezimaler Form geschrieben, da sie für den Menschen einfacher zu handhaben ist. Ich präsentiere zum Beispiel nur einige der gebräuchlichen Befehlscodes für den Intel 8080-Mikroprozessorchip:

Hexadezimal-Binärbefehlsbeschreibung -------------- -------- ------------------------------ ---------- | 7B 01111011 Inhalt von Register A in Register E verschieben | | 87 10000111 Inhalt von Register A zu Register D hinzufügen | | 1C 00011100 Erhöhe den Inhalt von Register E um 1 | | D3 11010011 Datenbyte an Datenbus ausgeben 

Auch bei hexadezimaler Schreibweise können diese Anweisungen leicht verwechselt und vergessen werden. Zu diesem Zweck existiert eine weitere Hilfe für Programmierer namens Assemblersprache .

Bei der Assemblersprache werden mnemonische Wörter mit zwei bis vier Buchstaben anstelle des eigentlichen Hex- oder Binärcodes zum Beschreiben von Programmschritten verwendet. Zum Beispiel die Anweisung 7B für den Intel 8080 wäre „MOV A,E ” in Assembler.

Die Mnemonik ist natürlich für den Mikroprozessor nutzlos, der nur binäre Codes verstehen kann, aber für Programmierer ist es eine zweckmäßige Möglichkeit, das Schreiben ihrer Programme auf Papier oder Texteditor (Textverarbeitung) zu verwalten. Es gibt sogar für Computer geschriebene Programme namens Assembler die diese Mnemonik verstehen und sie in die entsprechenden Binärcodes für einen bestimmten Zielmikroprozessor übersetzen, sodass der Programmierer ein Programm in der Muttersprache des Computers schreiben kann, ohne sich jemals mit seltsamer Hex- oder mühsamer Binärcode-Notation auseinandersetzen zu müssen.

Sobald ein Programm von einer Person entwickelt wurde, muss es in den Speicher geschrieben werden, bevor ein Mikroprozessor es ausführen kann. Wenn das Programm im ROM gespeichert werden soll (was einige sind), kann dies mit einer speziellen Maschine namens ROM-Programmierer erfolgen , oder (wenn Sie masochistisch sind), indem Sie den ROM-Chip in ein Steckbrett einstecken, ihn mit den entsprechenden Spannungen einschalten und Daten schreiben, indem Sie jeweils die richtigen Drahtverbindungen zu den Adress- und Datenleitungen herstellen Anleitung.

Wenn das Programm in einem flüchtigen Speicher abgelegt werden soll, wie z Tastenanschläge von einer Tastatur zu akzeptieren und sie als Befehle im RAM zu speichern), auch wenn es zu dumm ist, um etwas anderes zu tun.

Viele „Hobby“-Computerkits funktionieren so. Wenn der zu programmierende Computer ein voll funktionsfähiger Personal Computer mit Betriebssystem, Diskettenlaufwerken und dem ganzen Werk ist, können Sie dem Assembler einfach befehlen, Ihr fertiges Programm zum späteren Abrufen auf einer Diskette zu speichern.

Um Ihr Programm „auszuführen“, geben Sie einfach den Dateinamen Ihres Programms an der Eingabeaufforderung ein, drücken die Eingabetaste, und das Programmzählerregister des Mikroprozessors würde so eingestellt, dass es auf die Stelle („Adresse“) auf der Diskette zeigt, an der sich der erste Befehl befindet gespeichert, und Ihr Programm würde von dort aus laufen.

Obwohl die Programmierung in Maschinensprache oder Assemblersprache schnelle und hocheffiziente Programme ermöglicht, erfordert dies für alles andere als die einfachsten Aufgaben viel Zeit und Geschick, weil jede maschinensprachliche Anweisung so grob ist. Die Antwort darauf besteht darin, Möglichkeiten für Programmierer zu entwickeln, in „High-Level“-Sprachen zu schreiben, die menschliches Denken effizienter ausdrücken können. Anstatt Dutzende von kryptischen Assemblersprachencodes einzugeben, könnte ein Programmierer, der in einer höheren Sprache schreibt, so etwas schreiben. . .

Drucken Sie "Hallo Welt!" 

. . . und erwarten Sie, dass der Computer „Hallo Welt!“ druckt. ohne weitere Anleitung dazu. Das ist eine großartige Idee, aber wie versteht ein Mikroprozessor ein solches „menschliches“ Denken, wenn sein Vokabular so begrenzt ist?

Die Antwort kommt in zwei verschiedenen Formen:Interpretation , oder Zusammenstellung . Genau wie zwei Menschen, die unterschiedliche Sprachen sprechen, muss es einen Weg geben, die Sprachbarriere zu überwinden, damit sie sich unterhalten können.

Ein Übersetzer wird benötigt, um die Worte jeder Person einzeln in die Sprache der anderen Person zu übersetzen. Für den Mikroprozessor bedeutet dies ein anderes, von einem anderen Programmierer in Maschinensprache geschriebenes Programm, das die ASCII-Zeichenmuster von High-Level-Befehlen wie Drucken (Drucken) erkennt und in die notwendigen Bit-Size-Schritte übersetzen kann, die der Mikroprozessor direkt kann verstehen.

Wenn diese Übersetzung während der Programmausführung erfolgt, so wie ein Übersetzer zwischen zwei Personen in ein Live-Gespräch eingreift, wird dies als „Interpretation“ bezeichnet. Wenn andererseits das gesamte Programm auf einen Schlag in die Maschinensprache übersetzt wird, wie ein Übersetzer, der einen Monolog auf Papier aufnimmt und dann alle Wörter auf einmal in ein schriftliches Dokument in der anderen Sprache übersetzt, heißt der Vorgang „ Zusammenstellung.“

Die Interpretation ist einfach, führt jedoch zu einem langsam laufenden Programm, da der Mikroprozessor das Programm ständig zwischen den Schritten übersetzen muss, und das braucht Zeit. Die Kompilierung dauert anfangs, um das gesamte Programm in Maschinencode zu übersetzen, aber der resultierende Maschinencode muss danach nicht mehr übersetzt werden und läuft daher schneller.

Programmiersprachen wie BASIC und FORTH werden interpretiert. Sprachen wie C, C++, FORTRAN und PASCAL werden kompiliert. Kompilierte Sprachen werden im Allgemeinen aufgrund der Effizienz des Endprodukts als die Sprache der Wahl für professionelle Programmierer angesehen.

Da sich der Maschinensprachvokabular von Mikroprozessor zu Mikroprozessor stark unterscheidet und Hochsprachen so universell wie möglich ausgelegt sind, müssen die für die Sprachübersetzung erforderlichen Dolmetsch- und Kompilierungsprogramme mikroprozessorspezifisch sein.

Die Entwicklung dieser Interpreter und Compiler ist eine beeindruckende Leistung:Die Leute, die diese Programme machen, verdienen ihren Lebensunterhalt auf jeden Fall, vor allem wenn man bedenkt, wie viel Arbeit sie leisten müssen, um ihr Softwareprodukt mit den sich schnell ändernden Mikroprozessormodellen auf dem Markt aktuell zu halten !

Um diese Schwierigkeit zu mildern, versuchen die richtungsweisenden Hersteller von Mikroprozessorchips (insbesondere Intel und Motorola), ihre neuen Produkte abwärtskompatibel zu gestalten mit ihren älteren Produkten. Zum Beispiel ist der gesamte Befehlssatz für den Intel 80386-Chip in den neuesten Pentium IV-Chips enthalten, obwohl die Pentium-Chips zusätzliche Befehle haben, die den 80386-Chips fehlen.

Das bedeutet, dass maschinensprachliche Programme (auch Compiler), die für 80386-Computer geschrieben wurden, auf der neuesten und besten Intel Pentium IV-CPU ausgeführt werden, aber maschinensprachliche Programme, die speziell geschrieben wurden, um den größeren Befehlssatz des Pentiums zu nutzen, nicht auf ein 80386, weil die ältere CPU einige dieser Anweisungen einfach nicht in ihrem Vokabular hat:Die Control Unit im 80386 kann sie nicht dekodieren.

Darauf aufbauend verfügen die meisten Compiler über Einstellungen, die es dem Programmierer ermöglichen, auszuwählen, für welchen CPU-Typ er oder sie maschinensprachlichen Code kompilieren möchte. Wenn sie die 80386-Einstellung auswählen, führt der Compiler die Übersetzung nur unter Verwendung von Anweisungen durch, die dem 80386-Chip bekannt sind; Wenn sie die Pentium-Einstellung auswählen, kann der Compiler alle Pentiums bekannten Anweisungen verwenden.

Dies ist vergleichbar damit, einem Übersetzer mitzuteilen, welches Mindestleseniveau sein Publikum haben wird:Ein für ein Kind übersetztes Dokument wird für einen Erwachsenen verständlich sein, aber ein für einen Erwachsenen übersetztes Dokument kann für ein Kind sehr wohl Kauderwelsch sein.

VERWANDTES ARBEITSBLATT:


Industrietechnik

  1. 10 coolste Cloud-Programmiersprachen
  2. C-Programmieroperatoren
  3. Programmiersprache C PDF:Grundlagen-Tutorial für Anfänger
  4. Bosque:Microsofts neue Programmiersprache ohne Schleifen
  5. 9 neue Programmiersprachen zum Erlernen im Jahr 2021
  6. C-Tutorial
  7. C-Sprache - Übersicht
  8. C - Programmstruktur
  9. C# – Übersicht
  10. Heidenhain veröffentlicht Online-CNC-Schulungsprogramm