Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Hallo liebe community.
Wie rechnet eine CPU eigentlich solche Befehle aus wie "lade Daten aus der Festplatte die an Adresse YX sind in den RAM an Adresse XY. Oder den" mov(e) "Befehl
Mir reicht es vereinfacht da es sonst dummies wie ich nicht verstehen.
Das ist kein Befehl, sondern eine Kette von Befehlen...
Arbeit in kleine Stückchen zu zerlegen ist ja an sich keine neue Erfindung, sondern seit tausenden von Jahren bewährt...
Aber zum MOV-Befehl: Was genau erwartest du da für eine Erklärung?
Der Compiler übersetzt das vom Programmierer geschriebene Programm in sog. Maschnencode. Jede CPU-Architektur hat hier eigene Befehle.
Wenn ein Programm ausgeführt wird, wird es vom Betriebssystem in den Arbeitsspeicher geschrieben und die CPU aufgefordert, das erste Byte des Programms auszuführen. Es wird in Fachsprache der "Pointer" auf dieses byte gesetzt.
Die CPU hat einen internen Ausführungsablauf, der je nach CPU-Typ in Details abweicht (also auch innerhalb einer Architektur), so ergeben sich dann Unterschiede bei den Instructions per cycle.
Im groben haben alle CPUs aber eines gemeinsam:
Fetch - Befehl (der am Pointer steht) holen, ggf. die Argumente (z.B. bei einer Addition die Summanden) mit holen.
Decode - Befehl decodieren, heraus finden, auf welche Weise gerechnet werden soll. Meint welche Transistoren genutzt werden sollen
Execute - Befehl ausführen, je nach Befehl Ergebnis irgendwo hin kopieren und den Pointer weiter schieben auf den nächsten Befehl.
Das ist sehr vereinfacht.
Was meinst du mit mov? Den Assambler-Befehl, oder das Verschieben einer Datei im Dateisystem?
Vielleicht liefert dir diese, bisher 4-teilige Serie, ein paar neue Erkenntnisse
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Naja, diese ganzen Erklärungen für "Dummies" usw. sind meistens extrem oberflächlich und danach weiss man genau so wenig wie davor. Falls man die Funktionsweise wirklich verstehen will, muss man schon Informatik oder so studieren oder sich Fachliteratur zu Gemüte ziehen (sowas z.B.: https://homepages.thm.de/~hg6458/mpt-Dateien/MPT.pdf).
Mich hat dieses Video fasziniert.
Der fährt eine alte AMIGA CPU im Handbetrieb. (Motorola 68000)
Da sollte einiges Interessantes für Dich dabei sein:
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Um das wirklich zu verstehen, muss man sich bewusst werden, dass Deine Frage eben auch in einer ganzen Reihe von einzelnen Befehlen resultiert.
'Für Dummies' gibt es hier nicht und ein paar Semester Informatik schaden an der Stelle nicht.
Was auch hilft, sind Grundlagen in Assembler Programmierung.
Dann versteht man auch, dass so ein Befehl in einer Hochsprache am Ende gleich eine ganze Kette von Instruktionen an Maschinencode zur Folge hat.
Wenn du MOV kennst, hast du schon einen guten Einstieg, vorausgesetzt, du verstehst, was und wie der Befehl etwas macht. Generell ist Assembler eine tolle Sprache, um die Funktionsweise von Rechnern verstehen zu lernen, weil jede Hochsprache und moderne Befehl am Ende nur auf mehrere der grundlegenden Befehle wie eben MOV heruntergebrochen werden. Im Grunde ist alles nur Bitschubserei, die über Jahrzehnte/Jahrhunderte immer komplexer wurde. Genau deshalb lohnt auch ein Ausflug in die Historie wie z. B. zur Pascaline oder Z3 – wenn man kapiert, wie diese Maschinen laufen, hat man die zugrundeliegenden Prinzipien auch aktueller CPUs verstanden.