Vorlesung IT-Systeme I

Größe: px
Ab Seite anzeigen:

Download "Vorlesung IT-Systeme I"

Transkript

1 Vorlesung IT-Systeme I H. Anlauff A. Böttcher M. Ruckert 7. Oktober 2008

2 Einleitung

3 Definition IT-System Ein IT-System besteht aus unterschiedlichen Hardwarekomponenten (Rechner, Drucker, Netzwerkkomponenten, USVs usw.) sowie der Software (Betriebssysteme und Anwendungen) und den Daten, die auf verschiedene Art und Weise einer Verarbeitung unterliegen. 3 / 70

4 Diese Vorlesung Ziele: Der Aufbau und die Funktionsweise eines IT-Systems wird von der Registerebene ausgehend bis hin zum Betriebssystem erklärt. Die Studierenden sollen mit der Schnittstelle zwischen Hard- und Software vertraut gemacht werden. Inhalt: Die Vorlesung behandelt die Gemeinsamkeiten moderner IT-Systeme: Informationsdarstellung und Codierung Prinzip des klassischen John-von-Neumann-Rechners Grundlagen der Programmierung der Maschinenebene Elementare Datenstrukturen Ablaufsteuerung Die Programmierung der Maschinenebene wird im Praktikum mit dem simulierten Modellcomputer MMIX von Donald E. Knuth geübt. 4 / 70

5 Bestandteile eines Computers ) M A H C E I? D A 1 J A H = J E 5 O I J A ) M K C I F H C H = A 5 B J M = H A * A J H E A > I I O I J A 5 B J M = H A 0 = M = H A F D O I E = E I? D A 1 J A H = J E A I? D = I? D E A 5 / 70

6 Bestandteile eines Computers 4 A? D A M A H - E C = > A M A H 5 J A K A H M A H ) K I C = > A M A H 5 F A E? D A H M A H J H B K I I, = J A B K I I 5 Funktionseinheiten: Steuerwerk, Rechenwerk, Speicherwerk, Eingabewerk und Ausgabewerk Der Aufbau eines Rechners ist unabhängig vom zu bearbeitenden Problem. Programme und Daten, Zwischenergebnisse und Endergebnisse befinden sich im gleichen Speicher 6 / 70

7 Bestandteile eines Computers (Fortsetzung) Daten und Programme werden vom Eingabewerk eingelesen und im Speicherwerk abgelegt. Der Speicher ist in gleich große Zellen aufgeteilt, die fortlaufend nummeriert sind. Aufeinander folgende Befehle befinden sich in aufeinander folgenden Speicherzellen. Im Steuerwerk gibt es einen Befehlszähler, der immer auf den nächsten auszuführenden Befehl zeigt. Der aktuelle Befehl wird aus dem Speicher ausgelesen und im Befehlsregister des Steuerwerks zwischengespeichert. Der Befehl wird dann decodiert, und die Ausführung des Befehls durch Steuersignale veranlasst. 7 / 70

8 Bestandteile eines Computers (Fortsetzung) Es gibt folgende Befehlsarten: Arithmetische und logische Befehle zur Verknüpfung von Daten. Transportbefehle zum Verschieben von Daten zwischen diesen Komponenten. Bedingte und unbedingte Sprungbefehle, Unterprogrammaufrufe. Ein-/Ausgabebefehle zur Kommunikation mit der Peripherie Sonstige Befehle wie Unterbrechen, Warten, Stop usw. Steuerwerk und Rechenwerk sind zu einer Einheit, dem Prozessor, zusammengefasst. Der Prozessor wird zusammen mit dem Hauptspeicher oft als Zentraleinheit bezeichnet, oder als Central Processing Unit, kurz CPU. 8 / 70

9 Informationsdarstellung und Kodierung

10 Zahlensysteme Römische Zahlen 1 I steht für den erhobenen Zeigefinger 5 V steht für eine Hand mit 5 Fingern 10 X steht für zwei Hände 50 L 100 C Centum heißt D 1000 M Mille heißt Vielfache von Einzelwerten durch Aneinanderreihen von Zahlzeichen ( CCC für 300). 2. Höherwertige Zahlzeichen stehen vor niederwertigeren ( XXVII für 27). 3. Es folgen max. 3 gleiche Zahlzeichen nacheinander. 4. Werte von 400, 40 und 4 werden geschrieben als CD, XL und IV. 5. Werte von 900, 90 und 9 werden geschrieben als CM, XC und IX. 10 / 70

11 Römische Zahlen Beispiele CCLXVI 266 MDCCCVII 1807 DCL MLXXX 1080 MMMDCCCIII / 70

12 Polyadische Zahlensysteme Stellenwertsysteme Basis B > 1 Ziffernwerte: 0,...,B 1, B. B ist um eins größer als die größte Ziffer Schreibweise von Zahlen: z n z n 1...z 1 z 0 z i 0,...B 1 Ziffern Der Stellenwert ist jeweils eine B-Potenz: z n B N + z n 1 B n z 1 B 1 + z 0 B 0 = n i=0 z i B i. Beispiel: = / 70

13 Beispiele für Zahlensysteme Basis Ziffern Bemerkung 1 Gibt s nicht 2 0,1 Dualsystem so rechnen Computer 3 0,1,2 Ternärsystem unüblich 8 0,1,2,3,4,5,6,7 Oktalsystem -m- Mittelding zwischen dual und hexadezimal 10 0,1,2,3,4,5,6,7,8,9 dezimalsystem so rechnen Menschen 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Hexadezimalsystem bequemer statt Dualsystem Konventionen zur Notation von hexadezimalen Zahlen: mathematisch: AFFE 16 Java/C/C++: 0xAFFE oder 0XAFFE MMIX: #AFFE 13 / 70

14 ' & % $! # " Der Zahlenkreis für n = 4 + = H H O K J A C = J E L A = D A! "! " # F I E J E L A = D A # $ % & 14 / 70

