Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
Grundlagen der Informatik, Lehrvideo; HW, CPU, Assembler, Maschinensprache - mit Übungsteil
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 167 Zeilen
- ja hallo liebe Zielgruppe ich begrüße Sie zu einem weiteren Video aus der Reihe Grundlagen Informatik heute mit den Themen Hardware CPU aber vor allem
- Maschinensprache und Assembler zunächst ein kurzer Blick in die Geschichte die Zuse Z3 war der erste funktionsfähige Digitalrechner und wurde
- 1941 von Konrad zose und seinem Team gebaut sie arbeitete mit insgesamt 2000 elektromagnetischen Relais Relais sind elektromagnetische Schalter bestehend
- aus Spule und Anker und sie haben meist zwei Schaltstellungen an aus 01 schon im 19 Jahrhundert wurden mechanische Rechenmaschinen entworfen und zum Teil
- auch gebaut hier sieht man die analytical machine von charles Babbage aus den 18300er Jahren dies ist leider nie über
- den Entwurf hinausgekommen aber es gab schon Programme zur hat adaer Lovelace 1843 ein Programm veröffentlicht zur Berechnung von benulli Zahlen mit dieser
- Analytical Engine in den späten 1940er Jahren wurde der WG gebaut dieser enthielt bereits Neuerungen gegenüber der eniak die ein
- paar Jahre vorher gebaut wurde finanziert hat beide sehr sehr teuren Rechner die US-Armee die brauchte einen Rechner zur Berechnung von ballistischen
- Tabellen beide Rechner beruhen bereits auf der Röhrentechnologie die sehr viel schneller war als die Relais Technologie allerdings fielen
- diese Röhren sehr häufig aus so dass der iniak fast ständig defekt war beim adweg sah das schon deutlich besser aus eine weitere Neuerung war beim weg dass
- Programmdaten wie zu verarbeitende Daten behandelt wurden was eine sehr viel schnellere Konfiguration erlaubte das bezeichnen wir heute als von Neumann
- Architektur beide Rechner blieben letztlich Einzelstücke die mit sehr großem auch personellen Aufwand betriebsbere it gehalten werden mussten
- das Nixdorf 820 System wurde 1968 gebaut und bestand im wesentlichen aus einem 12 Bit parallelrechenwerk mit lochkartentechnik zur ein und Ausgabe es
- hatte schon eine numerische funktionstastatur und auch einen integrierten Drucker zuudem zwei Roms für die Anwenderprogramme und für das
- Betriebssystem dieses war auch kommerziell erfolgreich es wurden 40.000 Exemplare verkauft die sich auch klein ere Betriebe leisten konnten in den 70er
- und 80er Jahren gab es dann ein paar Neuerungen zuerst gab es miniomputer die waren etwa so groß wie ein Kühlschrank und später auch Mikrocomputer oder
- homecuter genannt die man sich sogar auf den Schreibtisch zu Hause stellen konnte der Altair 8800 war ein früher Vertreter er wurde 1975 als Bausatz verkauft und
- kostete bei der Fertigstellung so ca 500 USDollar er war ein Basic programmierbar hielt ein 8bit Prozessor zur Ausgabe diente allerdings kein Monitor sondern
- es wurden Leuchtdioden verwendet die die Ergebnisse den Benutzer anzeigten die frühen 80er wurden stark dominiert von diesen 8 Bit Mikrocomputern oder eben
- Heimcomputern darunter auch der IBM PC der sein Siegeszug in den büromgebungen antrat und Rechner wie der Commodore 64 oder Apple 2 oder ZX Spektrum die als
- Homecomputer für Privatleute oder auch als spieleecomputer für Jugendliche dienten ein wichtiger Vertreter dieser 8bit CPU Technologie war z.B z80a von
- zilock wir möchten uns nur näher mit der Funktionsweise von Prozessoren beschäftigen zunächst geht es um den Speicher der Arbeitsspeicher eines
- Computers wird in Speicherzellen eingeteilt jede Zelle verfügt über eine Adresse der Speicher ist also durchnummeriert und über die Adresse
- kann ich auf eine Speicherzelle zugreifen lesen oder schreiben wir können uns einen Speicher fast immer als Folge von bites vorstellen hier sehen
- Sie ein Beispiel die Speicheradressen haben eine Breite von 16 Bit damit kann ich 64 Kibi bite Hauptspeicher ansteuern wobei jede Adresse auf ein bite zeigt
- das ist eine typische Architektur von Rechnern aus den 80er Jahren oder auch von Microcontrollern heute wir unterscheiden einige speicherarten die
- Speicherzellen haben unterschiedliche Größen früher waren es oft 8 Bit heute aber auch 16 32 64 ja oder sogar 100 28 Bits trotzdem werden die Adressen
- weiterhin im Beiz hochgezählt auch bei größeren Zellen der Arbeitsspeicher ist meist ein flüchtiger Speicher das heißt er muss regelmäßig mit Strom versorgt
- werden damit die Daten nicht vergessen werden dort hat man einen wahlfreien Zugriff auf jede Speicherzelle also mit Angabe der Adresse kann ich lesen oder
- schreibend auf irgendeine Zelle zugreifen und das auch recht schnell darüber hinaus gibt es feste Speicher also nicht flüchtige Speicher die z.B
- beim Einschalten eines Computers zur Verfügung stehen diese brauchen keinen Strom um Ihre Daten zu halten wir unterscheiden also RAM und Rom das ROM
- unterteilen wir oft noch in ein prom das ist einmalig zu überschreiben in ein EPROM das ist mit gewissem Aufwand mehrfach zu beschreiben und EEPROM was
- mit geringem Auwand das heißt auch elektronisch neu beschrieben werden kann beim EPROM geschieht das nicht elektronisch z.B mit UVLicht spezielle
- eeepromspeicher sind flashpeicher hier können massenhaft Daten gespeichert werden ohne dass wir eine ständige Stromversorgung brauchen diese
- Flashspeicher werden daher auch als Ersatz für Festplatten mit rotierenden Scheiben verwendet diese werden dann SSDs für solid state Discs genannt die
- heute verwendeten PCs bestehen aus typischen Komponenten für die sich in den letzten Jahren so eine Art Standard herausgebildet hat die Hauptplatine ist
- meist senkrecht verbaut auch oft Motherboard genannt und auf dieser befindet sich auch der Hauptprozessor das das ist die wesentliche
- rechenkomponente und auch der hauptenergieverbraucher eines Computers deseswegen ein besonders aufwendiger Kühler auf dem Prozessor angebracht wird
- hier finden Sie auch den Arbeitsspeicher und teilweise noch gesonderte Grafikkarten für die grafische Ausgabe auf einem Display sie benötigen ein
- Netzteil und ein Festplattenspeicher und die älteren von Ihnen kennen vielleicht auch noch optische Laufwerke z.B DVD Brenner oder cdraumlaufwerke für den
- Menschen gibt es dann noch Monitor Tastatur und Maus damit der Computer bedient werden kann in der historischen Rücksicht gibt es zwei wesentliche
- hauptarchitekturen die Harvard Architektur sieht vor dass Daten und Programme getrennt sind es sind also zwei verschiedene Speicher die können
- auch eine unterschiedliche Architektur aufweisen und es ist ein gleichzeitiger Zugriff auf Programmbefehle und Daten möglich so werden z.B fehlerhafte
- Programme auch davor geschützt sich selbst zu überschreiben mit Hilfe von Steuer und Rechenwerk werden die Befehle ausgeführt die meistens aus sehr
- einfachen arithmetischen Operationen bestehen ebenfalls aus den 40er Jahren stammt die von neumannarchitektur hier gibt es nur einen speichertypus der
- sowohl Daten als auch programmbefehler enthält das ist von der Grundidee her etwas langsamer als die harvardarchitektur weil der Rechner
- zuerst den Befehl und dann die Daten liest dafür ist es aber viel einfacher neue Programme in den Speicher zu laden und diese zu modifizieren die Funktionen
- von Steuerwerk und Rechenwerk werden in einer zentralen Einheit der CPU zusammen gefasst das Steuerwerk führt die Programmbefehle aus das Rechenwerk fürt
- die Operationen durch es gibt einen adressbuss um die Speicheradressen zu übertragen und ein Datenbus für die eigentlichen gelesenen oder
- geschriebenen Daten diese Architektur ergänzt um Eingabe und Ausgabe ist letztlich die Grundarchitektur der meisten heute verwendeten Computer die
- zentrale Recheneinheit folgt dabei einem festen Rhythmus oder einem Takt der Befehlszähler zeigt in den Speicher zuerst wird ein Maschinenbefehl aus dem
- Speicher geholt dann wird der Befehl decodiert und schließlich wird der Befehl ausgeführt wenn kein Sprung erfolgt wird der Befehlszähler
- inkrementiert und wir beginnen von vorne nächsten Befehl holen nächsten Befehl dekodieren nächsten Befehl ausführen und so weiter die Maschinenbefehle stehen
- hintereinander am Speicher wobei die CPU auch hin und her springen kann wenn bedingte oder unbedingte Sprungbefehle verwendet werden der Prozessor vereinigt
- also Rechenwerk und Steuerwerk und er verfügt auch über einen kleinen Speicher mit den sogenannten Registern auf den er besonders schnell zugreifen kann zudem
- enthält er meistens einen speichermanager um das RAM zu verwalten auch heutige Prozessoren führen im Wesentlichen nur diese Aufgabe aus
- Maschinenbefehle aus dem Speicher holen und einfache arithmetische oder logische Operationen durchführen das allerdings in einer rasenden Geschwindigkeit pro
- Sekunde können Milliarden von Maschinenbefehle ausgeführt werden typische Instruktionen der Maschinensprache sind diese bitweisen
- logischen Operationen wie and or X or oder not deren Ergebnisse wir Wahrheitstabellen entnehmen können so gilt true and false = false oder false X
- or true = true diese Operationen liegen als Befehle vor und können von der CPU direkt ausgeführt werden wie auch weitere Befehle zur Addition Subtraktion
- inkrementieren dekrementieren Zugriff auf den Speicher und bedingte wie auch unbedingte Sprünge jeder Maschinenbefehl hat eine Nummer den sogenannten Opcode
- der als Bitmuster im RAM vorliegt wenn die CPU den nächsten Befehl dort findet zusammen bilden alle diese Codes den Befehlssatz einer CPU um es den Menschen
- zu erleichtern Maschinenprogramme zu erstellen wurden assempl Sprachen erfunden dann müssen wir keine Opcodes lernen sondern kurze Befehle die
- sogenannten nanomix die man sich viel besser merken kann das ergibt dann eine assemers Sprache die vom Assembler in Maschinensprache übersetzt werden kann
- sie sehen hier rechts den wichtigen Unterschied die CPU findet im Speicher die hier hexadezimal dargestellten obcodes vor z.B bedeutet 06 dass ein
- Register ein neuen Wert bekommt 02 ist das Register mit der Nummer 2 und 2 ist der Wert 32 den das Register bekommen soll die CPU liest also nacheinander
- diese drei Bytes und führt den Befehl aus das ist ein Beispiel für ein 8bit Prozessor der also bite für bite aus dem RAM liest der nächste Befehl schreibt
- den Wert 232 in das Register mit der Nummer 3 hier dargestellt als Opcode 06 mit Parameter 03 und E8 danach folgt der
- Opcode 32 der Befehl schiebt den Inhalt eines Registers auf den Stack das geschieht einmal für das Register mit der Nummer 0 und dann für das Register
- mit der Nummer 1 es wäre grundsätzlich denkbar dass wir als Menschen auch so programmieren dass wir also die Opcodes einer großen Tabelle entnehmen und dann
- nach und nach diese Werte aufschreiben die das Maschinenprogramm bilden das wäre aber wirklich sehr umständlich und sehr anfällig man findet sich hier nur
- sehr schlecht zurecht in der Maschinensprache unten rechts sehen Sie die assempler Darstellung dieses maschinenprogramms wir können das viel
- einfacher verstehen die Register bekommen hier Buchstaben a b c d und die obcodes entsprechende nenomix z.B move um 32 in das Register C zu schreiben
- oder ink C und InCD um beide Register zu inkrementieren am Schluss des Programms finden Sie hier einen bedingten Sprungbefehl das Programm springt an die
- Adresse Null also an den Anfang zurück wenn eine gewisse Bedingung gegeben ist so werden also Schleifen in Maschinensprache realisiert hier codiert
- als assemlersprache in den weiteren Beispielen und auch meine Lehrveranstaltung verwenden wir ein
- übungsassemler von Markus schweighauser das ist ein 8bit assempler Simulator der komplett im Browser läuft damit können Sie nicht nur Programme erstellen und
- assemplieren und zur Ausführung bringen sie können auch jederzeit sehen was das Programm genau tut sie haben einen vollständigen Überblick über das gesamte
- RAM und können erkennen welche Werte dort verändert werden das ist eine sehr komfortable Situation die sie als normaler assempler Programmierer nicht
- haben zudem brauchen sie keine weiteren Werkzeuge um hier assempler Programmieren zu erlernen wenn Sie die assemler Programmierung mit diesem
- übungsassemler einmal erlernt haben ist der Umstieg auf einen richtigen assemler aber nicht schwierig denn dort herrscht die gleiche Grundstruktur was den
- Befehlssatz angeht und auch die nenomix sind sehr ähnlich zum üben und zu feh Suche ist der übungsassembller allerdings
- unschlagbar das RAM besteht hier aus 256 Bytes die jederzeit dezimal oder hexadezimal visualisiert werden das kann man einstellen auch der aktuelle
- Registerinhalt und der wer der Flex wird jederzeit dargestellt ich stelle nun die assempler Befehle vor es dauert nur wenige Minuten
- und sie haben den kompletten Befehlssatz der assemlersprache kennengelernt und das ist übrigens typisch für assemlersprachen
- es gibt nur sehr wenige unterschiedliche Operationen mit dem mvebefehl können wir auf den Speicher zugreifen und auch Registerwerte kopieren die Reihenfolge
- ist immer Ziel Komma Quelle move a b kopiert also B nach A move a,1 kopiert den Wert 1 in das Register a move a c in eckigen Klammern bedeutet dass der Wert
- aus dem Speicher an der Adresse C in das Register a kopiert wird wir lesen also aus dem RAM move D in eckigen Klammern Komma a ist das zurückschreiben ins RAM
- der Wert von a wird in das RAM an die Adresse die im Register D gespeichert ist geschrieben die Register im Prozessor sind Variablen auf die sehr
- schnell zugegriffen werden kann diese enthalten die Parameter und die Ergebnisse von arithmetischen und logischen Operationen die flagreister
- speichern einzelne Bits die Werte nennen wir meistens true und fals einige der Maschinenbefehle ändern Werte von fleckregistern während der Operation
- sodass der näch Befehl auf die Flex zugreifen kann dazu sehen sie noch Beispiele und nun lernen Sie auf einen Schlag alle Rechenoperationen und alle
- logischen Operation kennen ganz allgemein können CPUs zwar extrem schnell rechnen dafür sind ihre Rechenfähigkeiten aber auf wenige
- elementare Operationen beschränkt das gilt nicht nur für den übungsassempler sondern auch für reale CPUs wir können inkrementieren dekrementieren addieren
- subtrahieren manche CPUs können auch multiplizieren und dividieren das ist aber bereits purer Luxus bei der Maschinensprache neben den bitweisen
- logischen Operationen wie and or X or oder Not gibt es auch shift Operation da werden alle Bits nach links oder nach rechts geschoben alle diese Operationen
- beeinflussen auch nebenbei die Flex hier nun wichtige Varianten add a b führt zur Addition von A und B wobei die Summe in a abgelegt wird auf die gleiche Weise
- kann ich den konstantenwert 10 auf a aufadidieren ich kann B von abziehen oder ein konstant Wert 5 von B abziehen ich kann B inkrementieren oder C
- dekrementieren mit dem Befehl mull5 wird der Wert von a verffacht sowohl der multiplikationsbefehl als auch der divisionsbefehl können nur mit dem
- Register a operieren das sind typische Einschränkungen die das Design einer CPU erleichtern und für die schnelle Ausführung von Operationen dienlich sind
- die bitweise Verknüpfung von A und B kann ich mit n a b ausdrücken und das Ergebnis wird dann wieder im Register a gespeichert eine
- Verknüpfung mit dem hexadezimalenwerert 80 hier dargestellt als 0x 80 entspricht der Verknüpfung mit dem dezimalen Wert 128 und das bedeutet letztlich der Wert
- des ersten Bits wird festgehalten und alle anderen sieben Bits werden auf Null gesetzt also quasi gelöscht genauso funktioniert auch der orbefehl z.B mit
- zwei Registern oder einem Register und einer Konstante der notbefehl flippt alle Bits das heißt aus 0 wird 1 aus ein wird 0 und sie sehen hier noch ein
- Beispiel für Sch Befehle der Link shift um z führt dazu dass alle Bits zwei Stellen nach links wandern wähend von rechts zwei Nullen eingeschoben werden
- im konkreten Beispiel führt das dazu dass das Bitmuster was für die Zahl 42 steht danach den Wert 168 aufweist das ist der vierfache wert weil das Anhängen
- von zwei Nullen letztlich der Multiplikation mit 4 entspricht solange Links keine einbits rausfallen was hier der Fall war zur Realisierung von
- Schleifen brauchen wir bedingt oder unbedingte Sprünge und ein Befehl den sogenannten comparebefehl der comparebefehl vergleicht Werte und setzt
- entsprechende Flag Register hier als z und C bezeichnet Zero und carry bedingte Sprünge werden nur ausgeführt wenn die Flex entsprechend gesetzt sind so können
- wir A mit B vergleichen oder auch B mit 17 vergleichen und danach springen wenn beispielsweise a größer als B ist oder es gibt auch ein Sprungbefehl für wenn A
- = B ist und so weiter der jumpbefehl ist ein unbedingter Sprung der also immer ausgef frt wird ansonsten gibt es eine lange Tabelle mit bedingten Sprüngen wo
- ich mir den Befehl raussuchen kann der zu meinem letzten Vergleich oder zu meiner letzten Rechnung passt z.B jne wenn der compare eine Ungleichheit
- ergeben hat hier nur gleich drei Beispielprogramme die aber alle dre dasselbe tun die drei Programme erfüllen eine Aufgabe es werden die Werte aus dem
- Speicher von der Adresse 100 bis zur Adresse 108 ausgelesen und die Inhalte werden addiert und zum Schluss in a abgelegt das Programm ganz links ist die
- direkte Implementierung zunächst wird der Wert 0 in a geschrieben damit wir danach aufsummieren können dann wird der Inhalt der Speicherzelle mit der Adresse
- 100 auf a auferdiert dann 101 102 und so weiter bis zum Schluss der Inhalt von der Speicherzelle mit Adresse 108 auf A aufadidiert wird dann ist die Summe im
- Register a enthalten das kann man natürlich so implementieren aber je größer der Speicherbereich ist desto eher suchen wir eine Möglichkeit das mit
- einer Schleife zu realisieren das Programm mit der in der Mitte merkt sich zunächst die Adresse 100 im Register B und dann den Wert 9 im Register C weil
- wir insgesamt neun addition vornehmen möchten dann wird in der Schleife jeweils der Inhalt an der adressierten Speicherzelle auf a addiert und der Wert
- von C dekrementiert sodass wir die Befehle in der Schleife immer wieder ausführen bis der Wert von c 0 erreicht der bedingte Sprung jnz da steht für
- Jump non Zero wird also so lange ausgeführt wie die Operation davor Dekrement C nicht den Wert Null ergibt insgesamt wird die Schleife also neunm
- durchlaufen und die Gesamtsumme steht schließlich im Register a auf der rechten Seite sehen Sie eine Alternative Implementierung Überschleifen hier wird
- in C der Wert 109 gespeichert und in der Schleife wird überprüft ob dieser Wert erreicht wurde dann wird die Schleife verlassen das funktioniert genau so gut
- aber viele würden vielleicht sagen der programmierstilel ist hier schlechter denn die Zahl 109 wird ja gar nicht benötigt für das reale Problem wo wir
- einfach nur auf die Zellen 100 bis 108 hinweisen die 109 ist also der erste nicht erlaubte Wert der zum rechtzeitigen Verlassen der Schleife
- führt das ist aber letztlich eine Geschmacksfrage ganz generell würden wahrscheinlich viele programmiererinnen und Programmierer sagen dass assemler
- Programme nie elegant sind denn die üblichen Beispiele für gute Programmierstile werden mit Hochsprachen realisiert zum Schluss lernen wir noch
- kennen wie wir Unterprogramme realisieren und den steck nutzen können der Stackpointer ist ein Register welches ins RAM zeigt und die Position
- festlegt die der oberste Wert auf dem Stack einnimmt mit dem pushbefehl werden dann Werte auf dem Stack abgelegt und der Zeiger wird entsprechend
- dekrementiert mit dem popbefehl werden diese Werte vom Stack zurückgeholt und der Zeiger wird inkrementiert man könnte sagen das Stck wächst von rechts nach
- links und der Teil des RAMs zwischen Programm und zwischen Stack ist der freie Speicher W der Abarbeitung über den Stack können Sie auch Parameter an
- Unterprogramme übergeben der Aufruf eines Unterprogramms wird nicht über den jumpbefeh vorgenommen sondern über den callbefehl dieser führt zwar ebenfalls
- einen Sprung aus aber gleichzeitig merkt er sich den Wert des befehlszählers also die Adresse im RAM die auf eine Speicherzelle zeigt die den
- nächsten auszuführenden Befehl enthält der Wert wird auf dem Stack abgelegt und wenn das Unterprogramm seine Arbeit beendet hat kann der returnbefehl aus
- führt werden der den Wert vom Stack zurückliest und einen Sprung an die Adresse ausführt so kann ein Hauptprogramm ein Unterprogramm
- ausführen und danach wird mit dem nächsten Befehl des Hauptprogramms fortgesetzt hier sehen Sie nur ein paar Beispiele zum Verständnis ist es
- zunächst wichtig zu verstehen dass unser übungsassembler über ein virtuelles Display verfügt das sind 24 Bytes die mit askizeichen beschrieben werden
- können und die im hinteren Teil des ramspeichers ab Adresse 232 zu finden sind sind im Register D wird also die Adresse dieser displayausgabe abgelegt
- dann wird der Wert 2 im Register a abgelegt und der Wert wird zweimal ausgegeben a wird inkrementiert und der Wert wird noch dreimal ausgegeben und
- zum Schluss für die Zahl 4 noch einmal ausgegeben das Unterprogramm wird hier mit einer Sprungmarke angesteuert der assempler berechnet also die
- Speicheradresse die den Maschinencode des Unterprogramms enthält zunächst wird der alte Inhalt des Registers a auf dem Stack abgelegt weil wir das Register
- gleich brauchen und den Wert nicht einfach überschreiben möchten dann wird der aski Wert der Ziffer Null aufadidiert um eine Ausgabe der Ziffer
- vorzubereiten und das askzeichen wird an die Adresse die in D abgelegt ist geschrieben damit erscheint eine Ziffer auf dem Display der Wert von D wird
- inkrementiert um ein Schreiben von links nach rechts zu ermöglichen a wird wiederhergestellt und wir springen zurück die beiden programmfragmente
- rechts zeigen wie ein Unterprogramm ein weiteres Unterprogramm aufrufen kann so wird das Unterprogramm in der Mitte aufgerufen wenn ich ein Komma und ein B
- ausgeben möchte und dieses Unterprogramm kann ich im neuen ausgabeunterprogramm auf der rechten Seite nutzen um nach jeder Ziffer entsprechend Komma und
- space auszugeben und dann zurück ins Hauptprogramm zu springen auf diese Weise kann das Unterprogramm Ausgabe kommpace auch von anderen Programmteilen
- verwendet werden ich muss es nur einmal implementieren das neue Unterprogramm verschachtelt also diese Aufrufe zum Abschluss noch ein paar
- Übungen zum Thema assempler sie können das Video wieder anhalten um sel das Programm zu schreiben bzw zu analysieren dazu werden wieder die Zahlen 1 2 3
- hochgezählt s dass sie rechtzeitig stoppen können bevor die Lösung erscheint in dieser Aufgabe sollen sie nun selbst analysieren was genau dieses
- assempler Programm macht es berechnet eine Funktion aber welche im Programm wird die ganzzahlige Division und Multiplikation verwendet einige
- Wertepaare sind angegeben so führt die Eingabe 47 zur Ausgabe 7 die Eingabe 146 Z 6 und so weiter die Eingabe 0 FT zur Ausgabe 0 aber welche Funktion ist das
- überlegen Sie einmal selbst stoppen Sie nun das Video in wenigen Sekunden werden Sie hier die Lösung sehen und hier ist die Lösung das
- Programm berechnet die Funktion f Vonn = n Modul 10 das heißt es wird der ganzzahlige Rest beim Teilen durch 10 bestimmt oder mit anderen Worten es wird
- die letzte Ziffer einer dezimalen Zahl bestimmt dies geschieht hier über einen geschickten Umweg zuerst wird durch 10 geteilt und der Rest wird dabei fallen
- gelassen danach wird wieder mit 10 multipliziert sodass die Zahlen nun ein werter hat der sich um den Rest unterscheidet von ihrem bisherigen Wert
- mit der Bildung der Differenz erhalten wir schließlich diesen Rest und können ihn anschließend in a ablegen so wurde die Funktion
- implementiert in dieser Aufgabe sollen sie nun selbst eine semplerprogramm schreiben und zwar eine Schleife implementieren diese Schleife soll die
- Ausgabe löschen das heißt hier konkret das bite an der Adresse 232 und alle folgebites bis zur Adresse 255 sollen mit null überschrieben werden
- einen passenden Sprungbefehl können Sie aus der Tabelle rechts auswählen sie können das Video jetzt anhalten und in aller Ruhe das assemplerprogramm
- Aufschreiben sie sehen nun gleich die Lösung ja und das kurze Programm unten rechts löst diese Aufgabe der Startwert von 232 wird im Register D abgelegt in
- der Schleife wird im RAM an dieser Position der Wert 0 abgelegt und D wird so lange inkrementiert bis der Wert 255 erreicht ist und letztmalig die Null
- geschrieben wird die Schleife bricht also ab wenn der Wert von 255 noch einmal inkrementiert wird dabei geschieht hier ein Überlauf sod dass wir
- den Vergleich mit dem Wert Null durchführen müssen das Programm hält also einfach an nachdem D den Wert n0 erreicht hat das war auch schon die
- letzte Übungsaufgabe und das Ende des Lehrvideos ist der reich ich hoffe Sie konnten etwas dazu lernen über Hardware über CPUs und insbesondere über assemler
- und Maschinensprache vielleicht schauen sie sich dann auch ein anderes Video aus der Reihe Grundlagen der Informatik an bis dahin verabschiede ich mich auf
- wiederschauen [Musik]
Zum Nachlesen
OpcodeEin spezielles Programm, der Assembler, erzeugt Maschinencode, indem es im Wesentlichen die Mnemonics durch ihre jeweiligen Opcodes ersetzt. Die meisten …
MaschinenspracheMit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle des Maschinencodes als Mnemonics in einer einfachen Syntax. Dieser Quelltext wird …
Von-Neumann-ArchitekturDie Von-Neumann-Architektur (VNA) ist ein Referenzmodell für Computer, wonach ein gemeinsamer Speicher sowohl Computerprogrammbefehle als auch Daten hält.
Adressierung (Rechnerarchitektur)Adressierung ist in der Programmierung das Festlegen, auf welche Operanden (z. B. Datenfelder) sich ein Maschinenbefehl bezieht. Die Operanden können auf …