1. (Eine Zusammenfassung der Antwort-in-Kommentare von Jukka)
Der Startcode wird im ROM (nichtflüchtiger Speicher) unter einer festen Adresse X gespeichert.
Wenn Sie das "Reset" -Signal in der CPU aktivieren, initialisiert die CPU ihre Register auf bestimmte fest codierte Werte. Der Befehlszeiger ist eines dieser Register, die auf bestimmte fest codierte Werte initialisiert werden. Im Wesentlichen wählt der CPU-Hersteller diese fest codierte Adresse X aus. Wenn Sie also Ihre CPU zurücksetzen, wird der Befehlszeiger auf dieselbe feste Adresse X zurückgesetzt. Die CPU beginnt wie gewohnt mit der Ausführung von Befehlen: Rufen Sie den nächsten Befehl von Adresse X ab , dekodieren, ausführen usw.
Wer dann einen kompletten Computer zusammenstellt, muss sicherstellen, dass an Adresse X etwas Nützliches vorhanden ist (z. B. ein ROM-Speicherchip mit aussagekräftigem Startcode).
2. Ausarbeitung
Die CPU hat eine sehr einfache Arbeitsweise, die als FETCH-EXECUTE-Zyklus bekannt ist:
(a) FETCH : Es geht in den Speicher und bringt den Befehl, der sich an der Adresse [PC] befindet. (PC ist ein Name eines internen CPU-Registers; er enthält die Adresse des Befehls, den wir als nächstes ausführen müssen.)
(b) Ausführen : Der PC führt die Anweisung aus, die er gerade aus dem Speicher abgerufen hat.
(c) PC PC + 1. (*)
(d) Gehen Sie zurück zu (a). ←
Diese Fetch-Execute-Schleife wird unabhängig vom ausgeführten Programm ständig ausgeführt. Insbesondere wenn die CPU hochfährt (z. B. wenn ihre Leistung von 0 auf Vcc steigt), beginnt die CPU einfach, die obige Schleife auszuführen.
Der Anfangswert des PCs hängt von der jeweiligen CPU ab. Es kann sein, dass die CPU mit PC = 0 aufwacht, oder dass PC = 0xFFF0 (wie es bei der X86-Familie von Intel der Fall ist) oder mit einem anderen Wert PC = . Wenn Sie die Reset-Taste drücken oder das und wieder , stellt die CPU den Anfangswert des PCs wieder her und die CPU beginnt mit der Ausführung des Programms, das sich im Speicher unter der Adresse , über den Abruf -ausführen Schleife.PCinitPCinitPCinit
Jetzt muss der Computerdesigner sicherstellen, dass sich das BIOS unter der Adresse im Speicher befindet . Das BIOS befindet sich normalerweise in einem nichtflüchtigen Speicher, sodass unter dieser Adresse immer ein Programm ausgeführt werden kann, auch wenn Sie nur das Gerät aus- und wieder einschalten (dies löscht den RAM, aber nicht das BIOS. Es ist schwieriger zu löschen / ändern das BIOS, obwohl möglich und passiert, zB wenn Ihr Gerät seine "Firmware" aktualisiert).PCinit
(*) Beim Vorrücken des PCs um +1 wird davon ausgegangen , dass jeder Befehl 1 Adresse des Speicherplatzes belegt. Das ist selten der Fall. In realen Systemen können wir hier PC + 4 (wie im 32b MIPS) oder PC + x (mit was von der Anweisung selbst abhängt) wie in der X86-Familie sehen. usw.x∈{1,...,7}