15 Byte als Maß für die Speicherkapazität Vorschlag Donald E. Knuth: Faktor Bezeichnung Abkürzung Anzahl 2 10 large kilobyte KKB large megabyte MMB large gigabyte GGB large terabyte TTB large petabyte PPB large exabyte EEB IEC-Norm: kilobinary byte, kurz KiBi byte bzw. megabinary byte, kurz MeBi byte bzw. gigabinary byte, kurz GiBi Byte Zum Vergleich: Zehnerpotenz Vorsatz Vorsatzzeichen 10 3 kilo K 10 6 mega M 10 9 giga G tera T peta P exa E 15 / 70

16 Codierung: ASCII American Standard Code for Information Interchange NUL DLE P p 1 SOH DC1! 1 A Q a q 2 STX DC2 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAK % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB 7 G W g w 8 BS CAN ( 8 H X h x 9 HT EM ) 9 I Y i y A LF SUB * : J Z j z B VT ESC + ; K [ k { C FF FS, < L \ l D CR GS - = M ] m } E SO RS. > N ˆ n 16 / 70

17 MMIX

18 Der MMIX-Prozessor 1 : 4 A C E I J A H 0 = K F J I F A E? D A H 2 8 = 256 allgemeine Register $0... $ = 32 Spezialregister (ra, rn etc.) Speicher mit 2 64 = Speicherzellen zu einem Byte # " # # F A H A 4 A? D A M A H ) 7 - H C A > E I 18 / 70

19 MMIX-Befehlsformat und Befehle Einheitliches Befehlsformat: 1 Byte 3 Byte { }} {{ }} { Opcode Operanden Umsetzung eines symbolischen Befehls durch den Assembler: ),,! * A B A D E I O > E I? D A H 5? D H A E > M A E I A 9 E L ) I I A > A H > A H I A J J E! = I? D E A A I > = H A H * A B A D A B H ),, * A B A D 4 A C E I J A H B H - H C A > E I 4 A C E I J A H B H F A H A 4 A C E I J A H B H F A H A 19 / 70

20 Erste MMIX-Befehle Addition: ADD $X,$Y,$Z Subtraktion: SUB $X,$Y,$Z Multiplikation: MUL $X,$Y,$Z Division: DIV $X,$Y,$Z. Dabei ist zu beachten, dass die Division zweier ganzer Zahlen den ganzzahligen Anteil des Quotienten (ohne Rest) im Register $X liefert ( $Y/$Z ). Programmeingabe nicht formatfrei: 1. Marken müssen erster Position einer Zeile beginnen. 2. alle Worte, die an der ersten Position einer Zeile beginnen, werden als Marke interpretiert. 3. Die Argumente müssen durch Kommata voneinander getrennt, aber ohne Leerzeichen unmittelbar hintereinander geschrieben werden. 4. Am Zeilenende darf ein Kommentar stehen (durch Whitespace getrennt). 20 / 70

21 Ein erstes Programm y = x 1 + x 2 x 3 x 1 x 2 1 LOC #100 2 Main SET $1,4 Anfangswerte setzen 3 SET $2,2 4 SET $3,40 5 MUL $4,$2,$3 arithmetische Befehle wie oben 6 ADD $5,$4,$1 7 SUB $6,$1,$2 8 DIV $7,$5,$6 Ergebnis steht im Register $7 9 TRAP 0,Halt,0 21 / 70

22 Exkurs: Direktoperanden Zweiter Operand Z steht direkt im Befehlswort. Also: 0 Z 255. Ausdrücke sind möglich: ADD $1,$2,27 oder SUB $1,$2, 0. Auch SETL benutzt einen Direktoperanden (hier mit 16 Bit). 1 LOC #100 2 Main SET $1,4 3 SET $2,2 4 MUL $4,$2,40 40 ist hier Direktoperand 5 ADD $4,$4,$1 Zähler des Bruchs 6 SUB $5,$1,$2 Nenner des Bruchs 7 DIV $4,$4,$5 Ergebnis steht im Register $4 8 TRAP 0,Halt,0 22 / 70

23 Speicherzugriff I 1 LOC hat den Wert #100 2 $254 wird global und mit #100 belegt 3 X1 OCTA 4 Ein Octa im Speicher mit 4 beschreiben 4 X2 OCTA 2 Nächstes Octa mit 2 beschreiben 5 X3 OCTA 40 Dann noch Main LDO $1,X1 Wert von x 1 aus Speicher nach $1 8 LDO $2,X2 usw. 9 LDO $3,X3 10 MUL $3,$2,$3 Rest wie oben 11 ADD $3,$3,$1 12 SUB $2,$1,$2 13 DIV $3,$3,$2 14 TRAP 0,Halt,0 23 / 70

24 " Speicherzugriff II, : ; 0 = K F J I F A E? D A H 4 A C E I J A H : ; # " H A I I A ) ; & " & 24 / 70

25 Speicherorganisation I 6 A N J I A C A J 1 J A H H K F J 8 A J H A 0 = K F J I F A E? D A H.., = J A I A C A J I A C A J! " 5 J =? I A C A J # $ 4 A I A H L E A H J B H % & 25 / 70

26 Speicherorganisation II Der Speicher kann betrachtet werden, als 1. eine Folge von 2 64 aufeinander folgenden Byte oder 2. eine Folge von 2 63 aufeinander folgenden Wyde oder 3. eine Folge von 2 62 aufeinander folgenden Tetraden oder 4. eine Folge von 2 61 aufeinander folgenden Octas 26 / 70

27 Speicherzugriff III Die Organisation des Speichers ist für die ersten acht Byte folgendermaßen: Zugriff Zellenbezeichnung Byte M[0] M[1] M[2] M[3] M[4] M[5] M[6] M[7] Wyde M 2 [0] = M 2 [1] M 2 [2] = M 2 [3] M 2 [4] = M 2 [5] M 2 [6] = M 2 [7] Tetra M 4 [0] = M 4 [1] = M 4 [2] = M 4 [3] M 4 [4] = M 4 [5] = M 4 [6] = M 4 [7] Octa M 8 [0] = M 8 [1] = M 8 [2] = M 8 [3] = M 8 [4] = M 8 [5] = M 8 [6] = M 8 [7] Allgemein gilt für alle k mit 0 k < : Zugriff Zellenbezeichnung Byte M[8k] M[8k + 1]... M[8k + 6] M[8k + 7] Wyde M 2 [8k] = M 2 [8k + 1] M 2 [8k + 6] = M 2 [8k + 7] Tetra M 4 [8k] =... = M 4 [8k + 3] M 4 [8k + 4] =... = M 4 [8k + 7] Octa M 8 [8k] = M 8 [8k + 1] =... = M 8 [8k + 6] = M 8 [8k + 7] 27 / 70

28 Lade- und Speicherbefehle Operation Symbolischer Befehl Wirkung Lade Byte LDB $X,$Y,$Z s($x) s(m 1 [A]) Lade Wyde LDW $X,$Y,$Z s($x) s(m 2 [A]) Lade Tetra LDT $X,$Y,$Z s($x) s(m 4 [A]) Lade Octa LDO $X,$Y,$Z s($x) s(m 8 [A]) Operation Symbolischer Befehl Wirkung Speichere Byte STB $X,$Y,$Z s(m 1 [A]) s($x) Speichere Wyde STW $X,$Y,$Z s(m 2 [A]) s($x) Speichere Tetra STT $X,$Y,$Z s(m 4 [A]) s($x) Speichere Octa STO $X,$Y,$Z s(m 8 [A]) s($x) 28 / 70

29 Abspeichern von Daten 1 LOC Data hat den Wert # $254 wird global und belegt 3 X1 OCTA 4 Ein Octa mit 4 beschreiben 4 X2 OCTA 2 Nächstes Octa mit 2 beschreiben 5 X3 OCTA 40 6 Y OCTA 0 Ein Octa für das Ergebnis 7 8 LOC #100 Ab hier hat Wert #100 9 Main LDO $1,X1 zunächst weiter wie oben 10 LDO $2,X2 11 LDO $3,X3 12 MUL $3,$2,$3 13 ADD $3,$3,$1 14 SUB $2,$1,$2 15 DIV $3,$3,$2 16 STO $3,Y Ergebnis an die Stelle Y speichern 17 TRAP 0,Halt,0 29 / 70

30 & & Speichern mit überlauf 5 6 *! 4 A C E I J A H ! " # $ % & ' = A B 5 6 9! 4 A C E I J A H ! " # $ % & ' = A B 30 / 70

31 Einlesen von Zeichenketten I 0 = K F J I F A E? D A H 4 A C E I J A H & * O J A I * K B B A H ) H C # # # & 31 / 70

32 Einlesen von Zeichenketten II 1 LOC Data Segment 2 3 Buffer BYTE 0 4 LOC Buffer+80 Puffer anlegen 5 Arg OCTA Buffer 6 OCTA 80 Puffergröße 7 8 LOC #100 9 Main LDA $255,Arg $255is# TRAP 0,Fgets,StdIn Einlesen 11 TRAP 0,Halt,0 32 / 70

33 Tracemodus des Simulators : e (SETL) $1=l[1] = # : e (SETL) rl=3, $2=l[2] = # : e (SETL) rl=4, $3=l[3] = # c: (MUL) rl=5, $4=l[4] = 2 * 40 = : (ADD) rl=6, $5=l[5] = = : (SUB) rl=7, $6=l[6] = 4-2 = : 1c (DIV) rl=8, $7=l[7] = 84 / 2 = 42, rr= c: (TRAP) Halt(0) 8 instructions, 0 mems, 80 oops; 0 good guesses, 0 bad (halted at location # c) 33 / 70

34 Ausgeben einer Zeichenkette 0 = K F J I F A E? D A H 4 A C E I J A H 6 A N J ) 5 J H E C # # 34 / 70

35 Ausgeben einer Zeichenkette (Fortsetzung) 1 LOC Data Segment String BYTE "Text",#A,0 auszugebende Zeichenkette 5 6 LOC #100 7 Main LDA $255,String Adresse String nach $255 8 TRAP 0,Fputs,StdOut Ausgabe der Zeichenkette 9 TRAP 0,Halt,0 35 / 70

36 Der Algorithmus von Euklid I 1. Teile m durch n; der Rest der Division sei r (das Ergebnis der Division ist hier nicht von Bedeutung, sondern lediglich der dabei auftretende Rest). 2. Falls r = 0, so ist der Algorithmus beendet; das Ergebnis (ggt) ist n. Sonst zu Schritt Setze m n, n r und gehe zurück zu Schritt / 70

37 Der Algorithmus von Euklid II 1 r IS $1 2 m IS $2 3 n IS $3 4 5 LOC #100 6 Main SET m,1228 Startwerte für m 7 SET n,96 und n. 8 Start DIV m,m,n m wird nicht mehr benötigt 9 GET r,rr Rest aus Spezialreg. rr holen 10 BZ r,fertig 11 SET m,n m n 12 SET n,r 13 JMP Start Fertig TRAP 0,Halt,0 Ergebnis steht in $3 37 / 70

38 Vergleichsbefehle Zahlenvergleiche durch Subtraktion sind gefährlich (wegen überlauf wird jede positive Zahl als kleiner als 2 63 betrachtet und kleiner als jede negative Zahl)! CMP $X,$Y,$Z bzw. CMP $X,$Y,$Z s($x) 1 falls s($y) < s($z) 0 falls s($y) = s($z) +1 falls s($y) > s($z) CMPU $X,$Y,$Z bzw. CMPU $X,$Y,$Z 1 falls u($y) < u($z) s($x) 0 falls u($y) = u($z) +1 falls u($y) > u($z) 38 / 70

