Grundlagen der Informatik

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Informatik"

Transkript

1 Grundlagen der Informatik (Wintersemester 2009/200) Jörg Roth

2 Jörg Roth 2 0 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 knapp & & & > Aufbau von Rechnern (Register, Arithmetische Einheit, Speicher etc.) addi $sp,$sp,-6# Platz für 4 Register freimachen sw $s0,0($sp)# Register $s0, $s, $s2, $ra -> Stapel sw $s,4($sp) sw $s2,8($sp)

3 Darstellung von Zahlen: Jörg Roth 3 unser liebgewonnenes Dezimalsystem eignet sich nicht für Computer wir machen uns daher Gedanken, wie man Zahlen mit nur zwei Ziffern darstellen kann There are only 0 types of people in the world: Those who understand binary, and those who don't! Grundidee: Verwendung der Basis 2 statt 0 für die Ziffern z.b. 23(dezimal) = = = 0(binär) Probleme, die wir in der Vorlesung behandeln: Umrechnung zwischen den Darstellungen Ausführung von Berechnungen im Binärsystem Darstellung von negativen und reellen Zahlen

4 Jörg Roth 4 Wir gehen in dieser Vorlesung darüber hinaus der Frage nach Wie rechnet ein Rechner? Als Softwareentwickler könnten wir in einem Programm z.b. folgende Anweisung schreiben: a = a+2*b; Wie wird diese Anweisung letztlich ausgeführt?

5 Jörg Roth 5 Höhere Programmiersprache Assembler und Maschinenprogramm int a=, b=2; a = a+2*b; lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Register und Mikroprogramm Gatter & & & > Transistoren

6 Jörg Roth 6 Höhere Programmiersprache Assembler und Maschinenprogramm int a=, b=2; a = a+2*b; lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Register und Mikroprogramm Gatter & & & > Transistoren

7 Jörg Roth 7 Was bieten uns die verschiedenen Ebenen als Ausdrucksmittel? Mit welchen "Objekten" haben wir auf den verschiedenen Ebenen zu tun? Höhere Programmiersprache: int a=, b=2; Es stehen höhere Programmiersprachenkonzepte a = a+2*b; zu Verfügung: Namenschemata, Objekte, Vererbung,... Komfortable Datentypen: String, Array, Hashtable,... Komfortable Kontrollstrukturen: while, if, switch,... Weitere Funktionen: Mathematische Bibliotheken (sin, cos etc.), Dateizugriffe, Netzwerkzugriffe, Zugriffe auf Peripherie etc.

8 Jörg Roth 8 Assembler und Maschinenprogramm: Assembler-Programme liegen als Quell-Datei vor und werden durch ein Übersetzungsprogramm (dem so genannten Assembler) in Maschinencode umgewandelt. Nur Maschinencode ist direkt ausführbar. lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Bei der Verwendung höherer Programmiersprachen entfällt der Schritt über den Assembler häufig und aus dem höheren Programm wird durch den Compiler direkt Maschinencode erzeugt. Auch möglich: Übersetzen in einen Zwischencode, der von einer virtual Maschine (in Maschinencode vorliegend) interpretiert wird

9 Jörg Roth 9 Eigenschaften von Assembler und Maschinenprogramm: In der Assembler-Sprache stehen keine komfortablen Programmiersprachenkonzepte zur Verfügung, bestenfalls symbolische Variablennamen symbolische Sprungadressen Makros Nur elementare Datentypen verfügbar: Byte (8 Bit), 2-Byte-Integer, 4-Byte-Integer oft keine Fließkomma-Datentypen, oft keine Strings Addition, Subtraktion, oft keine Multiplikation, Division Logische Bit-Operationen Wenige Kontrollstrukturen: meist nur Sprung, bedingter Sprung Sprung in ein Unterprogramm

10 Register und Mikroprogramm: Jörg Roth 0 Es gibt nur noch Register und elementare Operationen darauf Typische Operationen: Addieren, Subtrahieren, Inkrementieren, Dekrementieren Das Mikroprogramm steuert den Datenfluss (Welches Register wird mit welchem Operationselement verbunden?) Gatter: Es gibt nur noch Bits und Operationen auf Bits Typische Operation: Bit AND Bit 2 Bit 3 & & & >

11 Ebene der Transistoren: Jörg Roth Zur Darstellung von Daten werden Spannungen und Ströme verwendet Elemente dieser Ebene sind im Wesentlichen Transistoren, Dioden und Widerstände Definierte Signalpegel werden auf digitale Daten abgebildet (z.b. >3 Volt bedeutet Bit=)

12 Jörg Roth 2 Höhere Programmiersprache Assembler und Maschinenprogramm int a=, b=2; a = a+2*b; lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Register und Mikroprogramm GDI Gatter & & & > Transistoren

13 Daten und Datentypen: Jörg Roth 3 Wir müssen auch der Frage nachgehen, wie Daten dargestellt werden. Z.B. Frage: Was bedeutet die folgende Bit-Folge?

14 Jörg Roth 4 Ausweichende Antwort: Es kommt darauf an Die Bedeutung von Bit-Folgen hängt vom jeweiligen Datentyp ab Man unterscheidet Elementare Datentypen: solche, die nicht weiter zerlegt werden können Zusammengesetzte Datentypen: aus elementaren Datentypen aufgebaut Elementare Datentypen: Ordinale Datentypen (alles, was man "aufzählen" kann): Zeichen: a, b, c,... Ganze Zahlen mit oder ohne Vorzeichen: byte, short, int, long, word,... Boolesche Daten: erlauben nur zwei Werte TRUE, FALSE Aufzählungstyp: z.b. (ROT, GRUEN, GELB) (wird intern auf (0,, 2) abgebildet)

15 Jörg Roth 5 Zeiger (Pointer): Verweise auf Speicherstellen Bei linear adressierbaren Speicher: eine ganze Zahl Sind je nach Programmiersprache explizit vorhanden (und manipulierbar) oder versteckt Für Maschinensprache unerlässlich Gebrochene Zahlen: Fließkomma-Zahlen: float, double Manchmal (insb. in Datenbanken): Festkomma-Datentypen (z.b.: um Euro-Beträge auszudrücken)

16 Zusammengesetzte Datentypen: Jörg Roth 6 Feld (array): feste Anzahl gleicher Daten, z.b. 0 ganze Zahlen Zeichenkette (string): z.b. "GDI" Strings werden je nach Programmiersprache oder Prozessortyp auch als elementarer Datentyp behandelt Strings können auch als Feld von Zeichen angesehen werden Record (auch struct genannt): Datentyp, der aus u.u. verschiedenen Typen zusammengesetzt wird Beispiel: Person = String: vorname; String: name; int: alter; Durch die objektorientierte Programmierung sind Records durch Objekte darstellbar

17 Jörg Roth 7 Weitere zusammengesetzte Datentypen: Menge: Jedes Element kann nur einmal aufgenommen werden Hashtable: Man kann Paare von Daten ablegen, nach dem ersten Datum suchen (Schlüssel) und bekommt das zweite Datum (Wert) zurückgeliefert Vektor: Feld, das dynamisch wachsen kann In der Regel werden diese Datentypen intern durch andere zusammengesetzte Datentypen realisiert. Beispiele: Mengen in Pascal werden durch Bit-Felder realisiert Vektoren in Java werden durch Felder fester Größe realisiert, die bei Bedarf auf größere Felder umkopiert werden

18 Die "Zahlen"-Datentypen Jörg Roth 8 ganze Zahlen mit oder ohne Vorzeichen, Fließkomma-Zahlen, sowie die Operationen darauf sind Gegenstand des ersten Kapitels. Zeichen-Datentyp: Kenntnis des Zeichensatzes ist unerlässlich zur Interpretation eines Zeichens Zeichensätze legen die Zuordnung interne Darstellung Zeichen fest

19 Beispiele: ASCII (7 Bit) EBCDIC (vorwiegend IBM Mainframes) Unicode Jörg Roth 9 Der ASCII-Zeichensatz (American Standard Code for Information Interchange): 7-Bit entspricht 28 möglichen Zeichen (nummeriert 0-27) Die Zeichen 0-3 und 27 sind Steuerzeichen - also nicht als Einzelzeichen z.b. auf Bildschirm oder Drucker darstellbar. Die Zeichen sind druckbare Zeichen.

20 Die ASCII-Steuerzeichen: Viele Zeichen stammen noch aus der Zeit der Textterminals Bekannte Eingabe-Zeichen: Return, Escape, Del, Backspace Jörg Roth 20 Viele Steuerzeichen werden heute nicht mehr benutzt Nr. Bedeutung Nr. Bedeutung Nr. Bedeutung 0 Null character Vertical Tab 22 Synchronous Idle Start of Header 2 Form feed 23 End of Trans. Block 2 Start of Text 3 Carriage return 24 Cancel 3 End of Text 4 Shift Out 25 End of Medium 4 End of Transmission 5 Shift In 26 Substitute 5 Enquiry 6 Data Link Escape 27 Escape 6 Acknowledgment 7 Device Control (oft XON) 28 File Separator 7 Bell 8 Device Control 2 29 Group Separator 8 Backspace 9 Device Control 3 (oft XOFF) 30 Record Separator 9 Horizontal Tab 20 Device Control 4 3 Unit Separator 0 Line feed 2 Negative Acknowledgement 27 Delete Ein Textterminal aus den 80er-Jahren

21 Jörg Roth 2 Druckbare Zeichen im ASCII-Zeichensatz: Nr. Zeichen Nr. Zeichen Nr. Zeichen Nr. Zeichen Nr. Zeichen Nr. Zeichen 32 Blank P 96 ` 2 p 33! A 8 Q 97 a 3 q 34 " B 82 R 98 b 4 r 35 # C 83 S 99 c 5 s 36 $ D 84 T 00 d 6 t 37 % E 85 U 0 e 7 u 38 & F 86 V 02 f 8 v 39 ' G 87 W 03 g 9 w 40 ( H 88 X 04 h 20 x 4 ) I 89 Y 05 i 2 y 42 * 58 : 74 J 90 Z 06 j 22 z ; 75 K 9 [ 07 k 23 { 44, 60 < 76 L 92 \ 08 l = 77 M 93 ] 09 m 25 } > 78 N 94 ^ 0 n 26 ~ 47 / 63? 79 O 95 _ o

22 Jörg Roth 22 Nachteile des ASCII-Zeichensatzes: Die 7-Bit-Kodierung stammt aus einer Zeit, als "jedes Bit zählte" heutzutage sind 95 druckbare Zeichen zu wenig Ein Problem: Darstellung der nationalen Sonderzeichen (z.b. ä, ö, ü, ß ) Zwischenlösung: der Bereich wurde für nationale Zeichen verwendet. Die Zuordnung war aber bei verschiedenen Systemen teilweise uneinheitlich Die weiteren 28 Zeichen reichen auch nicht für alle möglichen nationalen Sonderzeichen Moderne Lösung: Unicode-Zeichen

23 Unicode: Jörg Roth 23 Ursprünglich 6-Bit, damit waren mögliche Zeichen darstellbar; die Nummern der Zeichen werden Code Points genannt. Mittlerweile sind.4.2 Code Points vorgesehen, von denen allerdings nur ca mit Zeichen belegt sind, u.a. lateinische Zeichen griechische Zeichen chinesische Zeichen japanische Zeichen Damit häufige Zeichen weiterhin mit 8 Bit dargestellt werden können, verwendet man UTF-8: Zeichen 0-27: ASCII Zeichen : -3 weitere Bytes

24 Arithmetik Jörg Roth 24 Arithmetik Wir behandeln die Darstellung von ganzen und reellen Zahlen in b-adischen Zahlensystemen und geben Algorithmen für die Umrechnung von Darstellungen an. Mit ganzen Zahlen (mit einer festen Anzahl von Stellen) wird im Zweier- und Einerkomplement gerechnet und es werden Kriterien für Bereichsüberschreitungen entwickelt. Zur Darstellung von Gleitkommazahlen wird das IEEE-Format benutzt.

25 Arithmetik Jörg Roth 25 Allgemeines zur Darstellung von Zahlen: Man unterscheidet zwei Arten der Zahlendarstellung: Additionssysteme, Stellenwertsysteme Additionssysteme: Der Wert einer Zahl wird durch die Summe der einzelnen Ziffernwerte gebildet. Bekanntestes Beispiel: Römische Zahlen: I =, V = 5, X = 0, L = 50, C = 00, D = 500, M = 000 MMCV = = 205 Die Reihenfolge ist vorgeschrieben (hier von groß nach klein) zur Vermeidung zu langer Ziffernkombinationen gibt es einige Ausnahmen zu berücksichtigen (z.b. klein vor groß heißt "abziehen")

26 Arithmetik Jörg Roth 26 Ägyptische Zahlen: =, = 0, = 00, = 000, = 0 000, = , = mio Hebräische Zahlen: Verschiedene Ziffern für, 2,..9, 0, 20,...90, 00, 200, Das unäre "Bierdeckelsystem": kennt nur eine Ziffer: I = (man könnte = 5 auch noch als Ziffer interpretieren) Additionssysteme haben einige Nachteile: Häufig keine Darstellung der Null, keine gebrochenen Zahlen, keine negativen Zahlen Mathematische Operationen sind schwierig MMCV x XXII =?

27 Arithmetik Jörg Roth 27 Stellenwertsysteme: Schon die Maya verwendeten ein Stellenwertsystem, allerdings mit 20 verschiedenen Ziffern Auch Stellenwertsysteme kennen eine Reihe von Ziffern (z.b. 0,,... 9), der Wert einer Ziffer hängt aber von der Position innerhalb der Zahl ab 5238 = Mit Stellenwertsysteme können mathematische Operationen viel einfacher berechnet werden als mit Additionssystemen Z.B. schriftliches Addieren, Subtrahieren, Multiplizieren, Dividieren Die Vorteile Stellenwertsysteme führen dazu, dass diese auch zur Darstellung von Zahlen in Rechnern verwendet werden

28 Arithmetik Jörg Roth 28 Wieviele Ziffern verwendet man? Die Mayas zählten mit Händen und Füßen......in Europa nur mit den Händen......Computer rechnen nur mit zwei Fingern. Das Zweiersystem eignet sich für Computer besonders, da sich die zwei möglichen Ziffern sehr einfach durch zwei Signalpegel darstellen lassen.

29 Arithmetik Jörg Roth 3 Beispiele für b-adische Entwicklungen: Darstellungen der Dezimalzahl z =34 b =5: z = (a 2 =, a =, a 0 =4) b = 0: z = (a = 3, a 0 =4) b =2: z = (a 5 =, a 4 = 0, a 3 = 0, a 2 = 0, a =, a 0 =0)

30 Arithmetik Jörg Roth 33 Ausführlicherer Beweis zur Existenz und Eindeutigkeit der Division mit Rest: Existenz: Existenz heißt: es gibt zu jedem Zahlenpaar z, a ein Zahlenpaar q, r mit z = q a + r Wir zeigen die Existenz über die vollständige Induktion nach z: Induktionsanfang: 0 z<a: z = 0 a+z ist eine Darstellung Induktionsschritt: z a und die Aussage sei für Zahlen z z a bewiesen, d.h. für z a existiert schon eine Darstellung q a+r. Dann existiert für z die Darstellung z = a+q a+r=(q+) a+r.

31 Arithmetik Jörg Roth 34 Eindeutigkeit: Eindeutigkeit heißt: zu jedem Zahlenpaar z, a gibt es nur ein Zahlenpaar q, r mit z = q a + r Seien z = q a+r und z = q a+r. Dann gilt 0 = (q q ) a+(r r ) oder (q q ) a =(r r ), d.h. (r r ) muss durch a teilbar sein. Für die Differenz (r r ) zweier Zahlen r i mit 0 r i <a gilt: 0 r r <a. Die einzige durch a teilbare natürliche Zahl kleiner a ist 0: also ist (r r ) = 0 damit r = r und schließlich q = q.

32 Arithmetik Jörg Roth 36 Zurück zur b-adischen Entwicklung (Satz.): Zu zeigen ist immer noch: eine Zahl z ist auf genau eine Weise als b-adische Entwicklung darstellbar. Existenz der Darstellung: z = q b + r 0 (Darstellung existiert, Überlegungen siehe oben) q = q 2 b + r q 2 = q 3 b + r 2... q n- =0 b + r n- Damit ist z = (((r n- )...) b + r 2 ) b + r ) b + r 0 = r n- b n r b + r 0 b 0 = eine b-adische Entwicklung n i = 0 r i b i

33 Arithmetik Jörg Roth 37 Beispiele für die Existenz der b-adischen Darstellung. b = 0, z = = = =0 0+3 also: a 0 = r 0 = 5, a = r = 4, a 2 = r 2 =3 b = 2, z =0 0 = =2 2+ 2= 2+0 =0 2+ also: a 0 = r 0 = 0, a = r =, a 2 = r 2 = 0, a 3 = r 3 =

34 Arithmetik Jörg Roth 40 Alternativer Beweis zur Eindeutigkeit der b-adischen Darstellung n i = 0 n i = 0 m m i = 0 Seien z= a i b i und z= a' i b i zwei Darstellungen von z. Es gilt a i b i =(...((a n- )b+a n-2 )b+...a )b+a 0 i = 0 und a' i b i =(...((a m- )b+a m-2 )b+...a )b+a 0 Aus Satz.2 wissen wir, dass eine Zahl z = qb+a auf genau eine Weise durch q und a darstellbar ist, damit a 0 = a 0 sowie (...((a n- )b+a n-2 )b+...a = (...((a n- )b+a n-2 )b+...a durch wiederholte Anwendung erhält man a i = a i

35 Arithmetik Jörg Roth 42 Schreibweisen zu den vorgenannten Beispielen: (34) 0 = (4) 5 (34) 0 =(0000) 2 (0) 0 =(00) 2 Weitere Beispiele: (AFFE) 6 = (45054) 0 (F) 6 = (5) 0 =() 2

36 Arithmetik Jörg Roth 44 Beispiele: Der maximale Wert einer 0-adischen Zahl der Länge 3 ist 0 3 = 999 Der maximale Wert einer 2-adischen Zahl der Länge 8 ist 2 8 = 255 =() 2

37 Arithmetik Jörg Roth 50 Beispiele: b = 2 c i d i ü i- e i i=n i=0 c i d i ü i e i ü i Bemerkung. ü i, i = -,...,N-. Insbesondere e N Vereinfachungen für b = 2: e i = wenn die Anzahl der en in c i, d i, ü i- ungerade ist ü i = wenn die Anzahl der en in c i, d i, ü i- größer oder gleich 2 ist

38 Arithmetik Jörg Roth 5 b = 3 c i d i ü i- e i i=n i=0 c i d i ü i e i ü i

39 Arithmetik Jörg Roth 53 Beispiel. b = 2 c d c d 3 b 3 00 c d c i 0 0 z 0 0 ü i v i ü i Besonderheiten im Binärsystem: Aus ü i- = 0 folgt ü i = 0. Da ü - =0 gilt ü i = 0 für alle i. Da z {0, } vereinfacht sich c z zu c z = c für z = 0 für z = 0

40 Arithmetik Jörg Roth 54 b = 3 Bemerkung. Der Übertrag ü i kann auch größer als sein: Z.B. bei b = 0: ü i {0,,... 8}. (Ohne Beweis: allgemein gilt: ü i {0,... b-2} ) c d c d b c d 0 c i 0 0 * * z * * ü i ü i v i ü 2

41 Arithmetik Jörg Roth 56 Exkurs: Relation, Äquivalenzrelation Sei M eine Menge R M M heißt (zweistellige) Relation auf M Eine Relation R auf M heißt Äquivalenzrelation, wenn für xyz M gilt xx R (Reflexivität) xy R y x R (Symmetrie) xy R und yz R x z R (Transitivität) Schreibweise x y für xy R x := x := y M x y heißt Äquivalenzklasse von x M ~ := x x M heißt Menge der Äquivalenzklassen von ~

42 Arithmetik Jörg Roth 58 Beispiele zu Äquivalenzklassen in Restklassenringen: In /3 gilt 7~ denn 7- ist durch 3 teilbar Schreibweisen: 7 mod 3 = mod 3 aber auch 7 = mod 3 oft auch 7 mod 3 In /3 gibt es 3 verschiedene Äquivalenzklassen [0] = {..., -9, -6, -3, 0, 3, 6, 9,...} [] = {..., -8, -5, -2,, 4, 7, 0,...} [2] = {..., -7, -4, -, 2, 5, 8,,...} In /3 gilt [-9] = [-6] = [-3] = [0] = [3] = [6] = [9]... [-8] = [-5] = [-2] = [] = [4] = [7] = [0]... [-7] = [-4] = [-] = [2] = [5] = [8] = []...

43 Arithmetik Jörg Roth 60 Beispiel mod 0 =? ( mod 0) ( mod 0) mod 0 = 9 9 mod 0 = 8 mod 0 = Bemerkung: mod 0= mod 0 = lässt sich mit den meisten Taschenrechnern nicht ausrechnen

44 Arithmetik Jörg Roth 64 Beispiele zur Addition mod b N b = 0, N =

45 Arithmetik Jörg Roth 66 Beispiele zur Komplementbildung: In /3 gilt K([0]) = [0] K([]) = [2] K([2]) = [] Ausrechnen von [6] [2] in /0 : [6] [2] = [6]+K([2]) = [6]+[8] = [4] Anders ausgedrückt: 6 2 mod 0 = 6+(0 2) mod 0 = 6+8 mod 0 = 4 mod 0

46 Arithmetik Jörg Roth 67 b- und (b-)-komplement-bildung Wir wollen für die Fälle n = b N und n = b N die Komplementbildung vereinfachen. N i = 0 Sei a = a i b i Wir definieren a i =(b ) a i N i = 0 N Sei weiter a = a. Dann ist a das Komplement von a bezüglich b N i b i i = 0 denn a+a = b b i =b N Damit ist (a+) das Komplement von a bezüglich b N denn a + (a+) =b N a heißt das (b )-Komplement von a (a+) heißt das b-komplement von a

47 Arithmetik Jörg Roth 68 Bemerkung. Das (b )-Komplement der 0 ist (b...b ). Daher sind (0...0) und (b...b ) zwei Darstellungen der 0 Das b-komplement der 0 ist (0...0), d.h. hier gibt es nur eine Darstellung der 0 a i a i Beispiele. b = 0, N =3 a = 345 a = ist das 9er-Komplement von 345 (654+) = 655 ist das 0er-Komplement von

48 Arithmetik Jörg Roth 69 b = 2, N =4 a = 000 a = 0 a i 0 0 a i 0 ist das er-komplement von 000 (0+) = 0 ist das 2er-Komplement von 000

49 Arithmetik Jörg Roth 70 Rechenbeispiele. b = 0, N = 3, wir rechnen mod b N : Verwendung des 9er-Komplements Addition mod b N, d.h. mit Einerrücklauf =? Das 9er-Komplement von 23 ist = 53 (Einerrücklauf)

50 Arithmetik Jörg Roth 7 b = 0, N = 3, wir rechnen mod b N : Verwendung des 0er-Komplements Addition mod b N, d.h. wir ignorieren e N =? Das 0er-Komplement von 23 ist = 53 (ignorieren von e N )

51 Arithmetik Jörg Roth 72 b = 2, N = 4, wir rechnen mod b N : Verwendung des 2er-Komplements Addition mod b N, d.h. wir ignorieren e N =? Das 2er-Komplement von 000 ist = 00 (ignorieren von e N )

52 Arithmetik Jörg Roth 75 Beispiel (Darstellung mit Vorzeichen und Betrag). b = 2, Betrag mit 2 Stellen Bitfolge Wert

53 Arithmetik Jörg Roth 76 Bemerkung. Bei der Addition und Subtraktion ergeben sich für jede Kombination der Vorzeichen eigene Berechnungswege. Berechnung von e = a + b, für z bezeichne z.vz Vorzeichen, z.b Betrag + a.vz=0 a.vz= b.vz=0 e.vz=0 e.b=a.b+b.b e.vz= a.b b.b 0 a.b b.b e.b= a.b b.b b.vz= e.vz= e.vz= b.b a.b e.b=a.b+b.b 0 b.b a.b e.b= a.b b.b

54 Arithmetik Jörg Roth 77 Die Multiplikation ist jedoch sehr einfach f = a b f.vz= 0 für a.vz = b.vz sonst f.b=a.b b.b Die Berechnung des Vorzeichens lässt sich später auf die logische Operation Exklusiv-Oder zurückführen

55 Arithmetik Jörg Roth Exzessdarstellung Wir stellen positive ganze Zahlen b-adisch dar. Um den Wert einer Darstellung zu erhalten, ziehen wir einen konstanten Wert (Exzess) ab. Also: Mit z: der Wert einer Zahl (a N-...a 0 ): die b-adische Darstellung einer positiven Zahl -Exzess: der kleineste (negative) Wert Beispiele: b=2, N=3, Exzess=2: N a=0 hat den Wert z=5-2=3 a=00 hat den Wert z=-2=- z = a i b i Exzess i = 0

56 Arithmetik Jörg Roth 8 Bemerkung. Bei der Addition von zwei Zahlen hat man Exzess zwei mal addiert. Berechnung von e = a + b, ex bezeichne den Exzess In der Exzess-Darstellung berechnet man (a + ex) + (b + ex) = (a + b) +2ex = (e + ex) + ex Um die Darstellung (e + ex) zu erhalten, müssen wir ex abziehen. Spezialfall ex=2 N- In der Binärdarstellung und bei der Wahl von ex =2 N- entspricht der Exzess dem höchstwertigsten Bit. Das Abziehen von ex mod 2 N entspricht dem Umkehren des höchstwertigsten Bits 0. Beispiele (N=3) = 00 = ex = 0 (= ) ex = 0 (= )

57 Arithmetik Jörg Roth 82 Multiplikation von Exzess-Zahlen In der Regel ist es aufwändig, in der Exzess-Darstellung zu multiplizieren Spezialfall ex=2 N- = (a+ex). (b+ex) mod 2 N = ex 2 + ex(a+b) + a. b mod 2 N = 0 + ex(a+b) + a. b mod 2 N ex + a b wenn a+ b = mod 2 a b sonst D.h. man multipliziert (a+ex). (b+ex) und addiert ex, falls a+b=0 mod 2. Beispiel N=8 damit ex=28, a. b=-5. 5 =? Wir rechnen = 0 00 (b-adisch) da a+b=0 mod 2 addieren wir ex (d.h. wir invertieren das vorderste Bit) damit lautetet das Ergebnis mit dem Wert -75

58 Arithmetik Jörg Roth 86 Beispiele für Zweierkomplement-Darstellungen. Binärzahlen mit 3 Stellen: Bitfolge Wert

59 Arithmetik Jörg Roth 87 Binärzahlen mit 8 Stellen: Bitfolge Wert stellt 73 dar 0000 stellt -55 dar, denn K(0000) = = 55

60 Arithmetik Jörg Roth Einerkomplement-Darstellung

61 Arithmetik Jörg Roth 9 Bemerkung: in der Einerkomplementdarstellung ist bei der Multiplikation eine Korrektur erforderlich. Grund: die Darstellung für z<0 lautet 2 N +z = z mod 2 N

62 Arithmetik Jörg Roth 92 Beispiele für Einerkomplement-Darstellungen. Binärzahlen mit 3 Stellen: Bitfolge Wert

63 Arithmetik Jörg Roth 93 Binärzahlen mit 8 Stellen: Bitfolge Wert stellt 73 dar stellt -54 dar, denn K(0000) = 0000 = 54

64 Arithmetik Jörg Roth 98 Vorüberlegung zur Erkennung von Bereichsüberschreitungen Erkennen der Bereichsüberschreitung Vorzeichen von c, d c N- c N-2... c 0 d N- d N-2... d 0 ü N- ü N-2... ü - e N e N- e N-2... e 0 Ergebnis Vorzeichen des Ergebnisses Es gilt e N = ü N- Weiter gilt c N- +d N- +ü N-2 =(e N e N- ) b = e N 2+e N- = ü N- 2+e N-

65 Arithmetik Jörg Roth 99 Beweis. Wir unterscheiden zwei Fälle. Fall: c s und d s besitzen verschiedene Vorzeichen (c N- d N- ): Das Resultat ist dem Betrag nach kleiner oder gleich dem größten der beiden Summanden und deshalb immer darstellbar. Es gilt nämlich c s +d s =max( c s, d s ) min( c s, d s ), d.h. 0 c s +d s max( c s, d s ) Bereichsüberschreitungen treten also nicht auf. ü N-2 =0 ü N-2 = ü N- c N-2... c 0 0 d N-2... d 0 ü N-2... ü - e N e N- e N-2... e Wegen c N- d N- = gilt ü N-2 = ü N- = also ü N-2 =ü N-

66 Arithmetik Jörg Roth Fall: c s und d s besitzen gleiche Vorzeichen (c N- d N- ): Es gilt (e N e N- ) b =(ü N- e N- ) b = c N- +d N- +ü N-2 =2c N- +ü N-2 =(c N- ü N-2 ) b somit ü N- = c N- und e N- = ü N-2 Es findet keine Bereichsüberschreitung statt, wenn das Resultat dasselbe Vorzeichen besitzt wie die Summanden, d.h. e N- = c N- c N- =0 c N- = c N- d N- c N-2... c 0 d N-2... d 0 ü N- ü N-2... ü - e N e N- e N-2... e Aus ü N- = c N-, e N- = ü N-2 folgt e N- = c N- ü N- = ü N-2

67 Arithmetik Jörg Roth 04 Bemerkung. Es gilt i = m z i b i = z i b i i = m Damit ergibt sich für z i = 0 für i>0 gerade die b-adische Darstellung natürlicher Zahlen.

68 Arithmetik Jörg Roth 05 Bemerkung. Es gibt Eigenschaften, die unabhängig von einer gewählten Darstellung sind z.b. eine Zahl ist eine Primzahl, eine Zahl hat eine unendliche, nicht-periodische b-adische Entwicklung, (z.b. 2 hat in jeder Darstellung unendlich viele Ziffern) eine Zahl ist gerade. Andere Eigenschaften sind von der Darstellung abhängig, z.b. eine Zahl hat eine periodische oder abbrechende b-adische Entwicklung, (z.b. /3 = ( ) 0 = (0.) 3 ) die Quersumme einer Zahl ist gerade. Zwischen den Begriffen Zahl und Darstellung einer Zahl ist deshalb sorgfältig zu unterscheiden.

69 Arithmetik Jörg Roth 2 Beispiele zur Umrechnung im Quellsystem: z = (0.2) 0 = (0.Z Z 2 Z 3...) 2 Z = [0.2. 2] = [0.4] = 0 {} Z 2 = [0.4. 2] = [0.8] = 0 {} Z 3 = [0.8. 2] = [.6] = {} Z 4 = [0.6. 2] = [.2] = {} Z 5 = [0.2. 2] = [0.4] = 0 z = (0.85) 0 = (0.Z Z 2 Z 3...) 3 Z = [ ] = [2.55] = 2 {} Z 2 = [ ] = [.65] = {} Z 3 = [ ] = [.95] = {} Z 4 = [ ] = [2.85] = 2 {} Z 5 = [ ] = [2.55] = 2 z = (0.00) 2 z = (0.22) 3

70 Arithmetik Jörg Roth 4 Bemerkung. Alle Brüche im 0er-System sind im Binärsystem nicht durch eine 0 i abbrechende Entwicklung darstellbar. Z.B. (0.) 0 = (0.000) 2 Muss man aber sehr exakt mit Zehntel und Hundertstel etc. rechnen (z.b. im Bankwesen) gibt es folgende Alternativen: Alternative : Man spendiert so viele Stellen hinter dem Komma, dass bei allen denkbaren Rechenoperationen (mit allen denkbaren Zahlen) nach dem Runden der exakte erwartete Betrag resultiert. Alternative 2: Man stellt Werte im 0er-System dar und stellt Algorithmen zur Verfügung, um ziffernweise im 0er-System zu rechnen. Beispiel BCD-Darstellung (Binär-codierte Dezimalzahl): Man stellt jede Dezimalziffer einzeln binär dar:

71 Arithmetik Jörg Roth 5 0: 0000 : : 00 Man stellt die 4-Bit-Kombination zu den Ziffern hintereinander dar, d.h. man erhält pro Byte 2 Ziffern: z.b. 845 wird in BCD dargestellt als Zum Rechnen benötigen wir dann ziffernweise arbeitende Verfahren. Alternative 3: Man bestimmt die kleinste darzustellende Einheit und verschiebt das Komma solange nach rechts, bis man wieder nur noch mit ganzen Zahlen rechnet. Beispielsweise könnte man statt in Euro auch in Cent rechnen und erhält dadurch ganze Zahlen. Die Darstellung ist damit exakt.

72 Arithmetik Jörg Roth 2 Bemerkung zur Verschiebung des Kommas. Ist B=b k und wird der Exponent um kleiner, verschiebt sich das Komma um k nach rechts. Beispiele: b = 2, B = 8, d.h. B = b = =.0 8 b = 0, B = 00, d.h. B = b = = Die Darstellungen in der Mitte sind jeweils normalisiert.

73 Arithmetik Jörg Roth 24 Bemerkung zur Wahl von B. Wahl eines größeren B: Bei einer festen Stellenzahl für Exponenten wird die Spanne zwischen der größten und kleinsten positiven Zahl größer (analog auch für negative Zahlen). Wahl eines kleineren B: Bei einer festen Stellenzahl für Mantissen werden die verfügbaren Stellen im Mittel besser ausgenutzt, d.h. weniger mit 0en gefüllt. Die Genauigkeit der Darstellung ist daher im Mittel größer.

74 Arithmetik Jörg Roth 29 IEEE-Format zur Darstellung von Gleitkommazahlen. IEEE Standard In der Norm IEEE 754 werden Grunddatenformate für binäre Gleitkommazahlen dargestellt und genaue Verfahren für die Durchführung mathematischer Operationen festgelegt. Implementiert von Intel-, Motorola-, SPARC- und MIPS-Prozessoren Implementiert durch das Java-Laufzeitsystem Der Standard beinhaltet "single precision"- (32 Bit) und "double precision"-format (64 Bit). Allgemeines Format: z =. m m 2 m n 2 e Normalisieren heißt, m 2. Die "." wird nicht gespeichert Kleine Zahlen werden nicht-normalisiert gespeichert

75 Arithmetik Jörg Roth 3 Codierungen: Darstellungen Bemerkung Codierung Normalisiert Nichtnormalisiert Für kleine Zahlen, die nicht mehr normalisiert werden können Null Es gibt zwei Darstellungen der Null (+0, -0) Infinite/-Infinite Z.B. Ergebnis von /0 oder -/0; begrenztes Weiterrechnen möglich Not a Number Z.B. Ergebnis von (NaN) e>0...0, e<... e=0...0 e=0...0, m=0...0 VZ beliebig e=..., m=0...0 VZ=0: + VZ=: - e=..., m VZ beliebig

76 Arithmetik Jörg Roth 34 Erklärung der darstellbaren Zahlen am Beispiel von single precision: kleinste (pos) darstellbare Zahl größte darstellbare Zahl Genauigkeit (kleinster Wert) Genauigkeit (größter Wert) nicht-normalisiert m = = 2-23 e = =-26 z = =2-49 m = 0... e = =-26 z =2-26 aufeinanderfolgende Zahlen: m = 0.**...***0 m 2 = 0.**...*** m 2 -m =2-23 e = e 2 = = -26 z 2 -z = =2-49 normalisiert m = = e = = -26 z = =2-26 m =... 2 e =..0 = = 27 z =2 28 m 2 -m =2-23 e = e 2 = = -26 z 2 -z = =2-49 m 2 -m =2-23 e = e 2 =..0 = 27 z 2 -z = =2 04

77 Arithmetik Jörg Roth 35 Zusammenfassung zu Kapitel Was haben wir erreicht? Ganze Zahlen: Darstellen in verschiedenen Zahlensystemen Umrechnen zwischen verschiedenen Zahlensystemen Umgehen mit Vorzeichen (Exzess, Vorzeichen/Betrag, b-komplement, b -Komplement) Realisierung der Grundrechenarten Wir können (im Spezialfall 2er-Komplement) einen Überlauf erkennen Reelle Zahlen: Darstellen in verschiedenen Zahlensystemen Umrechnen zwischen verschiedenen Zahlensystemen Festkomma vs. Gleitkomma, Betrachtung der Genauigkeiten Normalisierung einer Gleitkomma-Zahl

78 2 Schaltungen Motiviation Höhere Programmiersprache Assembler und Maschinenprogramm int a=, b=2; a = a+2*b; lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Register und Mikroprogramm Gatter & & & > Kap 2 Transistoren

79 Schaltungen Jörg Roth 37 Ebene der Gatter: Es gibt nur Bits und Operationen auf Bits & Typische Operation: Die AND-Verknüpfung: wenn Eingang = UND Eingang 2 = dann Ausgang= (und nur dann) Wichtige Themen der Gatter-Ebene: Gatter bilden formal so genannte boolsche Algebren ab. Boolsche Funktionen sollten mit möglichst wenigen Gattern dargestellt werden Platzersparnis auf Chips Geringere Energieaufnahme und Wärmeentwicklung Geringer Schaltzeiten => das Karnaugh-Veitch-Verfahren ermöglicht die Vereinfachung von Gatter-Schaltungen

80 Schaltungen Jörg Roth 38 Durch Zusammenschaltung von Gattern können komplexere Funktionen realisiert werden, z.b.: Addition von Binärzahlen Multiplexer (Auswahl eines Eingangs anhand einer Eingangsnummer und Schalten auf den Ausgang) Decoder (Aktivieren eines Ausgangs anhand einer Ausgangsnummer) Durch Rückkopplung der Ausgänge auf die Eingänge können Zustände gespeichert werden => Flipflops

81 Schaltungen Jörg Roth 4 Beispiele:. Sei X eine Menge, P(X):={Y Y X}) die Potenzmenge von X. (P,, ) ist eine boolsche Algebra. a X X a X a b X a b X a b Das 0-Element: {} Das -Element: X

82 Schaltungen Jörg Roth Aussagenlogik Sei A die Menge der Aussagen. In A enthalten sind z.b.: a : "Nürnberg ist eine Großstadt" a 2 : "Wenn es regnet gibt es immer einen Regenbogen" a 3 : "5 ist eine Primzahl" Wir ordnen jeder Aussage einen Wahrheitswert wahr oder falsch zu: w(a )=wahr w(a 2 )=falsch w(a 3 )=wahr

83 Schaltungen Jörg Roth 44 Seien a i, a j zwei Aussagen. Dann können wir neue Aussagen konstruieren: und-verknüpfung: a i und a j z.b. "Nürnberg ist eine Großstadt und wenn es regnet gibt es immer einen Regenbogen" oder-verknüpfung: a i oder a j z.b. "Nürnberg ist eine Großstadt oder wenn es regnet gibt es immer einen Regenbogen" Es gilt: w(a i und a j )=w(a i ) w(a j ) w(a i oder a j )=w(a i ) w(a j ) Die ist die immer wahre Aussage "wahr" Die 0 ist die immer falsche Aussage "falsch" (A, oder, und) ist eine boolsche Algebra.

84 Schaltungen Jörg Roth 50 Decodierer, Multiplexer, Demultiplexer c 2 c c 0 c 2 c c 0 i 0 d zu Multiplexer 3 zu 8 Decoder... i 7 d 7 c 2 c c 0 zu 8 Demultiplexer d 0... d 7

85 Schaltungen Jörg Roth 54 Darstellung als Wahrheitstabelle. Beispiel: f 2 (Inhibition) Es gilt: f 2 (x, y) = x für y = 0 0 sonst x y f 2 (x, y) Bemerkung: bei y= wird die Durchschaltung von x verhindert, daher der Name "Inhibition"

86 Schaltungen Jörg Roth 6 Beispiele für Minterme und Maxterme: Sei n =3. i (i) 2 Minterm m i Maxterm M i x x 2 x 3 x x 2 x 3 00 x x 2 x 3 x x 2 x x x 2 x 3 x x 2 x x x 2 x 3 x x 2 x x x 2 x 3 x x 2 x x x 2 x 3 x x 2 x x x 2 x 3 x x 2 x 3 7 x x 2 x 3 x x 2 x 3

87 B, (x, x 2, x 3 ) x x 2 x Schaltungen Jörg Roth 63 Beispiel. Sei n =3 m 3 : B m 3 (0,, 0) = 0 (j=2) m 3 (0,, ) = (j=3) m 3 (, 0, 0) = 0 (j=4)... M 3 : B 3 B, (x, x 2, x 3 ) x x 2 x 3... M 3 (0,, 0) = (j=2) M 3 (0,, ) = 0 (j=3) M 3 (, 0, 0) = (j=4)...

88 Schaltungen Jörg Roth 65 Beispiel. Sei n =3 Sei f(x, x 2, x 3 )= falls x = x 2 = x 3 0 sonst Dann ist I f = {0, 7}

89 Schaltungen Jörg Roth 67 Beispiel. Sei n =3 Sei f(x, x 2, x 3 )= falls x = x 2 = x 3 0 sonst Dann ist f(x, x 2, x 3 )=x x 2 x 3 +x x 2 x 3 die disjunktive Normalform und f(x, x 2, x 3 )=(x x 2 x 3 ) (x x 2 x 3 ) (x x 2 x 3 ) (x x 2 x 3 ) (x x 2 x 3 ) (x x 2 x 3 ) die konjunktive Normalform.

90 Schaltungen Jörg Roth 68 Beweis. Existenz der DNF. Sei j B n. f(j) = j I f i I f m i j = m i j = m i j +m j (j) = 0 + = i i I f \ j I f Eindeutigkeit der DNF. Sei m i, J {0,..., 2 n } eine weitere DNF-Darstellung von f. i J Wegen k I f f(k)= folgt J = I f. i J m i (k)= k J

91 Schaltungen Jörg Roth 70 Gatter (Symbole nach IEC ) Inverter (NOT-Gatter) E 0 A 0 AND-Gatter & E E A NAND-Gatter & E E A 0 OR-Gatter > E E A 0 NOR-Gatter > E E A XOR-Gatter = E E A 0 0 XNOR-Gatter = E E A 0 0 AND, NAND, OR und NOR können auch mehr als zwei Eingänge besitzen.

92 Schaltungen Jörg Roth 7 Realisierung logischer Funktionen als Schaltkreise Beispiel TTL (Transistor-Transistor-Logik)

93 Schaltungen Jörg Roth 72 Regeln für die Darstellung von Schaltnetzen mit Gattern Inverter können explizit als Gatter oder nur als offenen Punkt dargestellt werden. Im letzten Fall wird der offene Punkt an das Kästchen eines anderen Gatters gezeichnet. & = & Durchgezogene Linien verbinden Ausgänge mit Eingängen. Ein Ausgang kann mir mehreren Eingängen verbunden werden. Mehrere Ausgänge dürfen nicht zusammengeschaltet werden. Verzweigt eine Linie, kann diese zur besseren Lesbarkeit mit einem geschlossenen Punkt gekennzeichnet werden (kein Inverter). Für verbundene Kreuzungen ist der Punkt zwingend erforderlich. = = verbunden verbunden nicht verbunden verbunden

94 Schaltungen Jörg Roth 74 Realisierung von Gattern mit NAND- und NOR-Gattern Gatter Darstellung mit NAND Darstellung mit NOR & > x xx x+x & xy & & (xy)(xy) (xy) & & > > (x+x)+(y+y) > > x+y & & (xx)(yy) & > > (x+y)+(x+y) 0 > > (x+y)+0

95 Schaltungen Jörg Roth 76 Schaltung des Halbaddierers: x y & > s & & u

96 Schaltungen Jörg Roth 78 Schaltung des Volladdierers: x y u & & > & & > s & > & & & > > u &

97 Schaltungen Jörg Roth 80 Schaltung des 2 zu 4 Decodierers: i i 0 & a 0 & a & a 2 & a 3

98 Schaltungen Jörg Roth 82 Schaltung des 4 zu Multiplexers: c c 0 i 0 & i i 2 & & > a i 3 &

99 Schaltungen Jörg Roth Vereinfachung von Schaltungen Beispiele:. f(x, x 2, x 3 )=x x 2 x 3 +x x 2 x 3 =(x +x )x 2 x 3 = x 2 x 3 2. f(x, x 2, x 3, x 4 )=x x 2 x 3 x 4 +x x 2 x 3 x 4 +x x 2 x 3 x 4 +x x 2 x 3 x 4 +x x 2 x 3 x 4 = x x 2 x 4 +x x 2 x 4 +x x 3 x 4 = x 2 x 4 +x x 3 x 4 Beobachtung: Wir können zusammenfassen, wenn sich zwei Terme an genau einer Stelle unterscheiden: (x i +x i )(...) = (...) sich vier Terme an genau zwei Stellen unterscheiden und alle Kombinationen der zwei Variablen vorkommen: (x i x j +x i x j +x i x j +x i x j )(...) = (...) sich acht Terme an genau drei Stellen unterscheiden...

100 Schaltungen Jörg Roth 86 Eine andere Darstellung von KV-Diagrammen x x 3 x x 3 x x x 2 x 2 x 2 x 4 Wir markieren solche Felder mit "", bei denen die Funktion eine liefert. Z.B. für f(x, x 2, x 3 )= x x 3 + x x 3 + x x 2 x 3 + x x 2 x 3 x x 3 x 2

101 Schaltungen Jörg Roth 87 Für dieses Beispiel kann man nun folgende Vereinfachung durchführen: x x 3 x 2 Damit f(x, x 2, x 3 )= x + x 2

102 Schaltungen Jörg Roth 88 Weiteres Beispiel. Sei f(x, x 2, x 3 )= wenn x = x 2 = x 3 oder x x 3 oder x x 3 0 sonst x x 3 x 2 Damit f(x, x 2, x 3 )= x + x 2 + x 3

103 Schaltungen Jörg Roth 89 Beispiele möglicher Minimierungen: 8fach-Felder: x x 3 x x 3 x x 3 x 2 x 2 x 2 x 4 x 4 x 4 4fach-Felder: x x 3 x x x 4 x x 3 x x 3 x x 3 x 2 x 2 x 2 x 2 x 4 x 4 x 4 x 4 x x 2 x x 3 x x 4 x x 2

104 Schaltungen Jörg Roth 90 2fach-Felder: x x x x 3 x 3 x 3 x 2 x 2 x 2 x 4 x 4 x 4 x x 3 x 4 x 2 x 3 x 4 x x 2 x 4 Wichtig: immer möglichst große Blöcke bilden, auch wenn sich mehrfache Überlappungen ergeben: x x x 3 x 3 x 2 x 2 x 4 x 4

105 Schaltungen Jörg Roth 9 Beispiele:. f(x, x 2, x 3, x 4 )= x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 x x 3 x 4 x 2 f(x, x 2, x 3, x 4 )= x x 2 + x 2 x 3 x 4 + x 2 x 3 x 4

106 Schaltungen Jörg Roth f(x, x 2, x 3, x 4 )= x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 + x x 2 x 3 x 4 x x 3 x 4 x 2 f(x, x 2, x 3, x 4 )= x x 2 + x x 2

107 Schaltungen Jörg Roth 93 Beispiel mit fünf boolschen Variablen. x 5 x x 3 x x 2 x 4 f(x, x 2, x 3, x 4, x 5 )= x 2 x 3 + x x 4 + x x 3

108 Schaltungen Jörg Roth 94 Weiteres Beispiel. x 5 x x 3 x x 2 x 4 f(x, x 2, x 3, x 4, x 5 )= x 3 x 5 + x x 4 + x x 2 + x 2 x 5 + x 3 x 4 x 5 + x x 3 x 5 Bemerkung. KV-Diagramme mit mehr als fünf Variablen sind für Menschen nur noch schwer lesbar

109 Schaltungen Jörg Roth 96 Beispiel. Die Don t Care-Terme seien durch "*" dargestellt x x 3 x 4 x 2 * * * * * f (x, x 2, x 3, x 4 )= x 2 + x x 3

110 Schaltungen Jörg Roth 97 Weiteres Beispiel. x x 3 * * x 4 x 2 * * * f (x, x 2, x 3, x 4 )= x x 2 + x 2 x 3 x 4

111 Schaltungen Jörg Roth Flipflops Flipflops sind einfache rückgekoppelte Schaltungen, die jeweils ein einzelnes Bit speichern können. Es gibt verschiedene Typen, die sich im "Komfort" der Ansteuerung unterscheiden. Einfache Flipflops: e > z e & z e 2 > z 2 =z & e 2 z 2 =z

112 Schaltungen Jörg Roth 206 Funktionsweise eines einfachen Flipflop (am Beispiel der NAND-Variante): Man kann ein Bit speichern, indem man Verlauf 0 an dem jeweiligen Eingang anlegt und den anderen Eingang auf setzt Nachteile: das Speichern wird durch einen Signalverlauf 0 an einem Eingang durchgeführt, währenddessen muss der zweite Eingang auf bleiben. Das ist ein kompliziertes Verfahren. Durch die Eingangsbelegung (0, 0) wird das Speichern verhindert und der Ausgang auf (, ) gelegt (illegaler Zustand) Wunsch: Signalwechsel an einem Takteingang soll zum Speichern führen Es sollen keine illegalen Zustände möglich sein

113 Schaltungen Jörg Roth 207 Das D-Flipflop (Daten). Schaltung: e & y & z $ & y 2 & z 2 Symbol: e D Q z Q z 2 $

114 Schaltungen Jörg Roth 208 Funktionsweise des D-Flipflops: Man kann durch einen Signalverlauf 0 0 am Takteingang das Bit am Dateneingang speichern D Q Q (nach Takt) Bemerkung Bit speichern -Bit speichern

115 Schaltungen Jörg Roth 209 Vorteile des D-Flipflops: Da nur ein Dateneingang existiert, kann man keine illegale Kombination der Dateneingänge anlegen. Das Einspeichern wird durch einen Takt und nicht durch den Dateneingang durchgeführt. Nachteile des D-Flipflops: Solange der Takt auf gesetzt wird, wird der Eingangswert sofort am Ausgang sichtbar. Es muss bei jedem Takt etwas gespeichert werden. Soll der alte Wert erhalten werden, muss er wieder eingespeist werden. Dies ist problematisch, wenn man mehrere Speicherzellen über einen zentralen Takt ansteuert.

116 Schaltungen Jörg Roth 20 Das (R,S)-Flipflop (reset, set). Schaltung: R & y > z $ S & y 2 > z 2 Symbol: S S Q z R R Q z 2 $

117 Schaltungen Jörg Roth 2 Funktionsweise des (R,S)-Flipflops: Man kann durch einen Signalverlauf 0 0 am Takteingang ein 0-Bit oder -Bit speichern Die Wahl wird durch zwei separate Dateneingänge durchgeführt: Set: Speichern von -Bit, Reset: Speichern von 0-Bit R S Q Q (nach Takt) Bemerkung Zustand halten Bit speichern Bit speichern 0 zufällig zufällig nicht erlaubt

118 Schaltungen Jörg Roth 22 Vorteile des (R,S)-Flipflops: Takteingang wie beim D-Flip-Flop Explizites Setzen/Zurücksetzen möglich, zusätzlich durch (Set, Reset)=(0, 0) kann man den alten Zustand erhalten beim D-Flip- Flop wurde bei jedem Takt gespeichert Nachteile des (R,S)-Flipflops: Wie beim D-Flip-Flop: bei Takt= werden Änderungen an Eingängen sofort an den Ausgängen sichtbar Durch (Set, Reset)=(, ) erzeugt man einen nicht vorhersehbaren Folgezustand

119 Schaltungen Jörg Roth 23 Das Master-Slave-Flipflop. Master-Slave-Flipflops bestehen aus zwei Teilflipflops: Der Master speichert den Wert am Eingang zwischen. Der Zwischengespeicherte Wert wird nicht sofort am Ausgang sichtbar. Der Slave übernimmt den Wert des Masters und gibt ihn an den Ausgang. Damit sind Eingang und Ausgang entkoppelt. Master-Slave-Flipflops können aus je zwei D- oder zwei (R,S)-Flipflops aufgebaut werden. D Master Q D Slave Q Q Q Takt T

120 Schaltungen Jörg Roth 24 Funktionsweise des Master-Slave-Flipflop (aus D-Flipflops): Durch einen Signalverlauf 0 am Takteingang wird der Wert am Dateneingang in einen Zwischenspeicher (Master) übernommen. Durch einen Signalverlauf 0 am Takteingang wird der zwischengespeicherte Wert in den Ausgangsspeicher (Slave) übernommen. Vorteil des Master-Slave-Flipflop: Der Ausgang ist immer stabil. Zu keiner Zeit werden Änderungen des Eingangs sofort am Ausgang sichtbar. Nachteile des Master-Slave-Flipflop: Aufgebaut aus D-Flipflops: wie beim einfachen D-Flipflop muss bei jedem Takt ein Wert eingespeist werden. Aufgebaut aus RS-Flipflops: wie beim einfachen (R,S)-Flipflop führt die Kombination (R, S) = (, ) zu unvorhersehbaren Ergebnissen.

121 Schaltungen Jörg Roth 25 Das (J,K)-Master-Slave-Flipflop. Das (J,K)-Master-Slave-Flipflop besteht aus zwei (R,S)-Flipflops und hat an den Dateneingängen zwei AND-Gatter, die (R, S) = (, ) am Master verhindern. Aufbau: J & S Master Q S Slave Q K & R Q R Q Takt T

122 Schaltungen Jörg Roth 26 Symbol: J K Q Q Funktionsweise (J,K)-Master-Slave-Flipflops: Master/Slave-Funktionsweise ist wie beim Master-Slave-Flipflop Alle vier mögliche Eingaben sind erlaubt: (J, K) = (0, 0) erhalte das zuletzt gespeicherte Bit (J, K) = (, 0) setze -Bit (J, K) = (0, ) setze 0-Bit (J, K) = (, ) wechsle das zuletzt gespeicherte Bit (0, 0)

123 Schaltungen Jörg Roth 27 J K Q Q (nach Takt) Bemerkung Zustand halten 0-Bit speichern -Bit speichern Zustand wechseln

124 Schaltungen Jörg Roth 28 Bemerkung. Es gibt auch ein einfaches (nicht Master-Slave-) (J,K)-Flipflop. Bei diesen wird der Zustand des enthaltenen Flipflops auf den Eingang zurückgeführt. Wenn die Taktphase T = zu lange ist, wechselt dieses Flipflop seinen Zustand mehrfach. In Schaltungen mit diesem Flipflop wählt man daher eine sehr kurze Taktphase T =.

125 Schaltungen Jörg Roth 29 Das T-Master-Slave-Flipflop (Toggle). Das T-Master-Slave-Flipflop wechselt bei jedem Takt den Zustand. Schaltung und Symbol: T J K Q Q T Q Q Funktionsweise: Wechsle den Zustand bei jedem Takt, wenn T =, sonst halte den letzten Zustand Bemerkung: Kein Flipflop zum expliziten Speichern eines Bits!

126 Schaltungen Jörg Roth 220 T Q Q (nach Takt) Bemerkung Zustand halten Zustand wechseln

127 Schaltungen Jörg Roth 224 Anwendung von Schieberegistern: Umwandlung paralleler Informationen in serielle Informationen und umgekehrt. Beispiele: Ausgabe von Bytes auf eine serielle Schnittstelle (z.b. USB) Serielles Senden der Bits von Netzwerk-Rahmen über ein Ethernet- Kabel. Weitere Anwendung für Schieberegister: Multiplikation einer positiven Binärzahl mit 2: links-schieben, wobei von rechts eine 0 nachgeschoben wird Ganzzahl-Division einer positiven Binärzahl durch 2: rechts-schieben, wobei von links eine 0 nachgeschoben wird Ganzzahl-Division einer 2er-Komplement-Zahl durch 2: rechts-schieben, wobei das Vorzeichen-Bit dupliziert wird (auch Arithmetic Shift genannt).

128 Schaltungen Jörg Roth 237 Begründung für die Laufzeit der Addition: x y u Volladdierer & & & > & > s x y Halbaddierer & > s & > & 2 weitere Gatterlaufzeiten für s & & u & Gatterlaufzeit für u > & > u 3 Gatterlaufzeiten für u & VA u... VA u VA u HA

129 Schaltungen Jörg Roth 238 Für die Zeit zur Berechnung der Summe gilt: ÜbHA +(n 2) ÜbVA + AddVA = G +(n 2)3 G +2 G = (3n 3) G Bemerkung: diese Art der Übertragsberechnung wird Ripple Carry genannt.

130 Schaltungen Jörg Roth 242 Carry-Look-Ahead für 4 Bits x 3 y 3 x 2 y 2 x y x 0 y 0 u > > > > & & & & & & & > & > 2 Gatterlaufzeiten 2 Gatterlaufzeiten > u 4

131 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.). Diese einzelnen Schritte werden durch das Mikroprogramm gesteuert. Höhere Programmiersprache int a=, b=2; a = a+2*b; Assembler und Maschinenprogramm lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Register und Mikroprogramm Kap 4 Gatter & & & > Transistoren

132 Die Mikroprogrammebene eines Rechners Jörg Roth 258 Es gibt zwei unterschiedliche Rechnerarchitektur-Typen: CISC (Complex Instructions Set Computers): Ein Befehl auf Maschinenebene wird durch mehrere Befehle auf der Mikroprogrammebene dargestellt. Dadurch stellen Maschinen-Befehle kleine "Programme" dar, die z.b. Schleifen enthalten können. Es sind komfortable Befehle möglich. RISC (Reduced Instructions Set Computers): Ein Befehl auf Maschinenebene entspricht direkt einem Befehl der Mikroprogrammebene. Dadurch sind weniger komfortable Befehle möglich, diese werden aber sehr schnell abgearbeitet.

133 Die Mikroprogrammebene eines Rechners Jörg Roth 259 Typische Bestandteile einer CPU: Ein Satz von Registern (typisch: ca Stück), die Zwischenergebnisse speichern und als Operanden verwendet werden können. Meist ein einzelnes ausgezeichnetes Register, das als ein Operand und Speicher des Ergebnisses benutzt wird (genannt Akkumulator). Auch möglich: Speichern des Ergebnisses in ein beliebiges Register. Eine Arithmetisch Logische Einheit (ALU) berechnet logische Operationen (AND, XOR etc.) und arithmetische Operationen (Addition, Subtraktion, eventuell Multiplikation, Division).

134 Die Mikroprogrammebene eines Rechners Jörg Roth 260 Beispiel: 4-Bit-ALU 748 (Bemerkung: 748 ist ein eigener ALU-Baustein. Üblicherweise sind ALUs innerhalb der CPU integriert). Mögliche Funktionen: logische (AND, OR, XOR, Invertieren etc.) arithmetische (Addition, Subtraktion) Carry-Eingang, Carry-Ausgang (Carry Look-Ahead). Mehrere 748- ALUs können hintereinandergeschaltet werden, um größere Bitbreiten zu realisieren Über 5 Eingänge (S0...S3, M) wird die Funktion selektiert Nicht alle 32 möglichen Funktionen haben eine unmittelbare Bedeutung z.b. (, 0,, 0, ) bedeutet (A UND B) PLUS (A ODER B) PLUS Carry

135 Die Mikroprogrammebene eines Rechners Jörg Roth 26 Die wichtigsten 748-Funktionen: M S3 S2 S S0 Funktion M S3 S2 S S F = A F = A PLUS Carry F = A UND B F = A ODER B F = (,,, ) 0 0 F = (Carry, Carry, Carry, Carry) F = A ODER B F = B F = (A = B) 0 0 F = A MINUS B MINUS Carry 0 0 F = A ODER B F = A UND B F = A XOR B 0 0 F = A PLUS B PLUS Carry F = B F = A ODER B F = (0, 0, 0, 0) F = A UND B F = A UND B 0 0 F = A F = A MINUS Carry

136 Die Mikroprogrammebene eines Rechners Jörg Roth 262 Typische Bestandteile einer CPU (Fortsetzung): Eine Schiebeeinheit (Shifter) führt rechts-, links-schieben, arithmetisches Schieben und Rotieren durch. Die Schiebefunktionen werden oft auch der ALU zugerechnet und nicht durch eine eigene Komponente realisiert. Ein Satz von Flags gibt über den Status einer Berechnung Auskunft: Carry: es ist ein Übertrag entstanden Overflow: es ist ein Überlauf entstanden Zero: es ist eine 0 entstanden (bzw. Gleichheit beim Vergleich) Negativ: es ist eine negative Zahl entstanden (bzw. kleiner-bedingung beim Vergleich)

137 Die Mikroprogrammebene eines Rechners Jörg Roth 263 Zusammenspiel zwischen ALU, Registern und Flags: Reg n... Reg 3 Reg 2 Akku... Auswahl 2.Operand ALU & Shifter Auswahl Funktion C O Z N

138 Die Mikroprogrammebene eines Rechners Jörg Roth 264 Typische Bestandteile einer CPU (Fortsetzung): Ein Register, das auf den nächsten Maschinen-Befehl im Speicher zeigt (Instruction Pointer, IP). Ein Register, das (z.b. für Unterprogrammaufrufe) auf die oberste Adresse eines Stapels zeigt (Stack Pointer, SP). Ein Satz von Registern, ist für die Kommunikation mit dem Hauptspeicher notwendig: ein Register hält die Speicheradresse (Memory Address Register, MAR), ein weiteres Register speichert den Inhalt zum Schreiben und Lesen (Memory Buffer Register, MBR). Ein Steuerwerk wertet die Maschinen-Befehle aus und steuert die Datenflüsse zwischen den einzelnen Komponenten in der geforderten Weise.

139 Die Mikroprogrammebene eines Rechners Jörg Roth 265 Weitere Komponenten einer CPU: Interrupt-Logik: Die CPU muss asynchron auf auftretende Ereignisse reagieren können (z.b. Netzwerkkarte meldet, dass ein Netzwerkpaket eingetroffen ist). Diese Ereignisse werden über spezielle Eingänge gemeldet und unterbrechen die aktuelle Programmabarbeitung. Cache-Speicher: Zum Beschleunigen der Speicherzugriffe werden Daten auf dem Prozessor-Chip zwischengespeichert. Liegen die Daten bei einem erneuten Zugriff noch vor, so ist der Zugriff wesentlich schneller. Fließkomma-Einheit: Traditionell sind Fließkomma-Einheiten nicht Bestandteil der CPU. Früher gab es dazu einen mathematischen Coprozessor (Floating Point Unit, FPU), der typische Fließkomma-Befehle bereitstellte. Heutzutage kann die FPU auf dem CPU-Chip integriert werden. Es gibt aber auch CPUs ohne jegliche Fließkomma-Funktionen. In diesem Fall muss die Fließkomma-Arithmetik über Software realisiert werden.

140 Die Mikroprogrammebene eines Rechners Jörg Roth 266 Schematischer Aufbau einer CPU: Auswahl Register für Speicherzugriff Auswahl Adresse/Daten Haupt- speicher- Adresse Haupt- speicher- Daten IP SP MAR MBR Reg n... Reg 3 Reg 2 Akku... Auswahl 2.Operand Auswahl Schreiben oder Lesen Auswahl welches Register speichern/ laden ALU & Shifter Auswahl Funktion C O Z N

141 Die Mikroprogrammebene eines Rechners Jörg Roth 267 Schematischer Aufbau einer CPU inklusive Steuerwerk: Auswahl Register für Speicherzugriff Auswahl Adresse/Daten Haupt- speicher- Adresse Haupt- speicher- Daten IP SP MAR MBR Reg n... Reg 3 Reg 2 Akku... Auswahl 2.Operand Auswahl Schreiben oder Lesen Auswahl welches Register speichern/ laden ALU & Shifter Auswahl Funktion Befehl C O Z N Auswahl... Auswahl... Auswahl... Auswahl... Steuerwerk

142 Die Mikroprogrammebene eines Rechners Jörg Roth 268 Funktionsweise des Steuerwerks: Anhand des geladenen Befehls wird an eine bestimmte Stelle des Mikroprogramm-Speichers verzweigt. Ein Mikroprogramm-Befehl besteht aus einem Bitvektor (Auswahl, Auswahl 2,...). Dadurch werden die Multiplexer/Demultiplexer ("Auswahl...") so angesteuert, wie es der Befehl erfordert. Üblicherweise erfordert ein Befehl mehrere Schritte im Mikroprogramm. Deshalb enthält ein Mikroprogramm-Befehl auch Anteile, die das Mikroprogramm selbst steuern (z.b. Mikroprogramm-Zähler um weiterschalten).

143 Die Mikroprogrammebene eines Rechners Jörg Roth 269 Durch Berücksichtigen der Flags kann das Mikroprogramm unterschiedlich reagieren. Beispiel: Maschinenbefehl des Z80-Prozessors: JP Z,<adresse> // (Jump If Zero) Bedeutung: Springe zu einer Programmadresse, wenn die letzte Operation den Wert 0 ergab Pseudo-Code des zugehörigen Mikroprogramms: Werte das Zero-Flag aus Ist das Zero-Flag gesetzt, dann setze IP:=<adr> Ist das Zero-Flag nicht gesetzt, dann setze IP:=IP+

144 Die Mikroprogrammebene eines Rechners Jörg Roth 270 Bemerkung: In der Regel ist das Mikroprogramm einer CPU fest. Es gibt einige wenige CPUs, deren Mikroprogramm neu geladen werden kann. Warum programmiert man nicht direkt auf Mikroprogramm-Ebene? Mikroprogramm-Befehle sind in der Regel sehr "breit" Mikroprogramm-Befehle erfordern viel Wissen über den internen Aufbau der CPU

145 5 Die Maschinenprogrammebene eines Rechners Höhere Programmiersprache Assembler und Maschinenprogramm Register und Mikroprogramm int a=, b=2; a = a+2*b; lw $t0, a lw $t, b add $t0, $t0, $t add $t0, $t0, $t sw $t0, a Kap 5 Gatter & & & > Transistoren

146 Die Maschinenprogrammebene eines Rechners Jörg Roth 272 Wir betrachten die Ebene der Maschinenprogramme am Beispiel des MIPS R2000 Prozessors. Wir behandeln: die Architektur des MIPS-Prozessors, Register, Adressierungsarten; die Befehle des MIPS-Prozessors; Assembler vs. Maschinensprache, Kodierung von Befehlen; die MARS-Simulationsumgebung für den MIPS-Prozessor; weitere Eigenschaften der Befehle und Programmbeispiele.

147 Die Maschinenprogrammebene eines Rechners Jörg Roth ADie Komponenten des MIPS R2000 Befehlsregister rs rt rd funct shamt Direkter Operand (immediate) Adress-Offset Adresse (address) $3... lesen schreiben Speicher... Auswahl Auswahl Auswahl Quelle Auswahl Ziel (rd) $2 $ $zero Auswahl 2.Operand (rt) Auswahl.Operand (rs) Adresse Offset addieren Ergebnisse MULT, DIV Hi Lo ALU & Shifter Auswahl Funktion (funct) Anzahl Shifting-Schritte (shamt) Auswahl Adress- Quelle O Z N

148 Die Maschinenprogrammebene eines Rechners Jörg Roth 274 Register des MIPS Es gibt 32 interne Register. Zwei Arten der Bezeichnung: Durchnumeriert: $0,... $3 Anhand der Eigenschaft: $zero, $s0,... $s7, $t0,... $t7 Es gibt eine --Zuordnung zwischen beiden Bezeichnungen, z.b. $0=$zero, $6=$s0, $7=$s Die Register haben verschiedene Bedeutungen. Einige davon: $zero: gibt immer die 0 zurück, kann nicht geschrieben werden $s0,... $s7: generelle Register für Zwischenrechungen Zwei weitere Register mit speziellen Funktionen: Hi, Lo Resultate für Multiplikation: (Hi, Lo) = op op2 Resultat für die Division: Hi = op mod op2, Lo = op/op2

149 Die Maschinenprogrammebene eines Rechners Jörg Roth 275 Übersicht der Register: Register Symbolisch Bedeutung $0 $zero immer 0 $ $at verwendet Assembler bei Pseudobefehlen $2 $3 $v0 $v Rückgabewerte von Unterprogrammen $4 $7 $a0 $a3 Parameter für Unterprogr. (Unterprogr. darf verändern) $8 $5 $t0 $t7 Register, die ein Unterprogramm nicht sichern muss $6 $23 $s0 $s7 Register, die ein Unterprogramm sichern muss $24 $25 $t8 $t9 Register, die ein Unterprogramm nicht sichern muss $26 $27 $k0 $k reserviert für das Betriebssystem (Interrupts) $28 $gp Zeiger auf globalen Speicherbereich $29 $sp Stackpointer (zum Retten von Registern in Unterprog.) $30 $s8/$fp Framepointer ($sp beim Start eines Unterprogramms) $3 $ra Rücksprungadresse für Unterprogramme

150 Die Maschinenprogrammebene eines Rechners Jörg Roth 276 Bemerkungen zu den Registern: Die Bedeutung der Register außer $zero und $ra ist nur eine Konvention. Logische und arithmetische Operationen sowie Shift-Funktionen werden nur auf den Registern durchgeführt, nicht auf Speicheradressen. Beispiel: add $s, $s2, $s3 bedeutet $s := $s2 + $s3 Um Operationen auf Speicherinhalten durchzuführen, müssen zuerst die Inhalte in Register geladen werden und am Ende das Resultat gespeichert werden: lw $s2,000 # Lade Inhalt von Adresse 000 in $s2 lw $s3,2000 # Lade Inhalt von Adresse 2000 in $s3 add $s, $s2, $s3 # Addiere sw $s, 3000 # Speichere Resultat in Adresse 3000

151 Die Maschinenprogrammebene eines Rechners Jörg Roth BMaschinensprache und Assembler Die vom Prozessor ausführbaren Befehle liegen im Binärformat vor. Nur solche Befehle sind direkt ausführbar. So steht das Wort ( ) 6 für den symbolischen Befehl add $7, $8, $9 bzw. add $s, $s2, $s3 Während der Befehl ( ) 6 für den Prozessor leicht "verständlich" ist, ist er für Menschen schwer lesbar. Für Menschen ist dagegen die Textzeile "add $s, $s2, $s3" verständlicher. Das "add" im Befehl wird Mnemonic genannt. Die Registerbenennung kann in der gewünschten Form erfolgen. Zusätzlich gibt es syntaktische Kennzeichnungen für verschiedene Adressierungsarten (siehe unten).

152 Die Maschinenprogrammebene eines Rechners Jörg Roth 278 Zur Lösung dieses Problems verwendet man zur Programmierung auf Maschinenebene einen so genannten Assembler: Assembler lesen Texte zeilenweise und wandeln in der Regel jede Textzeile in einen Maschinenbefehl um. Ein typischer Befehl besteht aus einem Mnemonic (z.b. addi) und Operanden (z.b. $s), letztere durch Kommata oder Blanks getrennt. Die Übersetzung von Assembler-Texten in Maschinenbefehle ähnelt der Compilierung bei höheren Programmiersprachen der Prozess wird Assemblierung genannt. Nicht korrekt geformte Texte können Syntaxfehler enthalten, so dass kein Maschinenprogramm generiert werden kann. Es gibt eine --Übersetzung von Assembler-Befehlen zu Maschinen- Befehlen man verfügt also bei weitem nicht über die Möglichkeiten einer höheren Programmiersprache.

153 Die Maschinenprogrammebene eines Rechners Jörg Roth 279 Weitere Funktionen eines Assemblers: Hantieren mit symbolischen Adressen: Der Entwickler kann bestimmten Speicheradressen Namen (Label) zuordnen. Der Assembler erkennt diese Namen und fügt bei der Übersetzung die Originaladressen ein. Hantieren mit symbolischen Sprungzielen: Sprungbefehle führen den Programmablauf an einer anderen Stelle des Programms fort. Diese Stellen können symbolisch benannt werden. Bei relativen Sprüngen (z.b. "springe 00 Bytes nach vorne") berechnet der Assembler die Sprungdifferenz anhand des symbolischen Namens automatisch. Komfortables Einfügen statischer Daten: Neben den Maschinenbefehlen enthält ein Programm auch statische Bereiche, z.b. feste Zeichenketten oder numerische Konstanten. Über Assembler-Befehle können solche Datenbereiche komfortabel erstellt werden. Angabe von numerischen Konstanten in verschiedenen Zahlensystemen, z.b. "00" (dezimal) "0xFF" (hexadezimal).

154 Die Maschinenprogrammebene eines Rechners Jörg Roth 280 Pseudobefehle: häufig benutzte Befehle können durch eigene Befehlskürzel abgekürzt werden. So existiert in MIPS der Pseudobefehl li (load immediate), z.b. in li $s, 00 # Lade die Zahl 00 in das Register $s der allerdings bei der Assemblierung in den Befehl ori $s, $zero, 00 # $s := 0 OR 00 übersetzt wird. Der zweite Befehl ist inhaltsgleich aber für Menschen schwerer lesbar. Makros sind mehrzeilige Befehlssequenzen, die bei der Assemblierung textuell eingefügt werden. Das kann die Lesbarkeit erhöhen. Markos können auch parametrisiert werden, dürfen aber nicht mit Unterprogrammen verwechselt werden, da sie zur Assemblierzeit textuell eingefügt werden und keine Verwaltung zur Laufzeit erfordern.

155 Die Maschinenprogrammebene eines Rechners Jörg Roth 28 Ein MIPS-Beispielprogramm:.text # Schlüsselwort für den Anfang des Programmtexts main: # Einstiegspunkt des Programms addi $s, $zero, 20# Lade 20 in das Register $s ($s := ) sll $s, $s, 3 # Schiebe $s um 3 Bit nach links ($s := $s * 8) addi $s2, $s, 0 # $s2 := $s+0 Dieses Programm berechnet 20*8+0 und legt das Ergebnis in $s2 ab. Bemerkung: Dieses Programm soll lediglich die Wirkungsweise von Maschinenbefehlen illustrieren. In der Realität würde man das Ergebnis der Rechnung (70) direkt dem Register $s2 zuweisen.

156 Die Maschinenprogrammebene eines Rechners Jörg Roth CDie MIPS-Befehle Die MIPS-Befehle orientieren sich an folgenden vier Design-Prinzipien: Simplicity favors regularity ("Einfachheit bevorzugt Regelmäßigkeit"): Nur eine Befehlslänge von 32 Bit Nur drei Befehlsformate Innerhalb eines Befehlsformats: feste Anzahl von Operanden Smaller is faster ("Kleiner ist schneller"): Eine kleine Anzahl von Registern begünstigt eine schnelle Befehlsabarbeitung.

157 Die Maschinenprogrammebene eines Rechners Jörg Roth 283 Good design demands compromise ("Gutes Design erfordert einen Kompromiß"): Einiges ist unbequem, z.b. immer exakt drei Operanden für bestimmte Befehle zu haben. Einige wünschenswerte Befehle fehlen, z.b. Register-Kopien. Ein Teil der Unbequemlichkeit wird durch Pseudo-Befehle behoben. Make the common case fast ("Mache den üblichen Fall schnell"): Beispiel der Angabe von Konstanten: Für 6-Bit Konstanten ("der übliche Fall") kann MIPS dies in einem 32-Bit-Befehl ausdrücken. Für größere Konstanten ("der unübliche Fall") erfordert dies 2 Befehle.

158 Die Maschinenprogrammebene eines Rechners Jörg Roth 284 Bezeichnungen: Rd, Rs, Rt: Register $0...$3 bzw. $v0 $v, $a0 $a3, $t0 $t7 etc. I: Direktoperand (immediate): Operand wird durch 6 Bit gegeben, die auf 32 Bit erweitert werden: Beispiel :000 stellt den direkten Wert der Zahl 000 dar. Hi, Lo: Multiplikations-, Divisionsergebnis Label: Sprungziel shamt: Feste Zahl von Schiebeschritten (vergleichbar mit I) Address(Rs): Zugriff auf die Speicherzelle Mem[Address+Rs], Beispiel 000($s) für Zugriff auf Mem(000+$s) Die Bedeutung der Spalte F (Format) wird weiter unten erklärt.

159 Die Maschinenprogrammebene eines Rechners Jörg Roth 285 Arithmetische Operationen: Befehl Beschreibung Vorzeichen F add Rd, Rs, Rt Rd := Rs + Rt mit R addu Rd, Rs, Rt Rd := Rs + Rt ohne R addi Rt, Rs, I Rt := Rs + I mit I addiu Rt, Rs, I Rt := Rs + I ohne I sub Rd, Rs, Rt Rd := Rs Rt mit R subu Rd, Rs, Rt Rd := Rs Rt ohne R div Rs, Rt Lo := Rs/Rt, Hi := Rs mod Rt mit R divu Rs, Rt Lo := Rs/Rt, Hi := Rs mod Rt ohne R mult Rs, Rt (Hi, Lo) := Rs Rt mit R Hi = oberen 32 Bits, Lo = unteren 32 Bits multu Rs, Rt (Hi, Lo) := Rs Rt Hi = oberen 32 Bits, Lo = unteren 32 Bits ohne R

160 Die Maschinenprogrammebene eines Rechners Jörg Roth 286 Bitweise logische Verknüpfungen: Befehl Beschreibung F and Rd, Rs, Rt Rd := Rs Rt R andi Rt, Rs, I Rt := Rs I I nor Rd, Rs, Rt Rd := Rs Rt R or Rd, Rs, Rt Rd := Rs Rt R ori Rt, Rs, I Rt := Rs I I xor Rd, Rs, Rt Rd := Rs Rt R xori Rt, Rs, I Rt := Rs I I

161 Die Maschinenprogrammebene eines Rechners Jörg Roth 287 Schiebeoperationen: Befehl Beschreibung F sll Rd, Rt, shamt Rd := Rt links-geschoben um shamt Bits R sllv Rd, Rt, Rs Rd := Rt links-geschoben um Rs Bits R srl Rd, Rt, shamt Rd := Rt rechts-geschoben um shamt Bits R srlv Rd, Rt, Rs Rd := Rt rechts-geschoben um Rs Bits R sra Rd, Rt, shamt Rd := Rt rechts-geschoben um shamt Bits R (arithmetisch, d.h. Erhaltung des Vorzeichens) srav Rd, Rt, Rs Rd := Rt rechts-geschoben um Rs Bits (arithmetisch, d.h. Erhaltung des Vorzeichens) R

162 Die Maschinenprogrammebene eines Rechners Jörg Roth 288 Vergleichen von Inhalten: Befehl Beschreibung Vorzeichen F slt Rd, Rs, Rt Rd := wenn Rs < Rt, Rd := 0 wenn Rs Rt sltu Rd, Rs, Rt Rd := wenn Rs < Rt, Rd := 0 wenn Rs Rt slti Rt, Rs, I Rt := wenn Rs < I, Rt := 0 wenn Rs I sltiu Rt, Rs, I Rt := wenn Rs < I, Rt := 0 wenn Rs I mit ohne mit ohne R R I I

163 Die Maschinenprogrammebene eines Rechners Jörg Roth 289 Laden und Speichern: Befehl Beschreibung F mfhi Rd Rd := Hi R mflo Rd Rd := Lo R lui Rt, I Rt := I 2 6 I (oberste 6 Bit = I, unterste 6 Bit = 0) lb Rt, Address(Rs) Rt := Byte in Mem[Address + Rs] I (Vorzeichen auf 32 Bit erweitert) lbu Rt, Address(Rs) Rt := Byte in Mem[Address + Rs] I (keine Vorzeichenerweiterung) sb Rt, Address(Rs) Byte in Mem[Address + Rs] := Rt I lw Rt, Address(Rs) Rt := Word in Mem[Address + Rs] I sw Rt, Address(Rs) Word in Mem[Address + Rs] := Rt I

164 Die Maschinenprogrammebene eines Rechners Jörg Roth 290 Relative Sprünge (Branch): Befehl Beschreibung Vorzeichen F beq Rs, Rt, Label Springe wenn Rs =Rt egal I bne Rs, Rt, Label Springe wenn Rs Rt egal I bgez Rs, Label Springe wenn Rs 0 mit I bgtz Rs, Label Springe wenn Rs > 0 mit I blez Rs, Label Springe wenn Rs 0 mit I bltz Rs, Label Springe wenn Rs < 0 mit I

165 Die Maschinenprogrammebene eines Rechners Jörg Roth 29 Absolute Sprünge (Jump): Befehl Beschreibung F j Label Springe J jal Label Unterprogrammaufruf J jr Rs Springe zur Adresse in Rs R jalr Rs Unterprogrammaufruf zur Adresse in Rs R Sonstige Befehle: Befehl Beschreibung F syscall Betriebssystemaufruf R break n Exception n aufrufen R

166 Die Maschinenprogrammebene eines Rechners Jörg Roth 292 Die wichtigsten Pseudobefehle: Befehl li Rd, I la Rd, Label move Rd, Rs Beschreibung Rd := I Rd := Adresse des Labels (Achtung: nicht den Inhalt der Speicherzelle kopieren, sondern die Adresse der Speicherzelle) Rd := Rs

167 Die Maschinenprogrammebene eines Rechners Jörg Roth 293 Adressierungsarten: Durch den Befehl wird die jeweilige Adressierungsart festgelegt, also die Art, wie auf einen Operanden zugegriffen wird, z.b. add: Registeradressierung addi: Direktoperand Nicht bei jeder Assemblersprache ist das so. Bei einigen Assemblersprachen gibt es ein einziges Mnemonic für verschiedene Adressierungsarten. Der Assembler erkennt dann syntaktisch die jeweilige Variante und fügt automatisch die verschiedenen Binärbefehle ein. Beispiel Z80-Assembler ADD A, B # Addiere A := A + B (A, B sind CPU-Register) ADD A, 00 # Addiere A := A + 00 (addiere Direktoperand 00) ADD A, (HL) # Addiere A := A + Mem(HL) (HL ist ein Zeigerregister)

168 Die Maschinenprogrammebene eines Rechners Jörg Roth 294 Adressierungsarten des MIPS: Direktwert (immediate): eine Zahl i, die direkt im Befehl steht Register: ein Register, darstellt durch eine Registernummer r, z.b. r =7 für $s Speicher: Speicherinhalt einer Adresse a: Mem[a] Register-indirekt: eine Registernummer r definiert ein Register, das als Zeiger auf eine Speicheradresse benutzt wird: Mem[$r] Register-indirekt mit Versatz: eine Registernummer r definiert eine Zeigerregister, zu dem eine Adresse a hinzuaddiert wird: Mem[a + $r] Bemerkung: MIPS stellt die Adressierungsarten Speicher und Registerindirekt immer als Register-indirekt mit Versatz dar: Speicher: Mem[a + $zero] Register-indirekt: Mem[0 + $r]

169 Die Maschinenprogrammebene eines Rechners Jörg Roth DKodierung von MIPS-Befehlen Es gibt drei Formate (siehe Spalte F in den Befehlstabellen) Jeder Befehl ist 32 Bit lang R-Format 6 Bit 5 Bit 5 Bit 5 Bit 5 Bit 6 Bit op rs rt rd shamt funct I-Format 6 Bit 5 Bit 5 Bit 6 Bit op rs rt address/immediate J-Format 6 Bit 26 Bit op address

170 Die Maschinenprogrammebene eines Rechners Jörg Roth 296 Anhand des Feldes op wird erkannt, welches Format verwendet wird R-Format: op = (000000) I-Format: alle op außer op = (000000), op = (0000*), op = (000**) J-Format: op = (0000*) Ein weiteres Format ist für Co-Prozessor-Befehle reserviert (hier nicht behandelt): op = (000**) Bedeutung der Felder: op, funct: op spezifiziert den Befehl (Opcode). Bei op = 0 wird funct hinzugenommen, um den Befehl zu identifizieren rs, rt, rd: Register: rs:. Operand (source), rt: 2. Operand bzw. Zielregister (target), rd: Zielregister (destination) shamt: Zahl von Schiebeschritten address/immediate: relative Sprungadresse oder 6-Bit Direktoperand address: Absolute Sprungadresse

171 Die Maschinenprogrammebene eines Rechners Jörg Roth 297 R-Format-Befehle: Befehl op rs rt rd shamt funct add Rd, Rs, Rt 0 rs rt rd 0 32 addu Rd, Rs, Rt 0 rs rt rd 0 33 sub Rd, Rs, Rt 0 rs rt rd 0 34 subu Rd, Rs, Rt 0 rs rt rd 0 35 div Rs, Rt 0 rs rt divu Rs, Rt 0 rs rt mult Rs, Rt 0 rs rt multu Rs, Rt 0 rs rt and Rd, Rs, Rt 0 rs rt rd 0 36 nor Rd, Rs, Rt 0 rs rt rd 0 39 or Rd, Rs, Rt 0 rs rt rd 0 37

172 Die Maschinenprogrammebene eines Rechners Jörg Roth 298 Befehl op rs rt rd shamt funct xor Rd, Rs, Rt 0 rs rt rd 0 38 sll Rd, Rt, shamt 0 0 rt rd shamt 0 sllv Rd, Rt, Rs 0 rs rt rd 0 4 srl Rd, Rt, shamt 0 0 rt rd shamt 2 srlv Rd, Rt, Rs 0 rs rt rd 0 6 sra Rd, Rt, shamt 0 0 rt rd shamt 3 srav Rd, Rt, Rs 0 rs rt rd 0 7 mfhi Rd rd 0 6 mflo Rd rd 0 8 slt Rd, Rs, Rt 0 rs rt rd 0 42 sltu Rd, Rs, Rt 0 rs rt rd 0 43 jr Rs 0 rs jalr Rs 0 rs

173 Die Maschinenprogrammebene eines Rechners Jörg Roth 299 Befehl op rs rt rd shamt funct syscall break n n 3

174 Die Maschinenprogrammebene eines Rechners Jörg Roth 300 I-Format-Befehle: Befehl op rs rt address/immediate addi Rt, Rs, I 8 rs rt immediate addiu Rt, Rs, I 9 rs rt immediate andi Rt, Rs, I 2 rs rt immediate ori Rt, Rs, I 3 rs rt immediate xori Rt, Rs, I 4 rs rt immediate lui Rt, I 5 0 rt immediate lb Rt, Address(Rs) 32 rs rt address lbu Rt, Address(Rs) 36 rs rt address sb Rt, Address(Rs) 40 rs rt address lw Rt, Address(Rs) 35 rs rt address sw Rt, Address(Rs) 43 rs rt address

175 Die Maschinenprogrammebene eines Rechners Jörg Roth 30 Befehl op rs rt address/immediate slti Rt, Rs, I 0 rs rt immediate sltiu Rt, Rs, I rs rt immediate beq Rs, Rt, Label 4 rs rt address bne Rs, Rt, Label 5 rs rt address bgez Rs, Label rs address bgtz Rs, Label 7 rs 0 address blez Rs, Label 6 rs 0 address bltz Rs, Label rs 0 address J-Format-Befehle: Befehl op address j Label 2 address jal Label 3 address

176 Die Maschinenprogrammebene eines Rechners Jörg Roth 302 Beispiel: Übersetzen des Beispielprogramms in Maschinensprache Befehlszeile F op rs rt rd shamt funct addi $s,$zero,20 I sll $s,$s,3 R addi $s2,$s,0 I adr/ imm Maschinenbefehl (Hex) C A

177 Die Maschinenprogrammebene eines Rechners Jörg Roth E Die MARS-Umgebung MARS ist ein Simulationswerkzeug für MIPS-Prozessoren Es enthält einen Assembler und eine Laufzeitumgebung Da das Wirtsystem (z.b. Windows) auf einem anderen Prozessor basiert, werden die MIPS-Maschinenbefehle zur Laufzeit auf einem virtuellen Prozessor simuliert.

178 Die Maschinenprogrammebene eines Rechners Jörg Roth 304 MARS-Funktionen: Anzeigen von Register- und Speicherinhalten Zeigen des assemblierten Programms Durchlaufen des Codes im Einzelschrittmodus Setzen von Break-Points Über syscall kann aus dem Maschinenprogramm heraus eine rudimentäre Konsole angesprochen werden Ein/Ausgabe von Zahlen Ein/Ausgaben von Zeichenketten

179 Die Maschinenprogrammebene eines Rechners Jörg Roth 305 Direktiven des MARS-Assemblers an einem Beispiel:.data # Schlüsselwort für den statischen Datenteil label:.word 000 # Anlegen des 32-Bit-Wortes mit dem Wert 000 label2:.byte 0 # Anlegen des Bytes mit dem Wert 0 label3:.byte a # Anlegen des Bytes mit dem ASCII-Wert für a label3:.space 5 # Anlegen von 5 Bytes mit dem Wert 0 label4:.asciiz "Dies ist ein Text" # Anlegen eines 0-terminierten Strings.text # Schlüsselwort für den Programmtext main: addi... # Ein Programm muss diesen Einstiegspunkt haben # Ab hier stehen die Assemblerbefehle

180 Die Maschinenprogrammebene eines Rechners Jörg Roth 306 Die wichtigsten MARS syscalls Nr. $v0 Beschreibung 32-Bit-Zahl dezimal auf die Konsole ausgeben 4 0-terminierten String auf die Konsole ausgeben 5 32-Bit-Zahl dezimal von der Konsole einlesen 8 String von der Konsole einlesen und 0-terminiert in Puffer ablegen Aufrufargument Rückgabewert $a0 = Wert der Zahl $a0 = Adresse des Strings $v0 = Wert der Zahl $a0 = Adresse des Stringpuffers $a = Länge des Stringpuffers 9 Dynamischen Speicher allozieren $a0 = Länge des Blocks $v0 = Adresse des Blocks 0 Programm beenden

181 Die Maschinenprogrammebene eines Rechners Jörg Roth 307 Bemerkungen zu den MARS syscalls: Ein Programm terminiert automatisch nach der letzten Befehlszeile. syscall 0 wird nur benötigt, wenn man das Programm vorher beenden möchte. Alternativ kann man hinter den letzten Befehl springen. Die syscalls zur Zahlen-Ein/Ausgabe verwenden Register für die Zahlenspeicherung. Die syscalls zu der String-Ein/Ausgabe legen die Zeichenketten im Speicher ab (nicht in den Registern). Über das Register $a0 wird die Adresse des Strings bzw. des freien Stringpuffers angegeben.

182 Die Maschinenprogrammebene eines Rechners Jörg Roth 308 Beispiel:.data prompt:.asciiz "Bitte Zahl eingeben: " text:.asciiz "Sie haben die Zahl " text2:.asciiz " eingegeben\n".text main: li $v0, 4 la $a0,prompt syscall li $v0, 5 syscall or $s0, $zero, $v0 # String ausgeben # "Bitte Zahl eingeben: # Zahl einlesen # $s0 := Eingabe;

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

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

Schaltungen Jörg Roth 197

Schaltungen Jörg Roth 197 Schaltungen Jörg Roth 197 2.2.2 Flipflops Flipsflops sind einfache rückgekoppelte Schaltungen, die jeweils ein einzelnes Bit speichern können. Es gibt verschiedene Typen, die sich im "Komfort" der Ansteuerung

Mehr

3 Rechnen und Schaltnetze

3 Rechnen und Schaltnetze 3 Rechnen und Schaltnetze Arithmetik, Logik, Register Taschenrechner rste Prozessoren (z.b. Intel 4004) waren für reine Rechenaufgaben ausgelegt 4 4-Bit Register 4-Bit Datenbus 4 Kbyte Speicher 60000 Befehle/s

Mehr

Vorbereitung zum Versuch

Vorbereitung zum Versuch Vorbereitung zum Versuch Schaltlogik Armin Burgmeier (1347488) Gruppe 15 6. Januar 2008 1 Gatter aus diskreten Bauelementen Es sollen logische Bausteine (Gatter) aus bekannten, elektrischen Bauteilen aufgebaut

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

Versuch P1-63 Schaltlogik Vorbereitung

Versuch P1-63 Schaltlogik Vorbereitung Versuch P1-63 Schaltlogik Vorbereitung Gruppe Mo-19 Yannick Augenstein Versuchsdurchführung: 16. Januar 2012 1 Inhaltsverzeichnis Einführung 3 1 Grundschaltungen 3 1.1 AND.......................................

Mehr

N Bit binäre Zahlen (signed)

N Bit binäre Zahlen (signed) N Bit binäre Zahlen (signed) n Bit Darstellung ist ein Fenster auf die ersten n Stellen der Binär Zahl 0000000000000000000000000000000000000000000000000110 = 6 1111111111111111111111111111111111111111111111111101

Mehr

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Kapitel 2. Zahlensysteme, Darstellung von Informationen Kapitel 2 Zahlensysteme, Darstellung von Informationen 1 , Darstellung von Informationen Ein Computer speichert und verarbeitet mehr oder weniger große Informationsmengen, je nach Anwendung und Leistungsfähigkeit.

Mehr

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten

Mehr

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner Institut für Telematik Universität zu Lübeck Programmieren Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 8/9 Prof. Dr. Christian Werner 3- Überblick Typische Merkmale moderner Computer

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer? Vorlesung Programmieren Zahlendarstellung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Agenda Zahlendarstellung Oder: wie rechnen

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Zahlensysteme und Datendarstellung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Zahlensysteme und Datendarstellung Zahlensysteme Problem: Wie stellt man (große) Zahlen einfach, platzsparend und rechnergeeignet

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

Daten, Informationen, Kodierung. Binärkodierung

Daten, Informationen, Kodierung. Binärkodierung Binärkodierung Besondere Bedeutung der Binärkodierung in der Informatik Abbildung auf Alphabet mit zwei Zeichen, in der Regel B = {0, 1} Entspricht den zwei möglichen Schaltzuständen in der Elektronik:

Mehr

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 2 Grundlegende Konzepte. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 2 Grundlegende Konzepte 1 2.1 Zahlensysteme Römisches System Grundziffern I 1 erhobener Zeigefinger V 5 Hand mit 5 Fingern X 10 steht für zwei Hände L 50 C 100 Centum heißt Hundert D 500 M 1000

Mehr

Computerarithmetik (1)

Computerarithmetik (1) Computerarithmetik () 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

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung

1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung 1. Grundlagen der Informatik Zahlensysteme und interne Informationsdarstellung Inhalt Grundlagen digitaler Systeme Boolesche Algebra / Aussagenlogik Organisation und Architektur von Rechnern Algorithmen,

Mehr

Teil II. Schaltfunktionen

Teil II. Schaltfunktionen Teil II Schaltfunktionen 1 Teil II.1 Zahlendarstellung 2 b-adische Systeme Sei b IN mit b > 1 und E b = {0, 1,..., b 1} (Alphabet). Dann ist jede Fixpunktzahl z (mit n Vorkomma und k Nachkommastellen)

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Technische Informatik I

Technische Informatik I Technische Informatik I Vorlesung 2: Zahldarstellung Joachim Schmidt jschmidt@techfak.uni-bielefeld.de Übersicht Geschichte der Zahlen Zahlensysteme Basis / Basis-Umwandlung Zahlsysteme im Computer Binärsystem,

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen Statt positive Zahlen von 0 bis 2 n -1mit einem Bitmuster der Länge n darzustellen und arithmetische Operationen darauf auszuführen,

Mehr

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013 Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013 Im folgenden soll ein Überblick über die in Computersystemen bzw. Programmiersprachen verwendeten Zahlen inklusive ausgewählter Algorithmen (in

Mehr

Grundstrukturen: Speicherorganisation und Zahlenmengen

Grundstrukturen: Speicherorganisation und Zahlenmengen Zahlendarstellung Zahlen und ihre Darstellung in Digitalrechnern Grundstrukturen: Speicherorganisation und Zahlenmengen Linear organisierter Speicher zu einer Adresse gehört ein Speicher mit 3 Bit-Zellen

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik

Mehr

Inhalt: Binärsystem 7.Klasse - 1 -

Inhalt: Binärsystem 7.Klasse - 1 - Binärsystem 7.Klasse - 1 - Inhalt: Binärarithmetik... 2 Negative Zahlen... 2 Exzess-Darstellung 2 2er-Komplement-Darstellung ( two s complement number ) 2 Der Wertebereich vorzeichenbehafteter Zahlen:

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

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

Mehr

TOTAL DIGITAL - Wie Computer Daten darstellen

TOTAL DIGITAL - Wie Computer Daten darstellen TOTAL DIGITAL - Wie Computer Daten darstellen Computer verarbeiten Daten unter der Steuerung eines Programmes, das aus einzelnen Befehlen besteht. Diese Daten stellen Informationen dar und können sein:

Mehr

1 : Die Rechnungsarten

1 : Die Rechnungsarten 1 von 22 23.10.2006 14:08 0 : Inhalt von Kapitel DAT 1 : Die Rechnungsarten 2 : Die Worte 3 : Hilfsprozessoren 4 : Binäre Zahlendarstellung 5 : Interpretationen 6 : Division mit Rest 7 : Horner Schema

Mehr

Inhaltsverzeichnis. Teil I Aufgaben 1

Inhaltsverzeichnis. Teil I Aufgaben 1 iii Teil I Aufgaben 1 1 Grundlagen der Elektrotechnik 3 Aufgabe 1: Punktladungen............................ 3 Aufgabe 2: Elektronenstrahlröhre........................ 3 Aufgabe 3: Kapazität eines Koaxialkabels...................

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Kapitel 1. Zahlendarstellung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik Kapitel 1 Zahlendarstellung Prof. Dr. Dirk W. Hoffmann Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik Zahlensystemkonvertierung Motivation Jede nichtnegative Zahl z lässt

Mehr

Von der Aussagenlogik zum Computer

Von der Aussagenlogik zum Computer Von der Aussagenlogik zum Computer Markus Koch Gymnasium in der Glemsaue Ditzingen Januar 2012 Inhaltsverzeichnis Einleitung...3 Der Computer...3 Grundlagen...4 Wahrheitstabellen...4 Aussagenlogik...4

Mehr

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

Arithmetik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Arithmetik Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Zahlendarstellung Addition und Subtraktion Multiplikation Division Fest- und Gleitkommazahlen

Mehr

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

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

Das Rechnermodell - Funktion

Das Rechnermodell - Funktion Darstellung von Zahlen und Zeichen im Rechner Darstellung von Zeichen ASCII-Kodierung Zahlensysteme Dezimalsystem, Dualsystem, Hexadezimalsystem Darstellung von Zahlen im Rechner Natürliche Zahlen Ganze

Mehr

Protokoll zu Grundelemente der Digitaltechnik

Protokoll zu Grundelemente der Digitaltechnik Protokoll zu Grundelemente der Digitaltechnik Ronn Harbich 22. uli 2005 Ronn Harbich Protokoll zu Grundelemente der Digitaltechnik 2 Vorwort Das hier vorliegende Protokoll wurde natürlich mit größter Sorgfalt

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

D A T E N... 1 Daten Micheuz Peter

D A T E N... 1 Daten Micheuz Peter D A T E N.....! Symbole, Alphabete, Codierung! Universalität binärcodierter Daten! Elementare Datentypen! Speicherung binärcodierter Daten! Befehle und Programme! Form und Bedeutung 1 Daten Micheuz Peter

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur [CS3100.010] Wintersemester 2014/15 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 5 Rechnerarithmetik

Mehr

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik Helmar Burkhart Departement Informatik Universität Basel Helmar.Burkhart@unibas.ch Helmar Burkhart Werkzeuge der Informatik Lektion 1:

Mehr

Grundlagen der Betriebssysteme

Grundlagen der Betriebssysteme Grundlagen der Betriebssysteme [CS2100] Sommersemester 2014 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 2 Zahlendarstellungen

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Analoge und digitale Hardware bei

Mehr

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren:

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren: Daten und ihre Codierung Seite: 1 Zur Universalität der Informatik Gott ist ein Informatiker Die Grundordnung der Welt läßt sich mathematisch formulieren: Naturgesetze, wie wir sie in der Physik, Chemie

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Programmiertechnik Skalare Typen,Variablen, Zuweisungen

Programmiertechnik Skalare Typen,Variablen, Zuweisungen Programmiertechnik Skalare Typen,Variablen, Zuweisungen Prof. Dr. Oliver Haase int i; long j; boolean isempty; double average; char naechsteszeichen; j = 42L; i = (int) j; isempty = true; average = 37.266;

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

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Numerische Datentypen. Simon Weidmann

Numerische Datentypen. Simon Weidmann Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Das Maschinenmodell Datenrepräsentation

Das Maschinenmodell Datenrepräsentation Das Maschinenmodell Datenrepräsentation Darstellung von Zahlen/Zeichen in der Maschine Bit (0/1) ist die kleinste Informationseinheit Größere Einheiten durch Zusammenfassen mehrerer Bits, z.b. 8 Bit =

Mehr

<ruske.s@web.de> Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

<ruske.s@web.de> Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L Elektronische Grundlagen Versuch E7, Grundelemente der Digitaltechnik Praktikumsgruppe IngIF, 04. Juni 2003 Stefan Schumacher Sandra Ruske Oliver Liebold

Mehr

Binäre Division. Binäre Division (Forts.)

Binäre Division. Binäre Division (Forts.) Binäre Division Umkehrung der Multiplikation: Berechnung von q = a/b durch wiederholte bedingte Subtraktionen und Schiebeoperationen in jedem Schritt wird Divisor b testweise vom Dividenden a subtrahiert:

Mehr

Einführung in Informatik 1

Einführung in Informatik 1 Einführung in Informatik Prof. Dr.-Ing. Andreas Penningsfeld Zahlensysteme Allgemein: Zahl b := zn * bn +... + z * b + z ( ) * b (-) +... + z (-m) * b (-m) ; zi: Koeffizienten b: Basis Dezimalsystem Dualsystem

Mehr

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Institut für Computerphysik Universität Stuttgart Wintersemester 2012/13 Wie rechnet ein Computer? Ein Mikroprozessor ist ein Netz von Transistoren,

Mehr

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Großübung 1: Zahlensysteme Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Lehrender: Dr. Klaus Richter, Institut für Informatik; E-Mail: richter@informatik.tu-freiberg.de

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert Binäre Repräsentation von Information Bits und Bytes Binärzahlen ASCII Ganze Zahlen Rationale Zahlen Gleitkommazahlen Motivation Prinzip 8 der von-neumann Architektur: (8) Alle Daten werden binär kodiert

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur 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

Bitte in Druckschrift ausfüllen: Nachname: Vorname: Fachbereich: Matrikelnummer: Geheimwort: Bitte nicht ausfüllen:

Bitte in Druckschrift ausfüllen: Nachname: Vorname: Fachbereich: Matrikelnummer: Geheimwort: Bitte nicht ausfüllen: Prof. Dr. B. Seeger Klausur zur Informatik IIIa WS 99/00 Martin Schneider Beginn: Ende: 8:15 Uhr 10:45 Uhr Bitte in Druckschrift ausfüllen: Nachname: Fachbereich: Matrikelnummer: Geheimwort: Tragen Sie

Mehr

Technische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Technische Grundlagen der Informatik Kapitel 8. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt Technische Grundlagen der Informatik Kapitel 8 Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt Kapitel 8: Themen Zahlensysteme - Dezimal - Binär Vorzeichen und Betrag Zweierkomplement Zahlen

Mehr

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Schaltlogik. Versuch: P1-64. - Vorbereitung - Physikalisches Anfängerpraktikum 1 Wintersemester 2005/06 Julian Merkert (1229929)

Schaltlogik. Versuch: P1-64. - Vorbereitung - Physikalisches Anfängerpraktikum 1 Wintersemester 2005/06 Julian Merkert (1229929) Physikalisches Anfängerpraktikum 1 Gruppe Mo-16 Wintersemester 2005/06 Julian Merkert (1229929) Versuch: P1-64 Schaltlogik - Vorbereitung - Vorbemerkung In diesem Versuch geht es darum, die Grundlagen

Mehr

Wozu wird ein Rechensystem genutzt? Informationsverarbeitung Information. Information. Interpretation, Abstraktion. Repräsentation.

Wozu wird ein Rechensystem genutzt? Informationsverarbeitung Information. Information. Interpretation, Abstraktion. Repräsentation. Wozu wird ein Rechensystem genutzt? Wunsch: Informationsverarbeitung Information Repräsentation Daten Informationsverarbeitung Datenverarbeitung Wirklichkeit: Datenverarbeitung Information Daten Interpretation,

Mehr

9 Multiplexer und Code-Umsetzer

9 Multiplexer und Code-Umsetzer 9 9 Multiplexer und Code-Umsetzer In diesem Kapitel werden zwei Standard-Bauelemente, nämlich Multiplexer und Code- Umsetzer, vorgestellt. Diese Bausteine sind für eine Reihe von Anwendungen, wie zum Beispiel

Mehr

3 Arithmetische Schaltungen

3 Arithmetische Schaltungen . Schaltungselemente Arithmetische Schaltungen. Schaltungselemente Logikgatter Treiber; gibt am Ausgang denselben Logikpegel aus, der auch am Eingang anliegt Inverter; gibt am Ausgang den Logikpegel des

Mehr

Rechnerstrukturen WS 2012/13

Rechnerstrukturen WS 2012/13 Rechnerstrukturen WS 2012/13 Repräsentation von Daten Repräsentation natürlicher Zahlen (Wiederholung) Repräsentation von Texten Repräsentation ganzer Zahlen Repräsentation rationaler Zahlen Repräsentation

Mehr

Technische Informatik 1

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

Mehr

A.3. A.3 Spezielle Schaltnetze. 2002 Prof. Dr. Rainer Manthey Informatik II 1

A.3. A.3 Spezielle Schaltnetze. 2002 Prof. Dr. Rainer Manthey Informatik II 1 Spezielle Schaltnetze Spezielle Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Übersicht in diesem Abschnitt: : Vorstellung einiger wichtiger Bausteine vieler elektronischer Schaltungen, die sich

Mehr

Praktikum Grundlagen der Elektronik

Praktikum Grundlagen der Elektronik Praktikum Grundlagen der Elektronik Versuch EP 7 Digitale Grundschaltungen Institut für Festkörperelektronik Kirchhoff - Bau K1084 Die Versuchsanleitung umfasst 7 Seiten Stand 2006 Versuchsziele: Festigung

Mehr

Versuchsvorbereitung: P1-63, 64, 65: Schaltlogik

Versuchsvorbereitung: P1-63, 64, 65: Schaltlogik raktikum lassische hysik I Versuchsvorbereitung: 1-63, 64, 65: Schaltlogik hristian untin Gruppe Mo-11 arlsruhe, 26. Oktober 2009 Ausgehend von einfachen Logikgattern wird die Funktionsweise von Addierern,

Mehr

Repräsentation von Daten Binärcodierung ganzer Zahlen

Repräsentation von Daten Binärcodierung ganzer Zahlen Kapitel 3: Repräsentation von Daten Binärcodierung ganzer Zahlen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Repräsentation von Daten im Computer (dieses und nächstes

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS

Grundlagen der Technischen Informatik Wintersemester 12/13 J. Kaiser, IVS-EOS Gleit komma zahlen Gleitkommazahlen in vielen technischen und wissenschaftlichen Anwendungen wird eine große Dynamik benötigt: sowohl sehr kleine als auch sehr große Zahlen sollen einheitlich dargestellt

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

Grundlagen der Computertechnik

Grundlagen der Computertechnik Grundlagen der Computertechnik Aufbau von Computersystemen und Grundlagen des Rechnens Walter Haas PROLOG WS23 Automation Systems Group E83- Institute of Computer Aided Automation Vienna University of

Mehr

4. Digitale Datendarstellung

4. Digitale Datendarstellung 4 Digitale Datendarstellung Daten und Codierung Textcodierung Codierung natürlicher Zahlen - Stellenwertsysteme - Konvertierung - Elementare Rechenoperationen Codierung ganzer Zahlen - Komplementdarstellung

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44 Aufgabe 33 a) Der Pseudobefehl move $rd,$rs wird als addu $rd,$0,$rs übersetzt. Dabei macht sich SPIM zunutze, dass das Register $0 immer Null ist. Somit wird das Register $rd ersetzt durch $rd=0+$rs=$rs,

Mehr

Grundlagen der Informatik I Informationsdarstellung

Grundlagen der Informatik I Informationsdarstellung Grundlagen der Informatik I Informationsdarstellung Einführung in die Informatik, Gumm, H.-P./Sommer, M. Themen der heutigen Veranstaltung. ASCIi Code 2. Zeichenketten 3. Logische Operationen 4. Zahlendarstellung

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Mikrocomputertechnik. Einadressmaschine

Mikrocomputertechnik. Einadressmaschine technik Einadressmaschine Vorlesung 2. Mikroprozessoren Einführung Entwicklungsgeschichte Mikroprozessor als universeller Baustein Struktur Architektur mit Akku ( Nerdi) FH Augsburg, Fakultät für Elektrotechnik

Mehr

Informatik für Ingenieure

Informatik für Ingenieure Informatik für Ingenieure Eine Einführung Von Prof. Dr. rer. nat. Wolfgang Merzenich Universität-Gesamthochschule Siegen und Prof. Dr.-Ing. Hans Christoph Zeidler Universität der Bundeswehr Hamburg B.

Mehr

Schaltwerke Schaltwerk

Schaltwerke Schaltwerk Schaltwerke Bisher habe wir uns nur mit Schaltnetzen befasst, also Schaltungen aus Gattern, die die Ausgaben als eine Funktion der Eingaben unmittelbar (durch Schaltvorgänge) berechnen. Diese Schaltnetze

Mehr

Ernst-Moritz-Arndt-Universität Greifswald Fachbereich Physik Elektronikpraktikum

Ernst-Moritz-Arndt-Universität Greifswald Fachbereich Physik Elektronikpraktikum Ernst-Moritz-Arndt-Universität Greifswald Fachbereich Physik Elektronikpraktikum Protokoll-Nr.: 11 Digitalschaltungen Protokollant: Jens Bernheiden Gruppe: 2 Aufgabe durchgeführt: 25.06.1997 Protokoll

Mehr

A.1 Schaltfunktionen und Schaltnetze

A.1 Schaltfunktionen und Schaltnetze Schaltfunktionen und Schaltnetze A. Schaltfunktionen und Schaltnetze 22 Prof. Dr. Rainer Manthey Informatik II Bedeutung des Binärsystems für den Rechneraufbau Seit Beginn der Entwicklung von Computerhardware

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

Mehr

Informatikgrundlagen I Grundlagen der Informatik I

Informatikgrundlagen I Grundlagen der Informatik I Informatikgrundlagen I Grundlagen der Informatik I Dipl.-Inf. Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 Fachbereich Automatisierung

Mehr

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10 Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754 Berechnung von Gleitkommazahlen aus Dezimalzahlen Die wissenschaftliche Darstellung einer Zahl ist wie folgt definiert: n = f * 10 e. f ist

Mehr

Information in einem Computer ist ein

Information in einem Computer ist ein 4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr