Systemprogrammierung (37-023)

Größe: px
Ab Seite anzeigen:

Download "Systemprogrammierung (37-023)"

Transkript

1 Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozenten: Thomas Stricker Roman Geus WebSite: Begleit-/Textbuch: R. Paul: SPARC Architecture, Assembly Language Programming and C --- B. Kernigham, D. Richie: The C Programming Language Heute: Kontrollstrukturen in Assembler Branches Schleifenprogrammierung Case Statements 27/ Systemprogrammierung Stricker

2 Branches auf pipelined RISC (architekturspezifischer Aspekt) Hardware muss nicht in schnelleren Zyklen getaktet werden, statt dessen Parallelisierung Tiefe der Pipeline bei SPARC V8: 5 (2 sichtbar) 27/ Systemprogrammierung Stricker

3 Probleme bei Branching (Verzweigungen): Wird ein Branch ausgeführt, so muss die folgende Instruktion aus der Zieladresse des Branches entnommen werden! Instruktion nach branch-anweisung findet sich allerdings noch in der Pipeline. Korrekterweise müsste die Pipeline geleert werden SPARC überlässt diese Kontrolle dem Benutzer Verwendung von zwei Programmzeigern: %pc -> execute %npc-> fetch Branch Delay Slot: Nächste Instruktion wird ausgeführt, bevor die erste Instruktion des Branches wirksam wird. einfachste Vorgehensweise: nop -> Zyklus geht verloren! 27/ Systemprogrammierung Stricker

4 SPARC Maschinen Zyklus Branch Delay Slots können effizient genutzt werden, verschlechtern allerdings die Lesbarkeit des Codes 27/ Systemprogrammierung Stricker

5 Conditional Branches in Assembler Condition Code Register: Bestehend aus 4 Kontrollbits Teil des Prozessor Status Registers Z: zeigt an, ob Resultat 0 N: zeigt an, ob Resultat negativ V: zeigt an, ob Resultat generell zu gross für Register (Overflow) C: Carry Bit des most significant Bit Satz von Instruktionen, welche condition codes setzen! addcc subcc smulcc sdivcc /* typischerweise mit Suffix cc */ 27/ Systemprogrammierung Stricker

6 Branch Instruktionen der SPARC Nach Branch-Instruktion wird Adresszeiger auf Adresse der ersten Instruktion des Branches gesetzt. Labels zur Adress-Markierung. bxy label /* bxy eine der folgenden Instruktionen */ 27/ Systemprogrammierung Stricker

7 While Loop Fundamentale Kontrollstruktur in Computer Programmen Wichtigste loop Da normalerweise sehr oft durchlaufen, muss der resultierende Assemblercode möglichst effizient sein Anzahl der Instruktionen minimieren!! Beispielprogramm in C 1 main() { 2 int temp; 3 int x = 0; 4 int y = 0x9; 5 int z = 0x42; 6 7 temp = y; 8 while (temp>0) { 9 x = x + z; 10 temp = temp - 1; 11 } 12 printf( %d\n,x); 13 } 27/ Systemprogrammierung Stricker

8 While Loop in Assembler.data x:.word 0!bsp8.s y:.word 0x9 z:.word 0x42.text start: set y, %r1 ld [%r1], %r2 set z, %r1 ld [%r1], %r3 mov %r0, %r4 add %r2, 1, %r2 ba test nop top: add %r4, %r3, %r4 test: subcc %r2, 1, %r2 bg top!temp>0 nop!branch DELAY SLOT set x, %r1 st %r4, [%r1] end: ta 0 27/ Systemprogrammierung Stricker

9 Ablauf des Programmzählers Standardzyklus des Prozessors: pc <- npc; npc += 4; Bei Branches pc <- npc /* delay slot */ ncp <- branch_label Sinnvolle Nutzung des Delay Slots Im Beispiel kann die Addition von y und x in den delay slot übertragen werden: x:.word 0 y:.word 0x9 z:.word 0x42 start: set y, %r1 ld [%r1], %r2 set z, %r1 ld [%r1], %r3 mov %r0, %r4 add %r2, 1, %r2 top: subcc %r2, 1, %r2 bg,a top!annulled branch add %r4, %r3, %r4 set x, %r1 st %r4, [%r1] end: ta 0 27/ Systemprogrammierung Stricker

10 Möglichkeit zur Annulierung Branch delay slot Instruktionen können annulliert werden, wenn der branch nicht genommen wird! bg, a /* wird im Code durch,a angezeigt */ Die sinnvolle Verwaltung von Branch-Delay-Slots bleibt dem Benutzer überlassen! 27/ Systemprogrammierung Stricker

11 Allgemeines while statement Situation schwieriger bei folgender while Anweisung: 1 main() { 2 int a= 0; 3 int b= 3; 4 while (a<=17) { 5 a= a+ b; 6 } 7 } Man benötigt eine zusätzliche Vergleichsinstruktion: cmp cmp register1, register2 register2, const. /* synthetische Instruktion */ subccregister1, register2, g0 subccregister2, const, g0 /* vergleicht Register miteinander und setzt Vorzeichenbit des condition codes */ 27/ Systemprogrammierung Stricker

12 1. Variante in Assembler 1.data 2 a:.word0 3 b:.word3!bsp10.s 4 5.global_main 6.text 7 _main: set a, %r1 8 ld [%r1], %r2 9 set b, %r1 10 ld [%r1], %r3 11 loop: cmp %r2, 17! a>17 12 bg store 13 nop!1. delay slot 14 add %r2, %r3, %r2 15 ba loop 16 nop!2. delay slot 17 store: set a, %r1 18 st %r2, [%r1] 19 end: ta 0 Compare Instruktion vergleicht Register mit Konstante Innerhalb der loop keine optimale Programmausführung -> Optimierung 27/ Systemprogrammierung Stricker

13 2. Variante in Assembler 1.data!Variant 2 of while 2 a:.word8!loop is add, cmp, nop 3 b:.word3!bsp11.s 4 5.global_main 6.text 7 _main: set a, %r1 8 ld [%r1], %r2 9 set b, %r1 10 ld [%r1], %r3 11 test: cmp %r2, bg store 13 nop 14 loop: add %r2, %r3, %r2!4 cycles 15 cmp %r2, ble loop 17 nop 18 store: set a, %r1 19 st %r2, [%r1] 20 end: ta 0 Loop konnte gegenüber Variante 1 um zwei Instruktionen verkürzt werden. 27/ Systemprogrammierung Stricker

14 3. Variante in Assembler 1.data!Variant 3 of while 2 a:.word 0! 1. test can be avoided 3 b:.word 3! bsp12.s 4 5.global _main 6 7.text 8 _main: set a, %r1 9 ld [%r1], %r2 10 set b, %r1 11 ld [%r1], %r ba test!unconditional branch 14 nop loop: add %r2, %r3, %r test: cmp %r2, 17!initializes CC 19 ble loop!4 cycles 20 nop store: set a, %r1 23 st %r2, [%r1] 24 end: ta 0 Erster bedingter branch kann durch absoluten branch ersetzt werden! 27/ Systemprogrammierung Stricker

15 4. Variante in Assembler 1.data!Variant 4 of while 2 a:.word0!1. test can be avoided 3 b:.word3!removal of uncond. nop 4!bsp13.s 5.global _main 6.text 7 _main: set a, %r1 8 ld [%r1], %r2 9 set b, %r1 10 ld [%r1], %r ba test!branch always 13 cmp %r2, 17!CC init 14 loop: add %r2, %r3, %r cmp %r2, 17!4 cycles 17 test: ble loop 18 nop store: set a, %r1 21 st %r2, [%r1] 22 end: ta 0 nop im unconditional branch delay slot kann einfach umgangen werden! 27/ Systemprogrammierung Stricker

16 5. Variante in Assembler 23.data!Variant 5 of while 24 a:.word0!1.test can be avoided 25 b:.word3!removal of uncond. nop 26!removal of cond. nop 27!branch delay slot bsp14.s 28.global_main 29.text _main: set a, %r1 32 ld [%r1], %r2 33 set b, %r1 34 ld [%r1], %r loop: cmp %r2, 17!3 cycles 37 ble,aloop 38 add %r2, %r3, %r store: set a, %r1 41 st %r2, [%r1] 42 end: ta 0 Weitere Code-Optimierung durch Annullierung des Branch Delay Slots möglich 27/ Systemprogrammierung Stricker

17 Flussdiagramm (annuled conditional branch) 27/ Systemprogrammierung Stricker

18 Do Loops Wenn Schleife zumindest einmal ausgeführt wird, sollte Do loop verwendet werden. Initialer Test kann entfallen C-Code fragment 1 main() { /* bsp15.c */ 2 3 int a = 0; 4 int b = 3; 5 do { 6 a = a + b; 7 } while (a<=17); 8 } 27/ Systemprogrammierung Stricker

19 DO-Loop in Assembler Code 1.data! 2 a:.word0 3 b:.word3!bsp16.s 4 5.global _main 6 7.text 8 _main: set a, %r1 9 ld [%r1], %r2 10 set b, %r1 11 ld [%r1], %r add %r2, %r3, %r2 14 loop: cmp %r2, ble,aloop 16 add %r2, %r3, %r store: set a, %r1 19 st %r2, [%r1] 20 end: ta / Systemprogrammierung Stricker

20 For loops C-Syntax 1 main() { 2 int a = 0; 3 int b = 3; 4 int i; 5 6 for(i=1; i<=15; i++) {/* bsp17.c */ 7 a = a + b; 8 } 9 } Können in while-schleifen umgesetzt werden! 1 main(){ 2 int a = 0; 3 int b = 3; 4 int i = 1; 5 6 while(i<=15) { 7 a = a + b; 8 i++; 9 } /* bsp18.c */ 10 } 27/ Systemprogrammierung Stricker

21 For Loops in Assembler 1.data 2 a:.word 0 3 b:.word 3!bsp19.s 4 i:.word con:.word global _main 9 10.text 11 _main: set a, %r1 12 ld [%r1], %r2 13 set b, %r1 14 ld [%r1], %r3 15 set i, %r1 16 ld [%r1], %r4 17 set con, %r1 18 ld [%r1], %r ba test!branch always loop: cmp %r4, %r5 23 add %r2, %r3, %r test: ble,a loop 26 inc %r store: set a, %r1 29 st %r2, [%r1] 30 end: ta 0 27/ Systemprogrammierung Stricker

22 C-Syntax und Code If Then Statements 1 main() { 2 int a; 3 int b = 1; 4 int c = 2; /* bsp20.c */ 5 int d = 3; 6 7 printf ( a =?\n ); 8 scanf( %d,&a); 9 10 if ((a + b)>c) { 11 a += b; 12 c++; 13 } 14 a += d; 15 printf( a = %d\n,a); 16 printf( b = %d\n,b); 17 printf( c = %d\n,c); 18 printf( d = %d\n,d); 19 } Branch muss bei Nichterfülltsein der Bedingung genommen werden scanf Funktion ermöglicht Eingabe Kompakte Zuweisungen in C: i += 5 27/ Systemprogrammierung Stricker

23 If/Then in Assembler Wir benötigen die logischen Komplemente der bedingten branch Instruktionen Bedingung Komplement bl less bge ble less equal bg bne not equal be be equal bne bge greater equal bl bg greater ble Ausnutzung des Branch delay slot, erste Anweisung nach der if Abfrage wird wiederholt ble Bedingung als Komplement zur if- Abfrage 27/ Systemprogrammierung Stricker

24 If/then in Assembler (con t) 1.global _main 2 3.text 4 _main: set a, %r1! bsp21.s 5 ld [%r1], %r2 6 set b, %r1 7 ld [%r1], %r3 8 set c, %r1 9 ld [%r1], %r4 10 set d, %r1 11 ld [%r1], %r add %r2, %r3, %r6 14 cmp %r6, %r ble,a store 17 add %r2, %r5, %r2!branch DS 18 inc %r4 19 add %r2, %r3, %r2 20 add %r2, %r5, %r2 21 store: set a, %r1 22 st %r2, [%r1] 23 end: ta 0 27/ Systemprogrammierung Stricker

25 C-Syntax und Code If Else Statement 1 if ((a + b)>=c) { /* bsp22.c */ 2 a += b; 3 c++; 4 } else { 5 a -= b; 6 c--; 7 } 8 c += 10; Assembler Code Fragment 1 add %r2, %r3, %r6!bsp23.s 2 cmp %r6, %r4!a->r2, b->r3, c->r4 3 4 bl,a else 5 sub %r2, %r3, %r2!1. instruction of else 6 add %r2, %r3, %r2!1. instruction of then 7 inc %r4 8 ba store 9 add %r4, 10, %r else: dec %r4 12 add %r4, 10, %r store: set a, %r1 15 st %r2, [%r1] 16 end: ta 0 27/ Systemprogrammierung Stricker

26 erste Instruktion des else Teils wurde in den branch delay slot der bl Condition übernommen Vermeidung jeglicher nops Code wird schwer lesbar 27/ Systemprogrammierung Stricker

27 Annullierung von unbedingten branches ba,a Delay slot wird immer annulliert, aber es wird trotzdem gesprungen!!! Ist sinnvoll, wenn statt einer Instruktion ein branch zu einer Subroutine (call.sqrt) erfolgen soll. Branch verliert in diesem Fall Delay slot. 27/ Systemprogrammierung Stricker

28 Delayed Control Transfer Couples Wenn Branch Instruktion im delay slot einer weiteren branch instruktion liegt ba ble label1 label2 1. Instruktion muss unbedingte Branch Instruktion sein, sonst Reihenfolge der Instruktionen nicht definiert 27/ Systemprogrammierung Stricker

29 Switch Statement Switch Statement: Verzweigung mittels Tabelle Unterschiedliche Anzahl Instruktionen pro case. switch-beispiel (C-Syntax): 1 switch (i + 3) { 2 case 1: i += 1; 3 break; 4 case 2: i += 2; 5 break; 6 case 15: i += 15; 7 case 3: i += 3; 8 break; 9 case 4: i += 4; 10 case 6: i += 6; 11 break; 12 case 5: i += 5; 13 break; 14 default: i--; 15 } 27/ Systemprogrammierung Stricker

30 Berechnung Switch-Adressen Finde grösstes und kleinstes Label Berechne Label-Range Berechne Differenz: switch-ausdruck - kleinstes Label) Vergleiche Range mit Differenz Nehme Wert als Index einer Pointer Tabelle, welche auf switch-anweisungen zeigen Fehlende Pointers in Tabelle werden durch Pointer->Next oder -> default ersetzt Wenn out of range ->default Einträge in gleicher Reihenfolge, wie C- Code 27/ Systemprogrammierung Stricker

31 switch in Assembler 1.data 2.align4 3 table:.word L1,L2,L3,L4,L5,L6,L7,L8,L9 4.word L10,L11,L12,L13,L14,L15 5.text 6.align 4 7 start: mov 0, %l0!initialize i=0 8 add %l0,3,%o0!compute switch expression 9 subcc %o0,1,%o0!reduce by min & cmp to zero 10 blu default!expression too small 11 cmp %o0, 1!compare to range 12 bgu default!too large 13 nop 14 set table, %o1!jump table 15 sll %o0, 2, %o0!word offset in table 16 ld [%o1+%o0],%o0!ptr to executable!code 17 jmpl %o0, %g0!transfer control 18 nop 19 L1: ba end!first ptr in jump table points here 20 add %l0,1,%l0!i++ 21 L2: ba end 22 add %l0,2,%l0!i += 2 23 L15: add %l0,15,%l0!i += 15; note no break 24 L3: ba end 25 add %l0,3,%l0!i += 3 26 L4: add %l0, 4, %l0!i += 4; note no break 27 L6: ba end 28 add %l0,6,%l0!i += / Systemprogrammierung Stricker

32 switch in Assembler (cont.) 30 L4: add %l0, 4, %l0!i += 4; note no break; 31 L6: ba end 32 add %l0,6,%l0!i += 6 33 L5: ba end 34 add %l0,5,%l0!i += 5 35 L7: 36 L8: 37 L9: 38 L10: 39 L11: 40 L12: 41 L13: 42 L14: 43 default:sub %l0, 1, %l0!i-- 44 end: ta / Systemprogrammierung Stricker

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozent: Prof. Thomas Stricker krankheitshalber vertreten durch: Felix Rauch WebSite: http://www.cs.inf.ethz.ch/37-023/

Mehr

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

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04. Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.

Mehr

Heute nur MIPS-Praxis (4 Aufgaben)

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

Mehr

Technische Informatik 1 - HS 2016

Technische Informatik 1 - HS 2016 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2016 Lösungsvorschläge für Übung 8 Datum: 8. 9. 12. 2016 1 Instruktionsparallelität VLIW Gegeben

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) 21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung

Mehr

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 (ggeorgia@tik.ee.ethz.ch) 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

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

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

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

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@[email protected] leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

Operatoren (1) Operatoren (2)

Operatoren (1) Operatoren (2) Operatoren (1) Binäre Operatoren + - * / % < = > & ^ > && Addition Subtraktion Multiplikation Division Divisionsrest Vergl. auf kleiner Vergl. auf kleiner oder gleich Vergl. auf gleich Vergl.

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G & 18.

Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G & 18. Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G77 [email protected] 17. & 18. November 2016 Inhalt Implementierung von Device-I/O mittels Polling und

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 5 am 25.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Grundlagen der Programmierung in C++ Kontrollstrukturen

Grundlagen der Programmierung in C++ Kontrollstrukturen Grundlagen der Programmierung in C++ Kontrollstrukturen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany [email protected] Block Keine Kontrollstruktur im eigentlichen Sinn Dient

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen.

Übersicht. C Ein-/Ausgabe und Kontrollanweisungen. I/O-Funktionen aus stdio. printf() Ein-/Ausgabe. Kontrollanweisungen. Übersicht Ein-/Ausgabe C Ein-/Ausgabe und Kontrollanweisungen Kontrollanweisungen 1 2 I/O-Funktionen aus stdio printf() printf() - zum formatierten Ausgaben #include scanf() - zum formatierten

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 C-Anweisungen...4-2 4.1 Ausdrucksanweisungen...4-3 4.2 Zusammengesetzte Anweisungen (Anweisungsblöcke)...4-3 4.3 Schleifenanweisungen...4-4 4.3.1 while - Schleife...4-4 4.3.2 do - Schleife...4-5

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Elementare Konzepte von

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)

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

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

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

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

Shangrila. One Instruction Set Computer

Shangrila. One Instruction Set Computer Shangrila One Instruction Set Computer Outline One Instruction Set Computer Die Idee Funktion Die Machine Shangrila VM Interfaces Tools Implementation Status & Zukunft OISC >> Die Idee CPU mit nur einer

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 3. Vorlesung Inhalt Zahlensysteme Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag Binary Offset 1er-Komplement 2er-Komplement Addition und Subtraktion binär dargestellter

Mehr

2.5 Programmstrukturen Entscheidung / Alternative

2.5 Programmstrukturen Entscheidung / Alternative Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

Mehr

Zusammenfassung der Assemblerbefehle des 8051

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

Mehr

2. Programmierung in C

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)

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken 4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Sequenz (Aneinanderreihung von Anweisungen)

Mehr

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors Digitaltechnik und Rechnerstrukturen 2. Entwurf eines einfachen Prozessors 1 Rechnerorganisation Prozessor Speicher Eingabe Steuereinheit Instruktionen Cachespeicher Datenpfad Daten Hauptspeicher Ausgabe

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen

Mehr

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

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle

Mehr

DLX-Assembler für Anfänger Kutil, 2004

DLX-Assembler für Anfänger Kutil, 2004 DLX-Assembler für Anfänger Kutil, 200 Hiermit können Sie die ersten Schritte in die Assemblerprogrammierung am Beispiel des virtuellen DLX-Prozessors machen. Dieses Dokument erklärt aber nicht die Befehle

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java)

3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java) 3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 11. Oktober 2005 Agenda Agenda Verzweigungen

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Übung Simon Wacker Karlsruher Institut für Technologie Wintersemester 2015/2016 GBI Grundbegriffe der Informatik Karlsruher Institut für Technologie 1 / 13 Programmiersprachen

Mehr

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45 Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45 Single Cycle Performance Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen folgende Ausführungszeiten:

Mehr

Bei der Und-Verknüpfung müssen beide Ausdrücke wahr sein, dass der gesamte Ausdruck wahr wird. a=1; b=2; a=1; b=3; else. endif

Bei der Und-Verknüpfung müssen beide Ausdrücke wahr sein, dass der gesamte Ausdruck wahr wird. a=1; b=2; a=1; b=3; else. endif 1. Kontrollstrukturen in Octave 1.1 Logische Vergleichs- und Verknuepfungsoperatoren Es existieren die gleichen logischen Vergleichs- und Vernüpfungsoperatoren wie bei praktisch allen Programmiersprachen.

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 3: Anweisungen, Blöcke und Programmfluss Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

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

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

Mehr

Systemprogrammierung - Zusammenfassung