39 Zwei Zahlen der Größe nach anordnen 1 x IS $0 2 y IS $1 3 h IS $2 4 5 LOC #100 O N = A E D N N O O D 6 Main SET x,12 Beliebige Startwerte für x und y 7 SET y,5 8 9 CMP h,x,y Bedingung prüfen; 10 BNP h,fertig bedingter Sprung SET h,x 13 SET x,y tauschen 14 SET y,h Fertig TRAP 0,Halt,0 Ende der Verzweigung Ja -Zweig (Bedingung erfüllt): 39 / 70

40 Ausgabe einer Zahl als Hex-Ziffer 1 z IS $0 2 test IS $1 3 LOC Data Segment 4 5 String BYTE 0,#A,0 6 7 LOC #100 8 Main SETL z,12 Zahl für hexadez. Ausgabe 9 CMP test,z,10 Test, ob größer BNN test,buchst...oder kleiner ADD z,z, 0 also kleiner 12 JMP Speichern 13 Buchst SUB z,z,10 also z ADD z,z, A 15 Speichern STB z,string 16 LDA $255,String Ausgabe 17 TRAP 0,Fputs,StdOut 18 TRAP 0,Halt,0 = A E ) 40 / 70

41 Organisation des vorstehenden Programms 5 7 * J A I J * E C K C F H B A * J A I J * K? D I J ),, 2 5 F A E? D A H * K? D I J 5 7 * ),, ) 5 F A E? D A H 5 6 * 5 J H E C * E C J A H 5 F K C T = ] M A E C 7 > E C J A H 5 F H K C T A E ] M A E C A H ) J A H = J E L A 41 / 70

42 Mehrfachauswahl (switch) = D & ' C E > C E > C E > C E > C E > A H A J M A E C D J E A = K I = K I = K I = K I = K I 42 / 70

43 Realisierung durch Sprungverteiler (Sprungteppich) J = > A, ) # # 2 K J, ) # # / - 6 ) H J = > A 2 K J 7 = D = D &, ) # # / H H = D 2 K J K J 6 4 ) 2. F K J I 5 K J, ) # # & 2 K J, ) # # ' 43 / 70

44 Ein verhängnisvoller Fehler 1 LOC #100 2 z IS $0 3 test IS $1 4 5 Main SET z,11 Wir starten mit 11 6 $*$... 7 CMP test,z,10 Zahl 10? 8 BN test,1f 9 SUB z,z,10 10 X BYTE "X",0 11 LDA $255,X 12 TRAP 0,Fputs,StdOut 13 1H 44 / 70

45 Unterprogramme Einführung Strukturierte Programme Kürzere Programme Verteilte Entwicklung Separate übersetzung Programmbibliotheken Ein Unterprogramm sollte eine einzige Aufgabe erledigen und die gut. einen sorgfältig abgewogenen Kompromiss zwischen Allgemeinheit und Einfachheit darstellen. alle nötigen Daten als Parameterwerte erhalten und nicht von globalen Variablen abhängen. Ergebnisse als Rückgabewerte dem aufrufenden Programm zuführen. Nur dann Seiteneffekte haben, wenn die spezielle Aufgabe des Unterprogramms gerade dieser eine Seiteneffekt ist. 45 / 70

46 Technische Voraussetzungen 1. Die Adresse, von der aus in das Unterprogramm verzweigt wurde (Rücksprungadresse) muss gerettet werden, sodass nach Beendigung des Unterprogramms zu dieser Stelle zurückgekehrt werden kann. 2. Eine übergabe von Eingabewerten als Parameter an das Unterprogramm muss möglich sein. 3. Ebenso muss die Rückgabe von Ergebnissen aus dem Unterprogramm an das aufrufende Programm möglich sein. 46 / 70

47 Parameterübergabe 1. Der Wert des Parameters steht in einem (vereinbarten) Register call by value. 2. Die Adresse des Parameters steht in einem (vereinbarten) Register, call by reference. 3. Ein Parameterblock enthält die Parameter (Werte und/oder Adressen). Common-Bereich Stack-Frame (Globale Variablen) 47 / 70

48 Parameterübergabe Beispiel 1 LOC Data Segment 2 3 OutBuf BYTE 0,0 Ausgabepuffer für PutChar 4 5 LOC # PutChar LDA $255,OutBuf 8 STB $1,$255,0 9 TRAP 0,Fputs,StdOut 10 GO $0,$0,0 Rücksprung aus dem Unterprogramm Newline IS Main SET $1,Newline Programm schreibt eine neue Zeile 15 GO $0,PutChar Aufruf des Unterprogramms 16 TRAP 0,Halt,0 48 / 70

49 Der Stack 2 K I D 2 F Allzweckwaffe für Parameterübergabe Lokale Variablen (Register) Sicherung der Rücksprungadresse Rekursion (siehe später) 49 / 70

50 Ablage der Rücksprungadresse auf dem Stack ? I F H K C H A I I A 50 / 70

51 Beispiel: Fakultät rekursiv 1 LOC Data Segment 2 3 n IS $1 4 f IS $2 5 test IS $3 6 7 BOS GREG # Bottom Of Stack 8 SP GREG 0 Stackpointer 9 10 LOC # Fak SUB SP,SP,8 push RETA 51 / 70

52 Beispiel: Fakultät rekursiv (Fortsetzung) 14 STO $0,SP, CMP test,n,1 Rekursionsende? 17 BP test,rek nein: neuer Aufruf 18 SET f,1 f=1 19 JMP Ende Rek SUB n,n,1 n=n-1 22 GO $0,Fak Rekursion 23 ADD n,n,1 n=n+1 24 MUL f,f,n f = f*n Ende LDO $0,SP,0 pop RETA 27 ADD SP,SP,8 28 GO $0,$0,0 Rücksprung Main SET SP,BOS Initialisierung 52 / 70

53 Beispiel: Fakultät rekursiv (2. Variante ab Zeile 12) 14 STO $0,SP,0 Rücksprungadresse 15 STO n,sp,8 n CMP test,n,1 Rekursionsende? 18 BP test,rek nein: neuer Aufruf 19 SET f,1 f=1 20 JMP Ende Rek SUB n,n,1 n=n-1 23 GO $0,Fak Rekursion 24 LDO n,sp,8 alter Wert von n 25 MUL f,f,n f = f*n Ende LDO $0,SP,0 Rücksprungadresse 28 ADD SP,SP,16 pop 29 GO $0,$0,0 Rücksprung / 70

54 Beispiel: Fakultät rekursiv III 1 LOC Data Segment 2 3 n IS $1 4 f IS $2 5 test IS $3 6 7 BOS GREG # Bottom Of Stack 8 SP GREG 0 Stackpointer 9 10 LOC # Fak SUB SP,SP,8 push 14 STO $0,SP,0 Rücksprungadresse 15 LDO n,sp,8 Parameter vom Stack 54 / 70

55 Beispiel: Fakultät rekursiv III (Fortsetzung) CMP test,n,1 Rekursionsende? 18 BP test,rek nein: neuer Aufruf 19 SET f,1 f=1 20 JMP Ende Rek SUB n,n,1 n=n SUB SP,SP,8 push 25 STO n,sp,0 Parameter auf den Stack GO $0,Fak rekursiver Aufruf LDO f,sp,0 Ergebnis vom Stack 30 ADD SP,SP,8 pop LDO n,sp,8 alter Wert von n 55 / 70

56 Labels und Prefixe Alle Symbole, die nicht mit : beginnen, werden automatisch mit dem aktuellen Prefix ergänzt Anfangs ist das Prefix der : Die Anweisung PREFIX ändert das aktuelle Prefix Welche Symbole trägt der Assembler für folgendes Programmstück in die Symboltabelle ein? 1 LOC #100 2 Main SWYM 0 3 PREFIX A 4 B SWYM 0 5 :B SWYM 0 6 PREFIX A 7 B SWYM 0 8 PREFIX :A 9 A SWYM 0 10 A: SWYM 0 56 / 70

57 Stackframes L A ) K B H K B 2 = H = A J A H > A H C = > A 2 = H = A J A H M D A I 7 J A H F H C H = I = A 8 = H E = > A 2 = H = A J A H - H C A > E I > A H C = > A - H C A > E I I A =? A 4? I F H K C 5 J =? B H = A = K B A I 2 H C H = 5 J =? B H = A = K B A I 2 H C H = 5 J =? B H = A = K B A I 2 H C H = ) K B H K B 4? I F H K C 57 / 70

58 Die PUSHJ-Instruktion Die Instruktion PUSHJ $X,YZ hat folgenden Effekt: Die Register $0 bis $X-1 werden auf den Registerstack gesichert und verschwinden vorübergehend. Die Register $X+1, $X+2,...(also die Parameter) werden umnummeriert und sind nun Register $0, $1,... An der Stelle $X entsteht so eine Art Loch auf dem Registerstack. Es wird verwendet, um die Anzahl der Register im darunter liegenden Stackframe (ohne Loch) zu speichern. Die Rücksprungadresse, das heißt die Adresse der Instruktion unmittelbar nach dem PUSHJ, kommt in das Spezialregister rj. Die beiden letzten Byte der Instruktion YZ enthalten eine 16 Bit lange relative Adresse, die das Ziel des Sprunges in das Unterprogramm angibt. 58 / 70

59 / / Wirkung von PUSHJ $4,XY 4 A C E I J A H L H D A H =? D D A H # # # " #! > = A 8 = H E = > A # # # " #! > = A 8 = H E = > A & % $ # "! " 2 = H = A J A H = A 8 = H E = > A! " " = A 8 = H E = > A 59 / 70

60 " / / Wirkung von POP 3,0 4 A C E I J A H L H D A H =? D D A H # # # " #! > = A 8 = H E = > A # # # " #! > = A 8 = H E = > A!! " # " " = A 8 = H E = > A $ # "! " " = A 8 = H E = > A 60 / 70

61 Wirkung von POP 3,0 0 = K F J I F A E? D A H 4 A C E I J A H H E C H = H C E = A 4 A C E I J A H = A 4 A C E I J A H H 5 5 J =? I A C A J L A H > H C A A 4 A C E I J A H 61 / 70

62 Ablaufsteuerung, = J A H A I I > K I * A B A D I D A H * A B A D I H A C E I J A H A H A I I J A E A, E A H 5 J A K A H C E H A I I C E 5 J A K A H A E J K C A K = A - E D A E J A 1. Holen eines Befehlsworts aus dem Speicher in das Befehlsregister des Steuerwerks. 2. Decodieren des Befehls, d. h. fest stellen, woher die Operanden kommen 3. Ausführen der Operation (auch Berechnung der Adresse des nächsten Befehls; bei Sprungbefehlen muss dies nicht notwendigerweise die unmittelbar folgende Speicheradresse sein. 62 / 70

63 Adressierungsarten I Konstantenadressierung * A B A D I H A C E I J A H ),, : ; 4 A C E I J A H 0 = K F J I F A E? D A H F A H A 4 A? D A M A H 63 / 70

64 Adressierungsarten II Registerdirekte Adressierung * A B A D I H A C E I J A H ),, : ; 4 A C E I J A H 0 = K F J I F A E? D A H F A H A 4 A? D A M A H 64 / 70

65 Adressierungsarten III Registerindirekte Adressierung * A B A D I H A C E I J A H, : ; 4 A C E I J A H 0 = K F J I F A E? D A H F A H A 4 A? D A M A H! 65 / 70

66 #! " Adressierungsarten IV Indizierte Adressierung * A B A D I H A C E I J A H, : ; 4 A C E I J A H 0 = K F J I F A E? D A H F A H A 4 A? D A M A H 66 / 70

