Ergebnis 1 bis 4 von 4

Thema: Allgemein: Unterschied zw. Register- und Stackmaschine

  1. #1
    Registered User
    Registriert seit
    Jan 2001
    Beiträge
    159
    Renommee
    2

    Allgemein: Unterschied zw. Register- und Stackmaschine

    Hallo,

    Ich habe jetzt schon lange gesucht, aber google bzw. Wiki konnten mir meine Fragen nicht genau beantworten. Deshalb frage ich nun hier:

    Wie funktioniert eine General Purpose Register Maschine bzw. eine Stackmaschine? Was sind die Unterschiede und wie machen sich diese im Operations-Code bermerkbar?

    Es geht also jetzt nicht um theoretische Konstrukte sondern wirkliche Implementierungen.
    Mir würde eine relativ kurze Erklärung oder ein Link reichen.
    Danke für eure hilfe!
    bond

  2. #2
    Registered User
    Registriert seit
    May 2000
    Beiträge
    199
    Renommee
    137

    Re: Allgemein: Unterschied zw. Register- und Stackmaschine

    Ich hab vor einiger Zeit ein bisschen MIPS-Assembler programmiert. Da gibt es im Grossen und ganzen 3 Möglichkeiten Daten zu speichern:
    1. Register: Man hat ein paar Register, in welchen man Daten ablegen kann. i.d.R. sind diese recht schnell.
    -> siehe http://de.wikipedia.org/wiki/Registe...dbare_Register
    2. der "normale" Speicher (wenn ich mich richtig erinnere Heap): Man kann Daten an beliebigen Orten abspeichern und in beliebiger Reihenfolge auslesen. Man muss nur jeweils die Speicheradresse kennen.
    3. Stack: Eine FILO-Liste. Daten die als erstes gespeichert werden, werden als letztes wieder gelesen. Man kann nicht (ohne zusätzlichen Aufwand) ein beliebiges Element in der Mitte des Stacks auslesen.

    Jede Methode hat vor- und Nachteile...
    Von den "normalen" Register hat man normalerweise eher wenige, bei MIPS waren es 32 Stück, welche aber teilweise nicht beliebig benutzt werden konnten.

    Beim Heap kann der Speicher fragmentiert werden. (Stell dir vor du hast 1 GB Platz im Heap und du speicherst zuerst ein Array mit 500 MB Daten, dann eins mit 2 byte. Dann gibst du den Speicher des ersten Arrays wieder frei. Du hast anschliessend 2 etwa gleich grosse Speicher-Fragmente, hast beinahe 1 GB freien Speicher, kannst aber trotzdem ein Array mit max. ca. 500MB abspeichern...) Dafür kannst du beliebige Einträge auslesen...

    Der Stack ist von Vorteil wenn du zb. Rekursive "Funktionen" aufrufen möchtest. Da sich in Assembler die "Funktionen" jeweils die Reigster teilen müssen, kann es vorkommen, dass du Register speichern musst, bevor du eine Funktion aufrufst, da die Funktion sonst evtl. deine Register überschreibt. Da beim rekursiven Aufruf die Daten die zuerst gespeichert wurden auch zuletzt wieder ausgelesen werden, ist der Stack die perfekte Lösung.
    Mein Blog: eSheep

  3. #3
    Registered User
    Registriert seit
    Jan 2001
    Beiträge
    159
    Renommee
    2

    Re: Allgemein: Unterschied zw. Register- und Stackmaschine

    Hi und danke für deine Antwort. Damit komme ich der Sache näher.

    Ich hab noch folgendes Slide einer PPT Präsentation gefunden.

    Lg,
    bond
    Angehängte Grafiken Angehängte Grafiken

  4. #4
    Member
    Registriert seit
    May 2004
    Beiträge
    1.432
    Renommee
    1142

    Re: Allgemein: Unterschied zw. Register- und Stackmaschine

    Ein Stack arbeitet nach LIFO-Prinzip. FILO meint zwar das gleiche, gibt es aber nicht.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. register
    Von orange bud im Forum Systemnahe Programmierung
    Antworten: 4
    Letzter Beitrag: 27.11.2003, 17:44
  2. [32 Bit register] eax...
    Von IcePic im Forum Systemnahe Programmierung
    Antworten: 4
    Letzter Beitrag: 22.01.2002, 20:27
  3. Register
    Von kater2ooX im Forum Systemnahe Programmierung
    Antworten: 11
    Letzter Beitrag: 27.07.2001, 01:02
  4. [Unterschied - Basic] Genaue Unterschied zwischen QBasic und QuickBasic
    Von -Rebell- im Forum Algorithmen und sonstige Programmiersprachen
    Antworten: 4
    Letzter Beitrag: 08.03.2001, 23:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •