Grundbegriffe der Informatik

Ähnliche Dokumente
Vorlesung Programmieren

Grundbegriffe der Informatik Tutorium 5

Unterprogramme. Unterprogramme

Grundbegriffe der Informatik Aufgabenblatt 5

Übungsblatt 10 (Block C 2) (16 Punkte)

Vorlesung Programmieren

Tutorium Rechnerorganisation


Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme

Grundbegriffe der Informatik

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Die Mikroprogrammebene eines Rechners

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Grundbegriffe der Informatik

Datenpfad einer einfachen MIPS CPU

Kap 4. 4 Die Mikroprogrammebene eines Rechners

RO-Tutorien 3 / 6 / 12

Grundbegriffe der Informatik

Technische Informatik 2 Adressierungsarten

Einfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).

Assembler - Adressierungsarten

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Technische Informatik II Rechnerarchitektur

Von-Neumann-Architektur

Betriebssysteme Teil 3: Laufzeitsystem für Programme

FAKULTÄT FÜR INFORMATIK

Assembler Unterprogramme

DieÜbersetzung funktionaler Programmiersprachen

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Stapel (Stack, Keller)

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Einführung. Saalübung Informatik II SS Einführung. Einführung

Grundlagen der Rechnerarchitektur

ERA-Zentralübung Maschinenprogrammierung

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Vorlesung Rechnerarchitektur. Einführung

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

ALP II Dynamische Datenmengen Datenabstraktion

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Der Toy Rechner Ein einfacher Mikrorechner

Algorithmen & Programmierung. Rekursive Funktionen (1)

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

Einführung in die Informatik I

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

11. Übungsblatt. x y(top(push(x, y)) = y)

Zusammenfassung der Assemblerbefehle des 8051

Grundbegriffe der Informatik

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Geräteentwurf mit Mikroprozessoren 1

1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester

Datenpfad einer einfachen MIPS CPU

Daniel Betz Wintersemester 2011/12

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Stand der Vorlesung. Vergleich verkettete Liste und sequentielle Liste

Technische Universität München

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)

1.4 Die Ackermannfunktion

Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Grundbegriffe der Informatik

Kapitel 4: Datentyp Keller und Schlange

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Programmiersprachen Einführung in C

, WS2013 Übungsgruppen: Di., Fr.,

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Informatik II Übung 05. Benjamin Hepp 3 April 2017

12. Dynamische Datenstrukturen

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Welche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt?

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Compilerbau + Virtuelle Maschinen

Assembler-Programmierung

Informatik II Übung, Woche 14

Computer-Architektur Ein Überblick

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Instruktionssatz-Architektur

Einige Teilgebiete der Informatik

Technische Informatik II Rechnerarchitektur

FAKULTÄT FÜR INFORMATIK

10. Die Adressierungsarten des MSP 430

Berechenbarkeit und Komplexität Vorlesung 11

Schnittstellen, Stack und Queue

Abstrakte C-Maschine und Stack

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Mikrocomputertechnik. Adressierungsarten

Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Mikroprozessor als universeller digitaler Baustein

Technische Informatik 2 Maschinenprogrammierungskonzepte

Übersetzung von Datenstrukturen

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

RISC-Prozessoren (1)

Transkript:

Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 1 / 24

Mima-X eine Erweiterung der Mima Mima aus Vorlesung «Rechnerorganisation» sehr einfach gehalten, damit z. B. auch Mikroprogrammierung im Detail erläuterbar Mima-X für «Programmieren» und «Softwaretechnik» komfortabler, damit z. B. auch Grundzüge der Übersetzung im Detail erläuterbar alle fundamentalen Bestandteile und Konzepte wie in realen Prozessoren GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 2 / 24

Überblick Motivation Stapel Mima-X GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 3 / 24

Wo sind wir? Motivation Stapel Mima-X GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 4 / 24

Erinnerung: die Ackermann-Funktion A : N 0 N 0 N 0 y N 0 : A(0,y) = y + 1 x N 0 : A(x + 1, 0) = A(x, 1) x,y N 0 : A(x + 1,y + 1) = A(x, A(x + 1,y)) Vorsicht beim Rechnen! schon bei kleinen Argumenten viele Rekursionsschritte GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 5 / 24

Ackermann-Funktion Beispielberechnung für A(2, 2) A(2, 2) = A(1, A(0, A(0, 3))) = A(1, A(2, 1)) = A(1, A(0, 4)) = A(1, A(1, A(2, 0))) = A(1, 5) = A(1, A(1, A(1, 1))) = A(0, A(1, 4)) = A(1, A(1, A(0, A(1, 0)))) = A(0, A(0, A(1, 3))) = A(1, A(1, A(0, A(0, 1)))) = A(0, A(0, A(0, A(1, 2)))) = A(1, A(1, A(0, 2))) = A(0, A(0, A(0, A(0, A(1, 1))))) = A(1, A(1, 3)) = A(0, A(0, A(0, A(0, A(0, A(1, 0)))))) = A(1, A(0, A(1, 2))) = A(0, A(0, A(0, A(0, A(0, A(0, 1)))))) = A(1, A(0, A(0, A(1, 1)))) = A(0, A(0, A(0, A(0, A(0, 2))))) = A(1, A(0, A(0, A(0, A(1, 0))))) = = A(1, A(0, A(0, A(0, A(0, 1))))) = A(0, 6) = A(1, A(0, A(0, A(0, 2)))) = 7 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 6 / 24

Ackermann-Funktion A(2, 2) kompakt notiert 2, 2 1, 0, 0, 0, 2 1, 2, 1 1, 1, 2, 0 1, 5 1, 1, 1, 1 0, 1, 4 1, 1, 0, 1, 0 0, 0, 1, 3 1, 1, 0, 0, 1 0, 0, 0, 1, 2 1, 1, 0, 2 0, 0, 0, 0, 1, 1 1, 1, 3 0, 0, 0, 0, 0, 1, 0 1, 0, 1, 2 0, 0, 0, 0, 0, 0, 1 1, 0, 0, 1, 1 1, 0, 0, 0, 1, 0 0, 6 1, 0, 0, 0, 0, 1 7 Liste von Werten Änderungen nur am rechten Ende ein/zwei Werte werden durch andere ersetzt, d. h. ein/zwei Werte entfernt neue Werte angefügt Datenstruktur Stapel (vgl. Aufgabenblatt 5) GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 7 / 24

Wo sind wir? Motivation Stapel Mima-X GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 8 / 24

Stapel oder Keller Zugriff nur auf das oberste Element Menge S aller Stapel über Grundmenge V es gibt den leeren Stapel Operationen, die einen Stapel verändern push: S V S pop: S S (für nichtleere Stapel) Operation, die Informationen aus Stapel extrahieren top: S V Spezifikation (für nichtleere Stapel) s S v V : pop(push(s,v)) = s s S v V : top(push(s,v)) = v GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 9 / 24

Stapel eine mögliche Implementierung Listen/Tupel von Elementen in V S = i N 0 V i leerer Stapel: leere Liste () Operationen push( (),v) = (v) push( (x 1,..., x n ),v ) = (x 1,..., x n,v) pop( () ) = undefiniert pop( (x 1,..., x n ) ) = (x 1,..., x n 1 ) top( () ) = undefiniert top( (x 1,..., x n ) ) = x n GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 10 / 24

Stapel bequeme Verallgemeinerung in Prozessoren oft auch möglich: peek: S N 0 V Implementierung peek( (), k ) = undefiniert peek( (x 1,..., x n ), k ) = x n k, undefiniert, falls 0 k < n sonst GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 11 / 24