67 übung Welche Adressierungsart benutzt das folgende Programm in Zeile 12 und 16? 1 LOC Data Segment 2 Data OCTA 17,4,47,11,8,15,42 3 end 4 5 px IS $1 6 x IS $2 7 max IS $3 8 test IS $ LOC # Main LDA px,data 12 LDO max,px 13 1H ADDU px,px,8 14 CMP test,px,end 15 BZ test,done 67 / 70

68 Adressierungsarten V Absolute Adressierung * A B A D I H A C E I J A H 4 A C E I J A H 0 = K F J I F A E? D A H F A H A 4 A? D A M A H 68 / 70

69 Adressierungsarten VI Speicherindirekte Adressierung * A B A D I H A C E I J A H 4 A C E I J A H 0 = K F J I F A E? D A H F A H A! 4 A? D A M A H 69 / 70

70 Übung: in welcher Reihenfolge sind die Worte geordnet? 1 Definition der Record-Struktur eines Listenelements 2 string IS 0 3 next IS LOC Data Segment 6 7 No BYTE " no ",0 8 Theory BYTE " theory ",0 9 Without BYTE " without ",0 10 Practice BYTE " practice ", H OCTA Without 13 OCTA 3F 14 First OCTA No 15 OCTA 2F 16 2H OCTA Theory 17 OCTA 1B 70 / 70

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 MMIX Crashkurs Teil 3 Unterprogramme und Parameterübergabe Freiling/Wienzek/Mink Vorlesung Rechnerstrukturen RWTH Aachen Sommersemester 2005 Unterprogramme Hauptproblem heutiger Softwareentwicklung liegt

Mehr

Übersicht. Quelle: Kapitel 3, 4 und 5 aus Anlauff, Böttcher, Ruckert: Das MMIX-Buch. Springer, 2002

Ü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

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur 3.Unterprogramme in MMIX Matthias Dräger E-Mail: www: mdraeger@mi.fu-berlin.de www.matthias-draeger.info/lehre/sose2010ti2/ tinyurl.com/sose2010ti2 Zuletzt bearbeitet:

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

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung WS 06/07 Thema 4: Zahlensysteme / Codierung 1 Übung zur Winfo I - Themenplan - Informationsverarbeitung in Unternehmen Tabellenkalkulation Anwendungen PC-Komponenten Zahlensysteme / Codierung Boole sche

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

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

Ü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

Mehr

TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen

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)

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände 1 2 Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände 3 Die Zuordnung der Himmelsrichtungen zu den dreistelligen Binärzahlen, also Norden 000 Süden 001

Mehr

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

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

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

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

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren.

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren. Ein Programm liegt der CPU in binärer Form vor und wird durch den Assembler in einer primitiven

Mehr

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs

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

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen 4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen Ein Rechner besteht aus den folgenden Bestandteilen: Rechenwerk Rechenoperationen wie z.b. Addition, Multiplikation logische Verknüpfungen

Mehr

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung!

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung! Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Nächste Woche keine Vorlesung! Es

Mehr

Darstellung von Informationen

Darstellung von Informationen Darstellung von Informationen Bit, Byte, Speicherzelle und rbeitsspeicher Boolesche Operationen, Gatter, Schaltkreis Bit Speicher (Flipflop) Binär- Hexadezimal und Dezimalzahlensystem, Umrechnungen Zweierkomplement

Mehr

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Sprachen und Automaten. Tino Hempel

Sprachen und Automaten. Tino Hempel Sprachen und Automaten 4 Tino Hempel Computer und Sprache Wie werden Informationen zu Daten kodiert? Welche Datenträger gibt es? Wie erfolgt die Verarbeitung der Daten? o o o Informationen werden im Computer

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Was sind primitive Datentypen? Bits und Bytes. Primitive Datentypen. Sommersemester 2014

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Was sind primitive Datentypen? Bits und Bytes. Primitive Datentypen. Sommersemester 2014 Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char

Mehr

PC/XT/AT ASSEMBLER-BUCH

PC/XT/AT ASSEMBLER-BUCH PC/XT/AT ASSEMBLER-BUCH Alle Befehle + Makro-Assembler KLAUS-DIETER THIES t

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Zahlen und Zeichen (1)

Zahlen und Zeichen (1) Zahlen und Zeichen () Fragen: Wie werden Zahlen repräsentiert und konvertiert? Wie werden negative Zahlen und Brüche repräsentiert? Wie werden die Grundrechenarten ausgeführt? Was ist, wenn das Ergebnis

Mehr

Escape-Sequenzen. Dr. Norbert Spangler

Escape-Sequenzen. Dr. Norbert Spangler Escape-Sequenzen Einzelzeichen Bedeutung ASCII- ASCII-Code \a alert BEL 07 \b backspace BS 08 \t horizontal tab HT 09 \n line feed LF 0A \v vertical tab VT 0B \f form feed FF 0C \r carriage return CR 0D

Mehr

Skript. EDV Grundlagen

Skript. EDV Grundlagen PAUL-EHRLICH-SCHULE Frankfurt-Höchst Berufs-, Fach-, Fachoberschule Informatik FOS FS Skript EDV Grundlagen Datum: Name: Klasse: 1. Daten die Welt der Bits und Bytes Daten begegnen uns im Alltag in vielfältiger

Mehr

Grundlagen der Informationstechnik

Grundlagen der Informationstechnik Grundlagen der Informationstechnik 2 Um die Funktionsweise der Computernetze zu verstehen, ist ein grundlegendes Verständnis der Informationstechnik (IT) nötig. Bei diesen Grundlagen handelt es sich um

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

Grundlagen der Informatik I. Übung

Grundlagen der Informatik I. Übung Grundlagen der Informatik I Übung Studiengang Wirtschaftsingenieurwesen Wintersemester 1/13 Autor: Prof. Dr.-Ing. habil. Hans-Joachim Böhme HTW Dresden, Fachbereich Informatik/Mathematik Friedrich-List-Platz

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Tutorübungen starten heute Tutorübung Tutorübung Tutorübung

