2.3.1 Stackregister

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Stackregister=
<p>
<p>
Das <loop_index>Stackregister|Stack</loop_index>'''Stackregister''' befindet sich auf der CPU. Sein Wert beziffert eine bestimmte Speicherzelle im Hauptspeicher, den sogenannten '''<loop_index>Top of Stack|Stack, Top of Stack</loop_index>Top of Stack''', also das '''<loop_index>oberes Ende des Stacks|Stack, oberes Ende</loop_index>obere Ende des Stacks'''.
Das <loop_index id="5fa9787fdc0c1">Stackregister|Stack</loop_index>'''Stackregister''' befindet sich auf der CPU. Sein Wert beziffert eine bestimmte Speicherzelle im Hauptspeicher, den sogenannten '''<loop_index id="5fa9787fdc0c8">Top of Stack|Stack, Top of Stack</loop_index>Top of Stack''', also das '''<loop_index id="5fa9787fdc0cd">oberes Ende des Stacks|Stack, oberes Ende</loop_index>obere Ende des Stacks'''.
</p>
</p>


Zeile 7: Zeile 6:
== Push oder Pop auf die Datenstruktur ==
== Push oder Pop auf die Datenstruktur ==
<p>
<p>
Ein Stack ist eine <loop_index>Datenstruktur, Stack|Stack, Datenstruktur</loop_index>Datenstruktur, kann also Daten aufnehmen und wieder abgeben, wobei der Zugriff nur über die Befehle '''<loop_index>PUSH, Stack|Stack, PUSH</loop_index>PUSH''' (Daten auf dem oberen Ende des Stacks ablegen) sowie '''<loop_index>POP, Stack| Stack, POP</loop_index>POP''' (Daten vom oberen Ende des Stacks entfernen) möglich ist.
Ein Stack ist eine <loop_index id="5fa9787fdc0d0">Datenstruktur, Stack|Stack, Datenstruktur</loop_index>Datenstruktur, kann also Daten aufnehmen und wieder abgeben, wobei der Zugriff nur über die Befehle '''<loop_index id="5fa9787fdc0d3">PUSH, Stack|Stack, PUSH</loop_index>PUSH''' (Daten auf dem oberen Ende des Stacks ablegen) sowie '''<loop_index id="5fa9787fdc0d6">POP, Stack</loop_index><loop_index id="5fa978c378a92"> Stack, POP</loop_index>POP''' (Daten vom oberen Ende des Stacks entfernen) möglich ist.
</p>
</p>


Zeile 13: Zeile 12:
== Stackregister anschaulich ==
== Stackregister anschaulich ==
<p>
<p>
Anschaulich erklärt wird die Bedeutung des Stackregisters und die <loop_index>Arbeitsweise, Stack|Stack, Arbeitsweise</loop_index>Arbeitsweise des Stacks an sich in dem folgenden Video:
Anschaulich erklärt wird die Bedeutung des Stackregisters und die <loop_index id="5fa9787fdc0da">Arbeitsweise, Stack</loop_index><loop_index id="5fa978803b1c9">Stack, Arbeitsweise</loop_index>Arbeitsweise des Stacks an sich in dem folgenden Video:
</p>
</p>


<p>
<p>
<loop_area icon="Video.png" icontext="Video">
<loop_area icon="Video.png" icontext="Video">
<loop_media type="video" title="Stackregister und Arbeitsweise des Stacks (04:12)" description="http://youtu.be/NjSc5ovr5Tw" copyright="CC-BY" index=true show_copyright=true>{{#ev:youtube|NjSc5ovr5Tw|700}}</loop_media>
<loop_media type="video" title="Stackregister und Arbeitsweise des Stacks (04:12)" description="http://youtu.be/NjSc5ovr5Tw" copyright="CC-BY" index=true show_copyright=true id="5fa9787fdc0dd">{{#ev:youtube|NjSc5ovr5Tw|700}}</loop_media>
</loop_area>
</loop_area>
</p>
</p>
Zeile 33: Zeile 32:


<p>
<p>
<loop_figure title="Stackregister auf der CPU" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei:Cpu10-stack.jpg|700px]]</loop_figure>
<loop_figure title="Stackregister auf der CPU" description="" copyright="CC-BY" index=true show_copyright=true id="5fa9787fdc0e0">[[Datei:Cpu10-stack.jpg|700px]]</loop_figure>
</p>
</p>
<div class="autoit_do_not_print">
<br />
<hr />
<sub>Diese Seite steht unter der [http://creativecommons.org/licenses/by/3.0/deed.de Creative Commons Namensnennung 3.0 Unported Lizenz] [http://creativecommons.org/licenses/by/3.0/deed.de http://i.creativecommons.org/l/by/3.0/80x15.png]
</sub>
</div>

Aktuelle Version vom 9. November 2020, 18:51 Uhr

Das Stackregister befindet sich auf der CPU. Sein Wert beziffert eine bestimmte Speicherzelle im Hauptspeicher, den sogenannten Top of Stack, also das obere Ende des Stacks.


Push oder Pop auf die Datenstruktur

Ein Stack ist eine Datenstruktur, kann also Daten aufnehmen und wieder abgeben, wobei der Zugriff nur über die Befehle PUSH (Daten auf dem oberen Ende des Stacks ablegen) sowie POP (Daten vom oberen Ende des Stacks entfernen) möglich ist.


Stackregister anschaulich

Anschaulich erklärt wird die Bedeutung des Stackregisters und die Arbeitsweise des Stacks an sich in dem folgenden Video:

video

Das Ablegen oder Entfernen von Daten vom Stack kann sowohl aus einem laufenden Prozess heraus erfolgen, oder auch auf Anweisung des Steuerwerks. Letzteres bietet viele Vorteile, wie auf den kommenden Seiten noch zu sehen sein wird.


Stackregister auf der CPU

Das folgende Bild zeigt das Stackregister auf der CPU. In vorangegangenen Bildern zur CPU war an dieser Stelle das Register R4 angesiedelt. Man kann sich gerne vorstellen, dass das Register R4 weiterhin auf der CPU existiert, nur eben aus Platzgründen nicht mehr eingezeichnet ist.

Cpu10-stack.jpg