Vorlesung IT-Systeme I
|
|
- Katrin Frei
- vor 6 Jahren
- Abrufe
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 Unterprogramme Hauptproblem heutiger Softwareentwicklung liegt
Ü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
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
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:
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
Ü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
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$
Ü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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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..
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
PC/XT/AT ASSEMBLER-BUCH
PC/XT/AT ASSEMBLER-BUCH Alle Befehle + Makro-Assembler KLAUS-DIETER THIES t
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
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
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
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
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
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
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
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
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
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
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
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
Rechnerstrukturen 1: Der Sehr Einfache Computer
Inhaltsverzeichnis 1: Der Sehr Einfache Computer 1 Komponenten.................................... 1 Arbeitsweise..................................... 1 Instruktionen....................................
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
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
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
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
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
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
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
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
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
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
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),
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
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
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
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
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
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
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
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
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;
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
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)
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.
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:
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
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
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.).
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
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
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
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,
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
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
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
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
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
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
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
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?
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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