Mehr

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

1 Rechnerstrukturen 1: Der Sehr Einfache Computer David Neugebauer, Informationsverarbeitung - Universität zu Köln, Seminar BIT I Inhaltsverzeichnis 1 Rechnerstrukturen 1: Der Sehr Einfache Computer 1 1.1 Komponenten................................. 1

Mehr

Grundlagen der Informationstechnik

Grundlagen der Informationstechnik Grundlagen der Informationstechnik 2 Um die Funktionsweise der Computernetze zu verstehen, ist ein grundlegendes Verständnis der Informationstechnik (IT) nötig. Bei diesen Grundlagen handelt es sich um

Mehr

Eine Reihe häufig benötigter Datentypen ist in C vordefiniert

Eine Reihe häufig benötigter Datentypen ist in C vordefiniert 2 Standardtypen in C D.3 Datentypen Eine Reihe häuig benötigter Datentypen ist in C vordeiniert char int loat double void Zeichen (im ASCII-Code dargestellt, 8 Bit) ganze Zahl (16 oder 32 Bit) Gleitkommazahl

Mehr

Rechnerstrukturen 1: Der Sehr Einfache Computer

Rechnerstrukturen 1: Der Sehr Einfache Computer Inhaltsverzeichnis 1: Der Sehr Einfache Computer 1 Komponenten.................................... 1 Arbeitsweise..................................... 1 Instruktionen....................................

Mehr

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

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

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

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 7. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

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

Grundlagen der Informationstechnik

Grundlagen der Informationstechnik Grundlagen der Informationstechnik 2 Um die Funktionsweise von Betriebssystemen zu verstehen, ist ein grundlegendes Verständnis der Informationstechnik (IT) nötig. Bei diesen Grundlagen handelt es sich

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 11 Kapitel 11 Zeichenverarbeitung Seite 1 von 11 Zeichenverarbeitung - Jedem Zeichen ist ein Zahlencode zugeordnet. - Dadurch wird ermöglicht, zwischen verschiedenen Systemen Texte auszutauschen. - Es werden

Mehr

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 (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Organisatorisches Nächste Woche keine Vorlesung! Es

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 17 Vom Programm zur Maschine Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

Grundbegriffe der Informatik

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

Mehr

Protokollgrundlagen (Schicht 2)

Protokollgrundlagen (Schicht 2) Protokollgrundlagen (Schicht ) Einfaches Kommunikationsprotokoll für eine Punkt-zu-Punkt- Verbindung: Phase Station Station Eröffnung ENQ Fehlerroutine Invalid or no NAK ACK reply Nachrichtenübermittlung

Mehr

Beschaffung vom Informationssystemen Datenorganisation Kommunikation

Beschaffung vom Informationssystemen Datenorganisation Kommunikation Grundlegende Definitionen Technik Hardware Bits, Bytes und Zahlensysteme Von-Neumann Architektur Datenein- und ausgabe Software System- und systemnahe Software Anwendungssysteme Beschaffung vom Informationssystemen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

Mehr

Was ist Wirtschaftsinformatik?

Was ist Wirtschaftsinformatik? 1. Grundlagen, 1.1 Grundverständnis der Wirtschaftsinformatik Was ist Wirtschaftsinformatik? BWL Betriebswirtschaftliche Problemstellung: Wie kann IT im Unternehmen angewendet werden, z.b. im Bereich Beschaffung

Mehr

ERA-Zentralübung Maschinenprogrammierung

ERA-Zentralübung Maschinenprogrammierung ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 25.11.2016 Inhalt Aufgabe 4.1 Aufgabe 4.2 Zeichensätze Aufgabe 4.1 Leuchtbandanzeige/Bargraph Bit Nr: 15 14 13 12 11 10 9 8 7 6 5 4 3 2

Mehr

3AA. Prof. Dr. Wolfgang P. Kowalk. Universität Oldenburg WS 2005/2006

3AA. Prof. Dr. Wolfgang P. Kowalk. Universität Oldenburg WS 2005/2006 3AA Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 Version vom 24.10.2005 Übersicht Einführung in maschinennahe Programmierung Verständnis für grundlegende Vorgänge im Computer Jedes Programm

Mehr

DieÜbersetzung funktionaler Programmiersprachen

DieÜbersetzung funktionaler Programmiersprachen DieÜbersetzung funktionaler Programmiersprachen 107 11 Die Sprache PuF Wir betrachten hier nur die Mini-Sprache PuF( Pure Functions ). Insbesondere verzichten wir(vorerst) auf: Seiteneffekte; Datenstrukturen;

Mehr

Betriebssysteme Teil 3: Laufzeitsystem für Programme

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

Mehr

2. Aufgabenblatt mit Lösungen

2. Aufgabenblatt mit Lösungen Problem 1: (6*1 = 6) TI II 2. Aufgabenblatt mit Lösungen Geben Sie für jede der folgenden Zahlen deren Ziffernschreibweisen im Dezimal-, Dual-, Oktal- und Hexadezimal-System an. a) (2748) 10 b) (1010011011)

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

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, 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:

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung

Fakultät Angewandte Informatik Lehrprofessur für Informatik Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 31.10.2011 Prof. Dr. Robert Lorenz Übungen zur Vorlesung Informatik I, Blatt 2 - Musterlösung Aufgabe 5 * Wenden Sie den in der

Mehr

UNTERPROGRAMME IN MMIX(AL)

UNTERPROGRAMME IN MMIX(AL) UNTERPROGRAMME IN MMIX(AL) Oft möchten wir eine Funktionalität mehrfach benutzen. Nun könnten wir den Code an jede Stelle kopieren, was aber eine Reihe von negativen Konsequenzen zur Folge hätte. Copy

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

Mehr

Assembler - Adressierungsarten

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

Mehr

TU ILMENAU Fak. IA - FG Neuroinformatik & Kognitive Robotik. Vorkurs Informatik September Kurs: I 1. Dr. Klaus Debes.

TU ILMENAU Fak. IA - FG Neuroinformatik & Kognitive Robotik. Vorkurs Informatik September Kurs: I 1. Dr. Klaus Debes. Vorkurs Informatik September 2016 Kurs: I 1 Dr. Klaus Debes klaus.debes@tu-ilmenau.de Tel. 03677-69 27 70, 69 28 58 http://www.tu-ilmenau.de/neurob Teaching Wintersemester Vorkurs Informatik Übersicht

Mehr

Zahlensysteme. Wie Computer Zahlen darstellen und mit ihnen rechnen Peter Ziesche

Zahlensysteme. Wie Computer Zahlen darstellen und mit ihnen rechnen Peter Ziesche Zahlensysteme Wie Computer Zahlen darstellen und mit ihnen rechnen 16.10.2004 Peter Ziesche ahlen Natürliche Zahlen 1, 2, 3,... Ganze Zahlen..., -3, -2, -1, 0, 1, 2, 3,... Rationale Zahlen -2, -1/2, -1/3,

Mehr

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit

Informationsmenge. Maßeinheit: 1 Bit. 1 Byte. Umrechnungen: Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit Informationsmenge Maßeinheit: 1 Bit Informationsmenge zur Beantwortung einer Binärfrage kleinstmögliche Informationseinheit 1 Byte Zusammenfassung von 8 Bit, kleinste Speichereinheit im Computer, liefert

Mehr

LOC Data_Segment

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

Mehr

Geräteentwurf mit Mikroprozessoren 1

Geräteentwurf mit Mikroprozessoren 1 Geräteentwurf mit Mikroprozessoren 1 Vorlesung am Institut für Elektronik der TU Graz Dipl.-Ing. Dr. Gerhard Stöckler SS 2003 Vorausgesetzte Kenntnisse: Grundlagen der Digitaltechnik Binäre Informationsdarstellung

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

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung Thema 1 -- Fortsetzung Computersystem, Informationsdarstellung Codierung! Bei der Codierung erfolgt eine eindeutige Zuordnung der Zeichen eines Zeichenvorrates (Urmenge, Quellalphabet) zu denjenigen eines

Mehr

4.2 Universalrechner: Schaltung unabhängig vom Problem 185

4.2 Universalrechner: Schaltung unabhängig vom Problem 185 4.2 Universalrechner: Schaltung unabhängig vom Problem 85 a) Geben Sie binär die Befehlsworte an, mit denen Sie die Eingänge a, b und c in die Register R, R2 und R übernehmen. K D M4 M M2 M Kommentar XXXXXXXXXXX

Mehr

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...? Kapitel 1 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Einführung Hallo, Computer...? Aufbau eines Computers Was ist eine Programmiersprache? Der Programmierprozess Warum Java?

Mehr

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

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

Mehr

Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen

Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen Teil IV Semantik imperativer Sprachen 201 1. Einführung Alternativen zur Beschreibung der Semantik: natürliche Sprache (bisher, unpräzise) operational Reduktionssemantik (vgl. Haskell-Semantik in Kap.

Mehr

Datentypen printf und scanf. Programmieren in C Dr. Michael Zwick

Datentypen printf und scanf. Programmieren in C Dr. Michael Zwick Datentypen printf und scanf Programmieren in C Dr. Michael Zwick April June 2015 Monday Tuesday Wednesday Thursday Friday 17 20 Apr 21 22 23 24 Arbeitsblatt 1-1 Ausgabe Arbeitsblatt 1 Beginn Tutorium Arbeitsblatt

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Darstellung von Information Inhalt Einfache Datentypen

Mehr

Motivation und Überblick

Motivation und Überblick Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ

Mehr

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

Mehr

Wie werden die Barcode Prüfziffern berechnet?

Wie werden die Barcode Prüfziffern berechnet? KB Consult; K. Bögli Bergwiesenstrasse 3 CH88 Weisslingen Telefon: [] 05 / 38 6 96 Fax: [] 05 / 38 5 0 EMail: kurt.boegli@kbconsult.ch Wie werden die Barcode Prüfziffern berechnet? Nachfolgend die Beschreibung

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

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

Mehr

Barcode- Referenzhandbuch

Barcode- Referenzhandbuch Barcode- Referenzhandbuch Version 0 GER/AUS/SWI-GER 1 Einführung 1 Übersicht 1 1 Dieses Referenzhandbuch bietet Informationen zum Drucken von Barcodes über Steuerbefehle, die direkt an ein Brother-Druckergerät

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

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

Mehr

MMIX - Crashkurs. TI-II Rechnerarchitektur

MMIX - Crashkurs. TI-II Rechnerarchitektur MMIX - Crashkurs TI-II Rechnerarchitektur MMIX Einführung Aussprache: em-micks MMIX ist ein virtueller Prozessor, mit eigener Assemblersprache Um MMIX-Programme assemblieren und ausführen zu können, benötigt

Mehr

1. Rechnersysteme (Einführung) VL1 2. Komponenten. 3. Daten und Informationen VL2 4. Von Neumann Maschine. 5. Computer und Software VL3

1. Rechnersysteme (Einführung) VL1 2. Komponenten. 3. Daten und Informationen VL2 4. Von Neumann Maschine. 5. Computer und Software VL3 Vorlesungsinhalte WI-109 Teil 3: Rechnersysteme VL2 1. Rechnersysteme (Einführung) VL1 2. Komponenten 3. Daten und Informationen VL2 4. Von Neumann Maschine 5. Computer und Software VL3 6. Einführung in

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

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

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

Rechnerstrukturen Sommersemester 2003

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ş guenes@informatik.rwth-aachen.de Ralf Wienzek wienzek@informatik.rwth-aachen.de

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 3 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

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 9: Speicher Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/19 Überblick Speicher Bit und Byte Speicher als Tabellen und Abbildungen

Mehr