Technische Informatik II Rechnerarchitektur
|
|
|
- Martha Bauer
- vor 9 Jahren
- Abrufe
Transkript
1 Technische Informatik II Rechnerarchitektur 3.Unterprogramme in MMIX Matthias Dräger www: tinyurl.com/sose2010ti2 Zuletzt bearbeitet:
2 Vorteile von Unterprogrammen Strukturierung des Programms komplexe Programme werden in verständliche Teilprogramme untergliedert Wiederverwendung Unterprogramme zur Lösung eines Problems können leicht in andere Programme integriert werden Verteilte Entwicklung im Team Unterprogramme können unabhängig voneinander entwickelt werden Separate Übersetzung (z.b. in Java) Programmteile werden separat übersetzt und später gebunden, d.h., bei einer kleinen Änderung muss nicht immer das komplette Programm übersetzt werden Verwendung von Programmbibliotheken (z.b. in C, Python) Bibliotheken sind Sammlungen von Unterprogrammen zu einen bestimmten Anwendungsgebiet 2
3 Bedingungen von Unterprogrammen Ein Unterprogramm sollte: nur eine Aufgabe lösen einen Mittelweg zwischen Einfachheit und Allgemeinheit darstellen Daten als Parameter erhalten globale Variablen unverändert lassen das Ergebnis als Rückgabewert zurückliefern 3
4 Überblick: Unterprogramme in MMIX beim Aufruf eines Unterprogramms steht die Rücksprungadresse* im Spezialregister rj einem Unterprogramm können mehrere Parameter übergeben werden es können mehrere Ergebnisse zurückgeliefert werden (Besonderheit!) bei Rekursion oder ineinander verschachtelten Aufrufen, muss man die Rücksprungadresse zwischenspeichern * ist die Adresse des Folgebefehls nach dem Unterprogrammaufruf 4
5 Unterprogramme mit dem Befehl GO Name: Spez.: GO (Get Address) GO $X,Marke GO $X,$Y,$Z Beschreibung: Es wird die Adresse des nachfolgenden Befehls (Rücksprungadresse) in Register $X gespeichert. Anschließend wird zur Stelle Marke bzw. zur Adresse $Y+$Z gesprungen. Es wird absolut adressiert. % unterprogramm_go.mms LOC Data_Segment % wird für LDA benötigt String BYTE "Willkommen im Unterprogramm :)",0 LOC #100 % wird für GO benötigt % Unterprogramm anlegen ausgabe LDA $255,String % Adresse von String ins globale Register laden TRAP 0,Fputs,StdOut % Srting ausgeben GO $0,$0,0 % Rücksprung zum Hauptprogramm % in $0 steht die Rücksprungadresse % Hauptprogramm Main GO $0,ausgabe % Rücksprungadresse wird in $0 gespeichert und nach ausgabe springen TRAP 0,Halt,0 5
6 Nachteile von GO Parameter lassen sich nicht übergeben Register im Unterprogramm werden auch im aufzurufenden Programm überschrieben Rekursion ist dadurch nicht möglich Lösung 1: Stack implemetieren und mithilfe eines Stackpointers verwalten sehr kompliziert und aufwändig! Lösung 2: die Befehle PUSHJ (push & jump) und POP verwalten den Stack automatisch 6
7 Die Befehle PUSHJ, PUSHGO und POP Name: PUSHJ (Push & Jump) Name: POP Spez.: PUSHJ $X,Marke Spez.: POP X,Y Beschreibung: Die Register $0 bis $X werden auf dem Registerstack gesichert. Die Register ab $X (also $X+1, $X+2, ) stellen die Parameter dar und werden umnummeriert, beginnend bei $0, $1, Register $X wird von MMIX intern benutzt und enthält die Anzahl der gesicherten Register. Die Rücksprungadresse wird im Spezialregister rj gespeichert und es wird zur Marke gesprungen. Name: Spez.: Beschreibung: siehe PUSHJ und GO PUSHGO (Push & Go) PUSHGO $X,$Y,$Z Beschreibung: Der Befehl POP macht die von der PUSHJ ausgeführten Aktionen rückgängig. Die Zahl X gibt an, wie viele Rückgabewerte (also Ergebnisse) es gibt, d.h. sie muss im Bereich 0 bis 255 liegen. Die Rückgabewerte müssen dabei in den Registern $0 bis $X-1 stehen. Anschließend wird die Umnummerierung von PUSHJ rückgängig gemacht. Die Ergebnisse aus dem Unterprogramm ($0 bis $X-1) stehen nun an der Stelle $X (von PUSHJ $X,Marke). Es folgt ein Rücksprung an die Adresse, die im Spezialregister rj hinterlegt wurde. Ist der Parameter Y von POP größer als 0, so folgt der Rücksprung an die Adresse: 7
8 Beispiel 1: PUSHJ und POP Ziel: Wir wollen das Unterprogramm YZ aufrufen und dessen Ergebnis soll danach in Register $2 stehen. % bsp1-pushj.mms LOC #100 % Unterprogramm anlegen YZ SET $3,70 ADD $0,$0,60 % erhöhe $0 um 60 POP 1,0 % liefere $0 als Ergebnis zurück % Hauptprogramm Main SET $0,10 % Register mit Beispielwerten füllen SET $1,20 SET $2,30 SET $3,40 SET $4,50 SET $5,60 PUSHJ $2,YZ % Zum Unterprogramm YZ springen SET $0,$2 % Welcher Wert steht nun in $0? TRAP 0,Halt,0 8
9 Schematische Darstellung zu Beispiel 1 Hauptprogramm Sichere ab Register $2 und springe zum Unterprogramm an der Marke YZ. Unterprogramm wird ausgeführt. PUSHJ $2,YZ Es gibt einen Rückgabewert ($0). POP 1,0 9
10 Beispiel 2: PUSHJ und POP Ziel: Wir wollen das Unterprogramm YZ aufrufen und es sollen vier Ergebnisse zurück geliefert werden. % bsp2-pushj.mms LOC #100 % Unterprogramm anlegen YZ SET $3,70 ADD $0,$0,60 % erhöhe $0 um 60 POP 4,0 % liefere 4 Ergebnisse zurück ($0 - $3) % das Hauptergebnis ist also $3 % Hauptprogramm Main SET $0,10 % Register mit Beispielwerten füllen SET $1,20 SET $2,30 SET $3,40 SET $4,50 SET $5,60 PUSHJ $2,YZ % Zum Unterprogramm YZ springen % Das Hauptergebnis steht in $2. SET $0,$2 % Welcher Wert steht nun in $0? TRAP 0,Halt,0 10
11 Schematische Darstellung zu Beispiel 2 Hauptprogramm Sichere ab Register $2 und springe zum Unterprogramm an der Marke YZ. Unterprogramm wird ausgeführt. PUSHJ $2,YZ Es gibt vier Rückgabewerte (von $0 bis $3) POP 4,0 Hinweis: $3 im Unterprogramm gilt als Hauptergebnis und steht deshalb im Hauptprogramm in $2. 11
12 Wiederholung: Organisation des Hauptspeichers Wo werden die Daten von Registern bei Unterprogrammausrufen in MMIX zwischengespeichert/ausgelagert? Segment Symbol Startadresse Zweck Textsegment #0 bis #FF Interruptroutinen Textsegment #100 Programm und statische Daten Datensegment Data_Segment # Poolsegment Pool_Segment # Stacksegment Stack_Segment # veränderliche Daten (z.b. Arrays, Texte, ) Kommunikation zwischen Programm und Betriebssystem Auslagerung der Inhalte von Registern bei Unterprogrammaufrufen 12
13 Beispiele mit PUSHJ und POP 13
14 Wiederholung: Summenberechnung In dem folgenden Beispiel wird die Summe berechnet: % sum-while.mms % Es wird die Summe von 1..n berechnet. LOC #100 n IS $0 i IS $1 % Laufvariable res IS $2 % Ergebnis speichern tmp IS $3 % speichert Ergebnis von CMP Main SET n,6 % setze n auf Endwert 6 SET i,1 % initialisiere Zählvariable SET res,0 % Ergebnis mit 0 initialisieren loop ADD res,res,i % rechne: res = res + i ADD i,i,1 % erhöhe i um 1 CMP tmp,i,n % vergleiche i mit n % wenn i > n, dann hat tmp den Wert 1 % Hinweis: tmp kann wegen CMP nur den Wert -1,0 oder 1 haben % prüfen, ob tmp nicht positiv ist -> zum Schleifenanfang springen BNP tmp,loop TRAP 0,Halt,0 % beende Programm 14
15 Summenberechnung im Unterprogramm Ziel: Berechnung der Summe von 1 bis n im Unterprogramm. % sum-pushj-while.mms LOC #100 % % Dieses Unterprogramm berechnet die Summe der Zahlen 1..sum_n % sum_n IS $0 i IS $1 % Laufvariable res IS $2 % Ergebnis speichern tmp IS $3 % speichert Ergebnis von CMP sum SET i,1 % initialisiere Zählvariable SET res,0 % Ergebnis mit 0 initialisieren loop ADD res,res,i % rechne: res = res + i ADD i,i,1 % erhöhe i um 1 CMP tmp,i,sum_n % vergleiche i mit sum_n BNP tmp,loop % springe solange zu loop, wie i <= sum_n SET $0,res % speichere das Ergebnis in $0 POP 1,0 % gib Wert von $0 zurück % Das Hauptprogramm n IS $1 Main SET n,6 % setze n auf Endwert 6 PUSHJ $0,sum % springe zum Unterprogramm sum und übergebe $1 % hier könnte noch eine Ausgabe von $0 folgen... TRAP 0,Halt,0 % beende Programm 15
16 Rekursive Summenberechnung im Unterprogramm Ziel: Rekursive Berechnung der Summe von 1 bis n im Unterprogramm. % sum-pushj-rek.mms LOC #100 % % Dieses Unterprogramm berechnet rekursiv die Summe der Zahlen 1..sum_n % sum_n IS $0 % Laufvariable n wird mit jedem Rekursionsschritt verringert adr_rj IS $1 % zum Zwischenspeichern der Rücksprungadresse res IS $2 % Ergebnis vom Rekursionsschritt tmp IS $3 % speichert Ergebnis von CMP sum SUB tmp,sum_n,1 % (n-1) für den nächsten Rekursionsschritt vorbereiten BNP tmp,sum_end % falls tmp < 1, beende Rekursion GET adr_rj,rj % Adresse der Rücksprungadresse sichern (WICHTIG!!) PUSHJ res,sum % Unterprogramm sum rekursiv aufrufen ADD sum_n,sum_n,res % ergebnis = n + res PUT rj,adr_rj % Rücksprungadresse zurückspeichern sum_end POP 1,0 % Wert von $0 zurückliefern % Das Hauptprogramm n IS $1 Main SET n,6 % setze n auf Endwert 6 PUSHJ $0,sum % springe zum Unterprogramm sum und übergebe $1 % hier könnte noch eine Ausgabe von $0 folgen... TRAP 0,Halt,0 % beende Programm 16
17 Zusammenfassung Was sind Unterprogramme? Vorteile von Unterprogrammen Unterprogramme in MMIX mittels GO mit den Befehlen PUSHJ und POP rekursive Programmierung 17
Technische Informatik II Rechnerarchitektur
Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: [email protected] [email protected] www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php
Welche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt?
6.5 MMIX Befehle 291 Aufrufkonventionen Eine Aufrufkonvention (engl. calling convention) legt fest, wie einer Funktion Parameter übergeben werden und wie der Rückgabewert zurückgegeben wird. Damit spezifiziert
Computersysteme. Stacks Anwendung in der Assembler-Programmierung
Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart
Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:
1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address
MMIX Crashkurs Teil 3 Unterprogramme und Parameterübergabe. Freiling/Wienzek/Mink Vorlesung Rechnerstrukturen RWTH Aachen Sommersemester 2005
MMIX Crashkurs Teil 3 Unterprogramme und Parameterübergabe Freiling/Wienzek/Mink Vorlesung Rechnerstrukturen RWTH Aachen Sommersemester 2005 Unterprogramme Hauptproblem heutiger Softwareentwicklung liegt
Unterprogramme. Unterprogramme
Unterprogramme Unterprogramme wichtiges Hilfsmittel für mehrfach benötigte Programmabschnitte spielen in höheren Programmiersprachen eine wesentliche Rolle in Assembler sind bestimmte Konventionen nötig
Vorlesung Rechnerarchitektur
Vorlesung Rechnerarchitektur Sommersemester 2017 Carsten Hahn 8. Juni 2017 Agenda Grundlagen: Wiederholung Kontroll-Strukturen Stack-Speicher Unterprogramme I Unterprogramme II Call-by-Value (CBV) vs.
TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen
7. Aufgabenblatt mit Lösungen Problem 1: IEEE-Gleitkommazahlen (2+2+4=8) a) Welchen Bereich der positiven Zahlen kann man mit normalisierten Gleitkommazahlen im IEEE-754-Format mit 64 Bit darstellen? b)
Technische Informatik I Übung 3: Assembler
Technische Informatik I Übung 3: Assembler Roman Trüb Computer Engineering Group, ETH Zürich 1 Lernziele Übung 3 Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Assembler Codeanalyse Aufgabe 2
Technische Informatik I - HS 18
Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das
Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme
Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester 2016 Lorenz Schauer Mobile & Verteilte Systeme 12. Juli 2016 Agenda heute Grundlagen: Unterprogramme I Call-by-Value (CBV) vs. Call-by-Reference
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou ([email protected]) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou ([email protected]) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
Adressierungsarten des 6809 (Forts.)
Adressierungsarten des 6809 (Forts.) Zusammenfassung zur indizierten Adressierung: 19 Beispiel-Programm 1 für 6809 6809-Assemblerprogramm zur Suche nach Leerzeichen (space, tab, return) in einem String:
Mikrocomputertechnik. Unterprogramm
Unterprogramm Ein Teilproblem wird entweder zur mehrmaligen Verwendung oder zur Programmstrukturierung als Unterprogramm codiert. Ein Unterprogramm wird von einem übergeordneten Programm (Hauptprogramm)
Zusammenfassung der Assemblerbefehle des 8051
Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach
Assembler Unterprogramme
Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme
Übungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16
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
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 Stack, Stackpointer, UP Stack (Stapel, FIFO) wird benötigt UP-Ruf:
Elementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
LOC Data_Segment A OCTA a) Bestimmen Sie das 32 Bit breite Befehlswort des Befehls JMP Start.
humpl 6.5 MMIX Befehle 299 Betrachten Sie die folgenden Befehle: LOC Data_Segment GREG @ A OCTA 1000 a IS $1 b IS $2 LOC #100 Main LDB aa Start SUB aa1 swathe 2 Befehl OR aa0 BZ aend JMP Start End TRAP
Grundbegriffe der Informatik
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
T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes?
222 6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? Kleiner aber Schneller Speicher T b) Wo findet man Register in einem ComputerSystem? Prozessor T c) Daten welcher Größenordnung
WS2018/ Oktober 2018
Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen
Schritt Aktion Erläuterung 1 UBRR auf 25 setzen Baudrate auf 9600 TXEN-Bit von UCSRB auf 1 setzen
Das Attiny-Projekt Unterprogramme in Assembler 1 Unterprogramme Unterprogramme haben wir schon im Zusammenhang mit BASCOM kennen gelernt. Auch Assemblerprogramme können durch Unterprogramme strukturiert
Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt
Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt 1. Die Zahlen von 1 bis 10 sollen ausgegeben werden (a) absteigend mit einer do while-schleife 3 zehn DEF 10 ; int zehn = 10 4 Anfang
Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer
Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche
3. Aufgabenblatt mit Lösungen
3. Aufgabenblatt mit Lösungen Problem 1: Gleitkomma-Darstellung (2+2+2+2=8) Stellen Sie die Zahlen 2/3 und 2/7 als IEEE single unter Verwendung der dar. a) round-to-even -Regel b) Rundung zum nächsten
T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben?
236 6 MMIX-Prozessor T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? Byte : Reine besondere Eigenschaft wyde : durch 2 tutbar eetztesrstto Tetra : dutch 4 teicbar
FAKULTÄT FÜR INFORMATIK
FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Martin Schulz Einführung in die Rechnerarchitektur Wintersemester 2017/2018 Lösungsvorschlag
Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
LOC Data_Segment
65 MMIX Befehle 291 In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: : LOC Data_Segment a iii GREG @ :;fff ±t A OCTA #FFFFFFFFFFFFFFFF B TETRA #87654321
Algorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
Unterstützung von Jump Tables
Unterstützung von Jump Tables Assembler Code: Label_ 1: Label_2: Label_n: Maschinen Code: 0x05342120: 1011010110 0x05443004: 0001011101 0x06756900: 0000111000 Jump Table Nr Label Adresse 0 Label_1 0x05342120
Übersicht. Quelle: Kapitel 3, 4 und 5 aus Anlauff, Böttcher, Ruckert: Das MMIX-Buch. Springer, 2002
Übersicht Wiederholung: ein einfaches MMIX-Programm Speicherorganisation, Speicherzugriff Zahlen und Arithmetik Zeichenketten und Ein-/Ausgabe Kontrollstrukturen Unterprogramme Quelle: Kapitel 3, 4 und
1 pulsierender Speicher
1 pulsierender Speicher 1.1 Aufgabentyp Gegeben sei das folgende C-Programm: [...] (a) Geben Sie den Gültigkeitsbereich jedes Objektes des Programms an. (b) Stellen Sie die Rechnung des Programms für die
WS2017/ Oktober 2017
Einführung in die Programmierung Ronja Düffel WS2017/18 09. Oktober 2017 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen
Vorlesung IT-Systeme I
Vorlesung IT-Systeme I H. Anlauff A. Böttcher M. Ruckert 7. Oktober 2008 Einleitung Definition IT-System Ein IT-System besteht aus unterschiedlichen Hardwarekomponenten (Rechner, Drucker, Netzwerkkomponenten,
Lösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)
Musterlösung Übung 2 Aufgabe 1: Große Zahlen Das Ergebnis ist nicht immer richtig. Die Maschine erzeugt bei Zahlen, die zu groß sind um sie darstellen zu können einen Über- bzw. einen Unterlauf. Beispiele
Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009
Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen
Betriebssysteme Teil 3: Laufzeitsystem für Programme
Betriebssysteme Teil 3: Laufzeitsystem für Programme 23.10.15 1 Literatur [3-1] Stack: http://fbim.fh-regensburg.de/~hab39652/pg1/skriptum/ ausdruecke/maschinenmodell.html [3-2] https://de.wikipedia.org/wiki/dynamischer_speicher
Erste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: [email protected] Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
Heute nur MIPS-Praxis (4 Aufgaben)
Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen
Vorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
EWS, WS 2016/17 Pfahler I-1
Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler Funktionen EWS, WS 2016/17 Pfahler I-1 Funktionen Funktion: Rechenvorschrift mit einem Namen und ggf. formalen Parametern,
Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python
Vorsemesterkurs Informatik Übungsaufgaben Tag 4a - Python Aufgabe 1: Listen Mache dich im Python-Interpreter mit dem Umgang mit Listen vertraut. Kapitel 2.6 im Skript (s.40) enthält nützliche Informationen.
4. TÜ-Zusammenfassung zum Modul Computersysteme
4. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 6. Kapitel MMIX 256 Allzweckregister um Operanden abzuspeichern 32 Spezialregister bilden Schnittstelle zwischen Soft- und Hardware ALU(Arithmetic
Unterprogramme mittels Stack (Forts.)
Unterprogramme mittels Stack (Forts.) gleiches Beispiel mit direkter Übergabe aller Parameter (8-Bit Wert a, 16-Bit Wert b, 16-Bit Ergebnis) durch call by value auf Stack: LDB a * Lade 8-Bit Wert a PSHS
Rechnerstrukturen Sommersemester 2003
9. Übung Ausgabe Abgabe 08.07.03 16.-18.07.03 Bei Fragen und Problemen können Sie uns per E-mail unter den folgenden Adressen erreichen: Mesut Güneş [email protected] Ralf Wienzek [email protected]
Rekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: n i n! = i=1 für n > 0 1 für
Speicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
Rekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: nn ii nn! = ii=1 für nn > 0
Funktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben
Exploit-Entwicklung mit Python
Penetration Testing III Bachelor in Computer Science (BCS) 6. Semester Exploit-Entwicklung mit Python von Daniel Baier und Demian Rosenkranz 1 / 20 Gliederung Grundlagen Sicherheitslücken Prozess- und
Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
Programmieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
Übungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de marco.duerr [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2018 Übungsblatt 10 (Block C 2) (16 Punkte)
Assembler - Adressierungsarten
Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 3 Algorithmen mit Gedächtnis Besonderheit Beispiele Typische Algorithmen Realisierungsvarianten Institut für Pervasive Computing Johannes
6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Tutorium Rechnerorganisation
Woche 6 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
4. Mikroprogrammierung (Firmware)
4. Mikroprogrammierung (Firmware) 4. Ein Mikroprogramm-gesteuerter Computer 4.2 Mikroprogramm-Beispiel: Multiplikation 4.3 Interpretation von Maschinenbefehlen durch ein Mikroprogramm 4. Mikroprogrammierung
Funktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.
Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach [email protected] http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
Einleitung Grundlagen Erweiterte Grundlagen Zusammenfassung Literatur. C: Funktionen. Philip Gawehn
C: Funktionen Philip Gawehn Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Do., 22.05.2014 1 / 23 Gliederung
Übung 1 - Betriebssysteme I
Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits
U23 Assembler Workshop
Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface
1.4 Die Ackermannfunktion
a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht
Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen
Kontrollstrukturen -- Schleifen und Wiederholungen
Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14
Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures
Vorbesprechung U8 Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Basistypen Alignment der Basistypen auf deren Grösse Grössen (abhängig
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
Vorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Java Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
11. Unterprogrammtechnik
11 Unterprogrammtechnik 111 Sprung und Rücksprung 112 Retten der Register 113 Parameter-Übergabe Programmierkurs II Wolfgang Effelsberg 11 Unterprogrammtechnik 11-1 111 Sprung und Rücksprung BSR Verzweige