Systemprogrammierung - Zusammenfassung Systemprogrammierung - Zusammenfassung Patrick Pletscher 21. September 2004 1 Computerarchitektur 1.1 Ressourcen und Operationen Register Schnellste Speicherzellen, nur sehr wenige (8-32), beschränkte

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Was ist die Performance Ratio?

Was ist die Performance Ratio? Was ist die Performance Ratio? Wie eben gezeigt wäre für k Pipeline Stufen und eine große Zahl an ausgeführten Instruktionen die Performance Ratio gleich k, wenn jede Pipeline Stufe dieselbe Zeit beanspruchen

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Aneinanderreihung von Anweisungen (Sequenz)

Mehr

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion) Auch hier wieder Aus voriger Wahrheitstabelle lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem Control Symbol abstrakt darstellen. Instruction[31 26] (also:

Mehr

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

Kontrollstrukturen Blöcke / Schleifen / Bedingungen Kontrollstrukturen Blöcke / Schleifen / Bedingungen 1 Einfache Anweisungen und Blöcke einfache Anweisung abgeschlossen mit Semikolon ; typische Fälle: o Deklaration, Zuweisung, Funktionsaufruf Sonderfall

Mehr

DLX-Assembler-Programmierung Kutil, 2010

DLX-Assembler-Programmierung Kutil, 2010 DLX-Assembler-Programmierung Kutil, 200 Es gibt mehrere Simulatoren für den DLX-Prozessor. Erstens WinDLX, ein altes 6-Bit-Windows-Programm mit GUI und Dokumentation. Zweitens dlxsim, ein Unix-Programm

Mehr

Rechnerarchitektur Teil 2

Rechnerarchitektur Teil 2 Rechnerarchitektur Teil 2 Fähigkeiten der Registermaschine und Sprachübersetzung Dipl.-Inform. Meiko Lösch 2006-05-12 Inhalt 1 Rechenfähigkeit Zuweisungen Rechnen Relationen 2 Programmierfähigkeit Schleifen

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Tutorium für Fortgeschrittene

Tutorium für Fortgeschrittene Tutorium für Fortgeschrittene Stroop Aufgabe: Die Farbe gesehener Wörter ist zu klassifizieren. Es gibt 4 Farben (rot, blau, gelb, grün) In Eprime: red, blue, yellow and green. Jeder Farbe ist einer Taste

Mehr

Assembler-Programmierung

Assembler-Programmierung Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung

Mehr

Logische Bausteine. Grundlagen der Rechnerarchitektur Logik und Arithmetik 31

Logische Bausteine. Grundlagen der Rechnerarchitektur Logik und Arithmetik 31 Logische Bausteine Sequentielle Schaltungen Shlt Grundlagen der Rechnerarchitektur Logik und Arithmetik 31 Sequentielle Schaltungen n Eingänge m Ausgänge n Eingänge m Ausgänge Zustand Ausgänge hängen nur

Mehr

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) 1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollsttukturen - 1 - 3. Anweisungen und Kontrollstrukturen

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Einführung in AVR Assembler

Einführung in AVR Assembler Einführung in AVR Assembler Dennis Fassbender Institut für Technik Autonomer Systeme (LRT8) Universität der Bundeswehr München 09042014 Was ist Assembler? Low-level-Programmiersprache Erlaubt direkten

Mehr

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else Kontrollstrukturen 1. Bedingter Ablauf: if, if-else 2. Blöcke von Code 3. Wiederholungsschleife: for mit Inkrement und Dekrement Operatoren 4. erweiterte Eigenschaften von printf() 5. Die relationalen

Mehr

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung 1. Übersicht und Einführung 1.1 Die Shell allgemein 1.2 Die korn-shell 1.3 Der Weg zum ersten Skript 1.4 Nutzen und

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Unterprogramme. Unterprogramme

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

Mehr

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by [email protected] Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

Mehr

4 Assembler für die 8051-Controller-Familie

4 Assembler für die 8051-Controller-Familie 4 Assembler für die 8051-Controller-Familie Tabelle 4.1 Wichtige Schreibweisen und Bedeutungen für die Befehle Abkürzung #data data addr Rr @Rr code addr Bedeutung Daten sind in der Instruktion codiert

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner [email protected] Research Institute for Symbolic Computation (RISC) Johannes Kepler University,

Mehr