Berechnung der Ackermann-Funktion mit einem Stapel V = N 0 y N 0 : A(0,y) = y + 1 x N 0 : A(x + 1, 0) = A(x, 1) x,y N 0 : A(x + 1,y + 1) = A(x, A(x + 1,y)) definiere A : S S entsprechend falls n 2: A ( (x 1,..., 0, x n ) ) = ( x 1,..., x n 2, x n + 1 ) A ( (x 1,..., x n 1 + 1, 0 ) = ( x 1,..., x n 1, 1 ) A ( (x 1,..., x n 1 + 1, x n + 1 ) = ( x 1,..., x n 1, x n 1 + 1, x n ) Stapel-Manipulationen mit push, etc. ausdrückbar GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 12 / 24

Jede k-stellige Operation auf V ist auf Stapel mit mindestens k Einträgen übertragbar Idee Argumente mittels top und pop vom Stapel holen Operation anwenden Ergebnis mittels push auf den Stapel legen Vorsicht bei nichtkommutativen Operationen Beispiele Auswertung großer arithmetischer Ausdrücke in Programmiersprachen Taschenrechner mit umgekehrter polnischer Notation nach dem polnischen Logiker Jan Lukasiewicz (1878 1956) Postscript GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 13 / 24

Stapel Implementierung in einem Rechner x 1 x 2 x 3.. x n kleine Adr. Liste von Werten () oder (x 1,..., x n ) an aufeinander folgenden Adressen gespeichert zwei Varianten Wachstum Richtung kleine Adressen Wachstum Richtung große Adressen (hier verwendet) genau lesen, was Autoren annehmen! für Arbeit mit Stapel eine Adresse gespeichert zwei Varianten Adresse, an der oberstes Element des Stapels liegt Adresse der nächsten freien Stelle (hier verwendet) genau lesen, was Autoren annehmen! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 24

Stapel Implementierung in einem Rechner x 1 x 2 x 3.. x n große Adr. Liste von Werten () oder (x 1,..., x n ) an aufeinander folgenden Adressen gespeichert zwei Varianten Wachstum Richtung kleine Adressen Wachstum Richtung große Adressen (hier verwendet) genau lesen, was Autoren annehmen! für Arbeit mit Stapel eine Adresse gespeichert zwei Varianten Adresse, an der oberstes Element des Stapels liegt Adresse der nächsten freien Stelle (hier verwendet) genau lesen, was Autoren annehmen! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 24

Stapel Implementierung in einem Rechner x 1 x 2 x 3.. x n große Adr. Liste von Werten () oder (x 1,..., x n ) an aufeinander folgenden Adressen gespeichert zwei Varianten Wachstum Richtung kleine Adressen Wachstum Richtung große Adressen (hier verwendet) genau lesen, was Autoren annehmen! für Arbeit mit Stapel eine Adresse gespeichert zwei Varianten Adresse, an der oberstes Element des Stapels liegt Adresse der nächsten freien Stelle (hier verwendet) genau lesen, was Autoren annehmen! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 24

Stapel Implementierung in einem Rechner x 1 x 2 x 3.. x n große Adr. Liste von Werten () oder (x 1,..., x n ) an aufeinander folgenden Adressen gespeichert zwei Varianten Wachstum Richtung kleine Adressen Wachstum Richtung große Adressen (hier verwendet) genau lesen, was Autoren annehmen! für Arbeit mit Stapel eine Adresse gespeichert zwei Varianten Adresse, an der oberstes Element des Stapels liegt Adresse der nächsten freien Stelle (hier verwendet) genau lesen, was Autoren annehmen! GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 14 / 24

Wo sind wir? Motivation Stapel Mima-X GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 15 / 24

Mimax drei zusätzliche Register für Adressen Takt Steuerwerk Z ALU Speicher IR X Y SAR SDR RA IAR Akku Eins SP FP return address stack pointer frame pointer GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 16 / 24

Register RA speichert eine Rückkehradresse zwei neue Maschinenbefehle CALL adr «call subroutine at address» ähnlich JMP adr zusätzlich wird der Inhalt von IAR in RA gespeichert «return from subroutine» ähnlich JMP adr neuer Inhalt von IAR wird aus RA geholt GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 17 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... RA cont1 teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... RA cont1 teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... RA cont1 teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... RA cont1 teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... Sprungziel aus RA, also cont1 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... RA cont1 teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... RA cont2 sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... RA cont2 sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... RA cont2 Sprungziel aus RA, also cont2 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... funktioniert so nur, wenn zwischen sub und kein CALL sub:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

CALL und Wiederverwendung von Codestücken durch primitiven Unterprogrammaufruf teil1:... Arbeit... cont1:... weiter... teil2:... Arbeit... cont2:... weiter... sub:... Arbeit... funktioniert so nur, wenn zwischen sub und kein CALL Parameterübergabe nur in Akku GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 18 / 24

SP und FP FP: frame pointer oder Umgebungszeiger technisch: genau so verwendbar wie SP inhaltlich: Vorlesungen Programmieren und Softwaretechnik hier keine weiteren Erläuterungen SP: stack pointer oder Stapelpegel zeigt auf freie Speicherstelle, in der nächstes push einen Wert ablegen würde Realisierung eines push Ablegen eines Wertes an richtiger Speicherstelle und Verändern des Inhalts von SP Realisierung eines top Lesen eines Wertes von richtiger Speicherstelle und Realisierung eines pop Verändern des Inhalts von SP GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 19 / 24

Speicherzugriffe mittels SP relative Adressierung mittels Summe von Inhalt von SP vorzeichenbehaftetem konstanten Aneil LDVR disp(sp) «load value relative with displacement» Beispiel: LDVR -1(SP) holt oberstes Stapelelement in den Akku STVR disp(sp) «store value relative with displacement» Beispiel: STVR 0(SP) speichert Inhalt von Akku als neues oberstes Stapelelement GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 20 / 24

Veränderungen des SP-Registers Befehle für Transport zwischen SP und Akku LDSP «load from stack pointer» STSP «load to stack pointer» analog für FP analog für RA Befehl zum Addieren einer vorzeichenbehafteten Konstanten ADC const «add constant to Akku» damit zum Beispiel Erhöhung des Stack Pointers durch LDSP ADC 1 STSP GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 21 / 24

Realisierung von push, top und pop push STVR 0(SP) LDSP ADC 1 STSP top LDVR -1(SP) pop LDSP ADC -1 STSP GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 22 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... RA cont1 sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... RA cont1 sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... RA cont1 Stack: cont1 sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... Stack: cont1 RA cont2 sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... Stack: cont1 RA cont2 sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... sub2:... Arbeit... Stack: cont1 RA cont2 Sprungziel aus RA, also cont2 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel Stack: cont1 2 cont2: hole RA von Stapel RA cont1... weiter... sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel RA cont1... weiter... sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel RA cont1... weiter... Sprungziel aus RA, also cont1 sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

push und pop von RA für ineinander geschachtelte CALL main:... Arbeit... 1 cont1:... weiter... sub1:... Arbeit... lege RA auf Stapel 2 cont2: hole RA von Stapel... weiter... sub2:... Arbeit... GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 23 / 24

Wir halten fest Das sollten Sie mitnehmen: zusätzliche Register und zusätzliche Maschinenbefehle erlauben Realisierung eines Stapels z. B. von Rücksprungadressen für geschachelte Unterprogrammaufrufe GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik 24 / 24