Ja. Sowohl Programme als auch Daten sind im Hauptspeicher, wenn das Programm abläuft.
Nehmen wir an, dass eine Glühbirne durch einen Prozessor kontrolliert wird, der ein Programm im Arbeitsspeicher ausführt.
Der Controller kann die Glühbirne voll einschalten und ausschalten, er kann sie dimmen oder die Helligkeit erhöhen. Die Maschineninstruktionen sind ein Byte lang und entsprechen den folgenden Maschinenoperationen:
Maschineninstruktion Maschinenoperation 00000000 Programm Stopp 00000001 Glühbirne voll einschalten 00000010 Glühbirne voll abschalten 00000100 Glühbirne um 10% dimmen 00001000 Helligkeit der Glühbirne um 10% erhöhen 00010000 Wenn die Glühbirne voll an ist, überspringe die nächste Anweisung 00100000 Wenn die Glühbirne voll ausgeschaltet ist, überspringe die nächste Anweisung 01000000 Gehe zum Anfang des Programms (Adresse 0)
Wenn die Glühbirne eingeschaltet wird, wird die Instruktion an der Speicheradresse 0 ausgeführt. Dann werden die folgenden Instruktionen eine nach der anderen in der vorgegebenen Reihenfolge ausgeführt bis zur Instruktion "Programm Stopp" oder wenn der Controller abstürzt.
Der Controller stürzt ab, wenn er auf eine Instruktion trifft, die nicht in der Tabelle enthalten ist oder, wenn er auf eine Adresse trifft, die keine Instruktion enthält.
Die "Überspringe" Instruktionen überprüfen die Helligkeit der Glühbirne und überspringen möglicherweise die auf sie folgende Instruktion.
Die "Gehe zum Anfang des Programms" Instruktion veranlasst den Prozessor erneut mit der Instruktion an der Adresse 0 zu starten.
Hier (wir tun mal so als ob) ist der Arbeitsspeicher des Controllers
Klickt auf die Glühbirne, um das Programm zu starten oder zu stoppen. |
Wir ändern das Programm im Arbeitsspeicher. Dazu tragen wir die Instruktionen beginnend mit der Adresse 0 ein. Entweder kopieren wir die Maschineninstruktionen und fügen sie ein oder wir editieren die Bitfolgen direkt.
Wir versuchen das Programm zu ändern, so dass die Glühbirne blinkt (voll ein, voll aus) und ohne, dass das Programm endet.
Versucht dann ein Programm zu schreiben, das die Helligkeit allmählich erhöht bis die Glühbirne die volle Helligkeit erreicht hat und dann stoppt.