Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München

Größe: px
Ab Seite anzeigen:

Download "Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München"

Transkript

1 Aufgabenkatalog Computersysteme 1 Dr. Michael Zwick Technische Universität München

2 Inhalt 1 Komponenten eines Computer-Systems 5 Netzteil Grafikkarten Optische Laufwerke Festplatte Prozessor Bussystem Rechner-Architekturen Assemblerprogrammierung Zahldarstellung Festkommazahlen Gleitkommazahlen nach IEEE Format von Gleitkommazahlen Rechnen mit Gleitkommazahlen MMIX Architektur Überblick MMIX Register Allgemein Allzweckregister Spezialregister Arbeitsspeicher Allgemein Speicher-Organisation Alignment Byte-Reihenfolge beim Abspeichern von Datenworten: Big- und Little-Endian Format von MMIX-Programmen Assembler- und Loader-Befehle MMIX Befehlsformat MMIX Befehle Definitionen Zusammenfassen von in Registern gespeicherten Werten

3 3 Programm beenden Lade- und Speicherbefehle Daten vom Speicher in ein Register laden Adressen in ein Register laden Daten vom Register in den Speicher schreiben (speichern) Direktoperand in Register schreiben Umwandlung Gleitkommazahl $ Festkommazahl Arithmetische Befehle Arithmetische Befehle auf Festkommazahlen Arithmetische Befehle auf Gleitkommazahlen Schiebe-Befehle Logische Operationen auf Bit-Ebene Zugriff auf Spezialregister Verzweigungsbefehle Unbedingte Verzweigung Bedingte Verzweigungen Befehle für Funktionsaufrufe Namensräume Stack MMIX Programme MMIX Programm zur Berechnung der Determinante einer 2 2 Matrix 93 Quadratische Gleichung Mikroarchitektur Datenpfad...13 Phase 1: Befehl holen Phase 2: Befehl dekodieren und Operanden bereitstellen Phase 3: Befehlsausführung Phase 4: Speicherzugriff Kontrolle aller Phasen: Das Steuerwerk Aufbau des Rechenwerks (ALU) Überblick UND- und ODER-Einheit Schiebe-Einheit Addierer und Subtrahierer Addition zweier einzelner Bits: 1 Bit Halbaddierer Addition von drei einzelnen Bits: 1 Bit Volladdierer

4 4 Addition von Binärzahlen: Zusammenschalten von Volladdierern.. 15 Subtraktion von Binärzahlen: Addition des negativen zweiten Operanden Multiplikation Multiplikation = 143 im Binärsystem, Wortbreite = Multiplikation 13 5 = 65 im Binärsystem, Wortbreite = Multiplikations-Hardware Zustandsdiagramm der Steuerung Multiplexer-basierte Implementierung der Steuerung ROM-basierte Implementierung der Steuerung Pipelining Rückblick: Bisheriger Datenpad = Multicycle-Datenpfad Pipeline-Datenpfad Cache...25 Motivation Direkt abgebildeter Cache Voll-Assoziativer Cache Set-Assoziativer/Mengen-Assoziativer Cache Division Miscellaneous Memory hierarchy General questions Cache memory organization Performance gain Virtual memory Segment based addressing Paging Segment addressing with paging Diverses Aufbau von Datenpfad-Komponenten Multiplexer

5 5 1 Komponenten eines Computer-Systems Netzteil a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? b) Warum können PC-Netzteile hohe Leistungen liefern, obwohl die eingebauten Transformatoren nur relativ klein sind? c) Wie sind Schaltnetzteile aufgebaut? Skizzieren Sie ein Blockschaltbild!

6 6 1 Komponenten eines Computer-Systems Grafikkarten a) Was sind die Hauptaufgaben einer Grafikkarte? b) Was ist ein Back-Buffer, was ist ein Front-Buffer? Optische Laufwerke a) Was sind Pits und Land? b) Was reflektiert Licht: Pits, Land oder beides? c) Welche Tiefe müssen die Pits haben, damit man die mit Pits und Land gespeicherte Information sinnvoll auslesen kann? Warum?

7 7 Festplatte a) Was ist eine Festplatten-Spur? b) Was ist ein Festplatten-Zylinder? c) Was ist ein Festplatten-Sektor? d) Was sind typische Sektor-Größen? e) Was für Informationen werden in Sektoren neben den Nutzdaten noch zusätzlich abgespeichert?

8 8 1 Komponenten eines Computer-Systems f) Skizzieren Sie grob einen Regelkreis der zur Positionierung des Festplatten-Arms verwendet werden kann.

9 9 Prozessor a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? b) Welche Schritte führt ein Prozessor aus, wenn er den nächsten Befehl aus dem Speicher lädt? c) Wo können die Operanden eines Befehls generell abgelegt sein?

10 1 1 Komponenten eines Computer-Systems Bussystem a) In welche drei Busse lässt sich ein Bussystem oft aufgliedern? b) Was ist die Funktion dieser drei Busse? c) Welche dieser Busse sind unidirektional, welche bidirektional?

11 11 Rechner-Architekturen a) Was ist der Haupt-Unterschied zwischen einer Harvard- und einer von Neumann- Architektur? b) Wie kann man die Aussage verstehen, dass heutige Rechnersysteme oft sowohl eine Harvard- als auch eine von Neumann-Architektur haben?

12 12 1 Komponenten eines Computer-Systems

13 2.1 Zahldarstellung 13 2 Assemblerprogrammierung 2.1 Zahldarstellung Festkommazahlen a) Wandeln Sie folgende Dezimalzahlen in 8 Bit breite vorzeichenlose Binärzahlen um. Dezimal Binär vorzeichenlos

14 14 2 Assemblerprogrammierung b) Wandeln Sie soweit möglich die folgenden Dezimalzahlen in die Systeme Vorzeichen und Betrag, Einer Komplement und Zweier Komplement um. Dezimal Vorzeichen und Betrag Einer Komplement Zweier Komplement

15 2.1 Zahldarstellung 15 c) Vervollständigen Sie folgenden Zahlenring für 4 bit Binärzahlen wie folgt: Der mittlere Ring soll die 4 Bit breiten Binärzahlen enthalten, der äussere Ring soll die dem mittleren Ring entsprechenden Dezimalzahlen enthalten für den Fall, dass der mittlere Ring vorzeichenlose Zahlen codiert und der innere Ring soll die dem mittleren Ring entsprechenden Dezimalzahlen enthalten für den Fall, dass der mittlere Ring Zahlen im Zweier Komplement codiert. Markieren Sie, wo ein Überlauf von vorzeichenlosen Zahlen auftritt. Markieren Sie, wo ein Überlauf von vorzeichenbehafteten Zahlen auftritt.

16 16 2 Assemblerprogrammierung d) Wie kann man einen Überlauf von vorzeichenlosen Zahlen feststellen? e) Wie lässt sich ein Überlauf von vorzeichenbehafteten Zahlen feststellen? f) Berechnen Sie im vorzeichenlosen Binärformat. g) Berechnen Sie im Zweier Komplement.

17 2.1 Zahldarstellung 17 Gleitkommazahlen nach IEEE 754 Format von Gleitkommazahlen a) Geben Sie das Format von 32 Bit und Bit Gleitkommazahlen an. b) Wie berechnet sich der Wert einer 32 bzw. Bit breiten normalisierten Gleitkommazahl aus ihrem Bitmuster? Geben Sie den Wert der Konstanten K an! c) In welchem Bereich liegt e bei normalisierter Zahldarstellung? d) Wie wird die Zahl. dargestellt in Bezug auf s, e and f?

18 18 2 Assemblerprogrammierung e) Was ist eine denormalisierte Gleitkommazahl, wie wird sie kodiert und wie berechnet sich ihr Wert? f) Wie kodiert man die Gleitkommazahl unendlich? g) Mit welchen Werten von e und f wird ausgesagt, dass es sich um keine Zahl (NaN = not a number) handelt? h) Geben Sie ein Beispiel an, wie es zu einem Ergebnis kommen kann, das keine Zahl ist.

19 2.1 Zahldarstellung 19 Rechnen mit Gleitkommazahlen a) Geben Sie die Festkomma-Binärdarstellung von 3,625 und 13,5 an. b) Kodieren Sie 3,625 und 13,5 als 32 Bit breite Gleitkommazahlen und tragen Sie das Bitmuster in die angegebene Tabelle ein : 13.5:

20 2 2 Assemblerprogrammierung c) Berechnen Sie 3, ,5 im Binärsystem bei Verwendung einer 32 Bit Gleitkommakodierung. Bitmuster des Ergebnisses:

21 2.1 Zahldarstellung 21 d) Bestimmen Sie aus dem Ergebnis-Bitmuster das Ergebnis der Addition 3, ,5

22 22 2 Assemblerprogrammierung 2.2 MMIX Architektur Überblick a) Auf welche Mikroarchitektur-Komponenten kann ein MMIX-Programmierer in seinen Programmen zugreifen ( Programmier-Architektur )? b) Zeichnen Sie die MMIX Programmier-Architektur. Zeichen Sie mit gerichteten Pfeilen den Informationsfluss ein und geben Sie dabei die Wortbreiten an.

23 2.2 MMIX Architektur 23 MMIX Register Allgemein a) Was ist ein Register? b) Wo findet man Register in einem Computer-System? c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? d) Skizzieren Sie das Schaltbild eines Registers das Bit Daten abspeichern kann. Allzweckregister a) Was sind Allzweckregister? b) Geben Sie ein Beispiel für eine typische Verwendung eines Allzweckregisters an.

24 24 2 Assemblerprogrammierung c) Über wieviele Allzweckregister verfügt der MMIX-Prozessor? Welche Namen haben sie? d) Was ist der Unterschied zwischen einem globalen und einem lokalen Register? e) Skizzieren Sie die MMIX-Allzweckregister und tragen Sie in Ihre Skizze ein, wo die globalen und wo die lokalen Register liegen.

25 2.2 MMIX Architektur 25 Spezialregister a) Was ist ein Spezialregister? b) Geben Sie eine typische Anwendung eines Spezialregisters an. c) Über wieviele Spezialregister verfügt der MMIX-Prozessor? Wie werden sie genannt (Prinzip)? d) Kann jeder MMIX-Befehl Spezialregister verwenden? e) Welches Spezialregister stellt Informationen über Arithmetische Operationen zur Verfügung? f) In welchem Spezialregister kann man die oberen Bit eines 128 Bit breiten Festkomma-Dividenden ablegen? g) In welchem Register werden die oberen Bit des Ergebnisses einer Festkomma- Multiplikation abgelegt?

26 26 2 Assemblerprogrammierung h) In welchem Spezialregister legt das Rechenwerk den Rest einer Festkomma- Division ab? i) Müssen normale Programme häufig auf Spezialregister zugreifen? j) Was müssen Sie tun, wenn Sie einzelne Bits eines Spezialregisters verändern wollen?

27 2.2 MMIX Architektur 27 Arbeitsspeicher Allgemein a) Wozu verwendet ein Computer Arbeitsspeicher? b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät? c) Sind Zugriffe auf den Arbeitsspeicher in der Regel schneller oder langsamer als Zugriffe auf Register? d) Begründen Sie Ihre Antwort auf die letzte Frage.

28 28 2 Assemblerprogrammierung Speicher-Organisation a) Zeichnen Sie die Segmente des virtuellen MMIX-Speichers mit den zugehörigen Start- und End-Adressen.

29 2.2 MMIX Architektur 29 b) Was wird im Textsegment gespeichert? c) Was ist ein Interrupt? d) Nennen Sie ein Ereignis, bei dem ein Interrupt auftreten kann. e) Was sind Interruptvektoren? f) Was wird im Datensegment gespeichert?

30 3 2 Assemblerprogrammierung g) Was wird im Poolsegment gespeichert? h) Geben Sie den Inhalt des Poolsegments für das Programm ls an, das mit dem Parameter -la aufgerufen wird (Aufruf: ls -la). x4 x48 x41 x418 x42 x428 x43 x438 i) Wenn alle Programme an Adresse x1 beginnen bzw. alle Programme ihre Daten ab Adresse x2 im Speicher ablegen: Überschreiben sich die verschiedenen Programme dann nicht gegenseitig ihre Daten? Ja/nein und warum?

31 2.2 MMIX Architektur 31 Alignment a) Geben Sie für nachfolgend angegebene Speicheradressen an, ob es sich um Byte-, Wyde-, Tetra- oder Octa-Adressen handelt. Octa Tetra Wyde Byte x2 x21 x22 x23 x24 x25 x26 x27 x28 x x x x x x x x x

32 32 2 Assemblerprogrammierung Byte-Reihenfolge beim Abspeichern von Datenworten: Big- und Little-Endian a) Welche Art von Daten betrifft die Abspeicherung als Big- oder Little-Endian? b) Verwendet der MMIX-Prozessor Big- oder Little-Endian? c) Was bedeutet Big- und Litle-Endian? Was ist der Unterschied? d) Wie wird die 16 Bit-Zahl x1234 im Speicher an der Adresse x2 abgelegt im Falle a) einer Big-Endian-Maschine und b) einer Little-Endian- Maschine?

33 2.2 MMIX Architektur 33 Format von MMIX-Programmen a) Aus wievielen/welchen Spalten bestehen MMIX-Programme? b) Wie werden die Spalten im Programmcode getrennt? c) Wie muss man MMIX-Codezeilen schreiben, die keine Marke verwenden? d) Wie kann man beim MMIX-Assembler eine komplette Zeile auskommentieren? e) Werden alle vier Spalten eines MMIX-Programms für den Übersetzungsvorgang herangezogen? Gehen Sie auf die einzelnen Spalten ein.

34 34 2 Assemblerprogrammierung Assembler- und Loader-Befehle a) Geben Sie Befehle an, mit denen Sie Register 1, 2 und 3 durch a, b und c ansprechbar machen. b) Geben einen Befehl an, der ein globales Register mit dem Namen GR reserviert und mit initialisiert. c) Was ist der Loader? d) Geben Sie Befehle an, mit denen Sie an Speicheradresse #2 vier Bytes reservieren, die über die Marken A, B, C und D angesprochen werden können. A soll mit 1 und B mit 2 initialisiert werden. Fügen Sie auch einen geeigneten Befehl zur Reservierung und Initialisierung eines globalen Registers ein, damit die vier Bytes über ein Basisregister und einen Offset angesprochen werden können.

35 2.2 MMIX Architektur 35 e) Mit welchen Befehlen können Sie Worte der Länge 16, 32 und bit im Speicher reservieren? f) Erklären Sie den Ausdruck Alignment.

36 36 2 Assemblerprogrammierung g) Was passiert, wenn man not aligned auf den Speicher zugreift, d.h. wenn man z.b. auf einen Befehl zum Laden/Speichern eines Octas zusammen mit einer Adresse verwendet, bei der die letzten drei Bits nicht den Wert haben? Betrachten Sie die folgenden Befehle: X Y Z LOC #2 BYTE WYDE OCTA h) Geben Sie die Adressen an, an denen X und Y im Speicher abgelegt werden. i) An welchen Adressen wird Z abgelegt?

37 2.2 MMIX Architektur 37 j) Welche Eigenschaften muss eine Adresse haben, damit man an ihr ein Byte, Wyde, Tetra bzw. Octa abspeichern kann? k) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse x2 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort anlegen, das mit 4 initialisiert wird und über die Marke N angesprochen werden kann, an den darauffolgenden Speicheradressen zwei 4-dimensionale Vektoren wie folgt anlegen: Der erste Vektor soll über ADR_A1 ansprechbar sein und mit den Bit-Zahlen [1, 2, 3, 4] initialisert werden; der zweite Vektor soll über ADR_A2 ansprechbar sein und mit den Bit-Zahlen [1, 2, 3, 4] initialisiert werden.

38 38 2 Assemblerprogrammierung MMIX Befehlsformat a) Wie breit (in Bit) ist das MMIX Befehlswort? b) Skizzieren Sie das MMIX Befehlswort und geben Sie den Inhalt jedes Bytes an. c) In welchen Byte des Befehlsworts wird im Allgemeinen Information über die Quelloperanden bzw. über die Zieloperanden abgespeichert? d) Bei welchen Befehlen wird die Information über die Befehle anders abgespeichert? Wie? e) Warum verwenden diese Befehle X, Y und Z anders als die übrigen MMIX-Befehle? f) Was ist ein Direktoperand? Nachfolgende Abbildung zeigt die Codierung der MMIX-Opcodes sowie die zur Befehlsausführung benötigte Zeit.:

39 2.2 MMIX Architektur 39! x.. x1.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! x.. x..1 x..2 x..3 x..4 x..5 x..6 x..7 TRAP 5ν FCMP ν FUN ν FEQL ν FADD 4ν FIX 4ν FSUB 4ν FIXU 4ν FLOT[I] 4ν FLOTU[I] 4ν SFLOT[I] 4ν SFLOTU[I] 4ν FMUL 4ν FCMPE 4ν FUNE ν FEQLE 4ν FDIV 4ν FSQRT 4ν FREM 4ν FINT 4ν MUL[I] 1ν MULU[I] 1ν DIV[I] 6ν DIVU[I] 6ν ADD[I] ν 2ADDU[I] ν CMP[I] ν SL[I] ν BN[B] ν+π BNN[B] ν+π PBN[B] 3ν-π PBNN[B] 3ν-π CSN[I] ν ADDU[I] ν 4ADDU[I] ν CMPU[I] ν SLU[I] ν BZ[B] ν+π BNZ[B] ν+π PBZ[B] 3ν-π PBNZ[B] 3ν-π CSZ[I] ν SUB[I] ν 8ADDU[I] ν NEG[I] ν SR[I] ν BP[B] ν+π BNP[B] ν+π PBP[B] 3ν-π PBNP[B] 3ν-π CSP[I] ν SUBU[I] ν 16ADDU[I] ν NEGU[I] ν SRU[I]ν BOD[B] ν+π BEV[B] ν+π PBOD[B] 3ν-π PBEV[B] 3ν-π CSOD[I] ν CSNN[I] ν ZSN[I] ν CSNZ[I] ν ZSZ[I] ν CSNP[I] ν ZSP[I] ν CSEV[I] ν ZSOD[I] ν ZSNN[I] ν ZSNZ[I] ν ZSNP[I] ν ZSEV[I] ν LDB[I] µ+ν LDBU[I] µ+ν LDW[I] µ+ν LDWU[I] µ+ν LDT[I] µ+ν LDTU[I] µ+ν LDO[I] µ+ν LDOU[I] µ+ν LDSF[I] µ+ν LDHT[I] µ+ν CSWAP[I] 2µ+2ν LDUNC[I] µ+ν LDVTS[I] ν PRELD[I] ν PREGO[I] ν GO[I] 3ν STB[I] µ+ν STBU[I] µ+ν STW[I] µ+ν STWU[I] µ+ν STT[I] µ+ν STTU[I] µ+ν STO[I] µ+ν STOU[I] µ+ν STSF[I] µ+ν STHT[I] µ+ν STCO[I] µ+ν STUNC[I] µ+ν SYNCD[I] ν PREST[I] ν SYNCID[I] ν PUSHGO[I] 3ν OR[I] ν ORN[I] ν NOR[I] ν XOR[I] ν AND[I] ν ANDN[I] ν NAND[I] ν NXOR[I] ν BDIF[I] ν WDIF[I] ν TDIF[I] ν ODIF[I] ν MUX[I] ν SADD[I] ν MOR[I] ν MXOR[I] ν SETH ν SETMH ν SETML ν SETL ν INCH ν INCHM ν INCML ν INCL ν ORH ν ORMH ν ORML ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν x..8 x..9 x..a x..b x..c x..d x..e x..f x.. x1.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! g) Was bedeutet? h) Was bedeutet?

40 4 2 Assemblerprogrammierung i) Wieviele Takte benötigt der BZ-Befehl, wenn gesprungen wird? j) Wieviele Takte benötigt der BZ-Befehl, wenn nicht gesprungen wird? k) Wieviele Takte benötigt der PBZ-Befehl, wenn gesprungen wird? l) Wieviele Takte benötigt der PBZ-Befehl, wenn nicht gesprungen wird? m) Was bedeutet µ?

41 2.2 MMIX Architektur 41 n) Wie kann man mit dieser Tabelle einen MMIX-Opcode ermitteln?

42 42 2 Assemblerprogrammierung o) Geben Sie das 32 Bit breite Befehlswort des Befehls SL $1,$2,3 an. p) Welcher Befehl benötigt die längste Zeit zur Ausführung, wenn man von Speicherbefehlen absieht? q) Wieviele Taktzyklen benötigen die meisten Befehlen zur Ausführung? r) Was ist der Opcode des JMP-Befehls beim Vorwärts- bzw. beim Rückwärtssprung? Betrachten Sie die folgenden Befehle: LOC Data_Segment A OCTA 1 a IS $1 b IS $2 LOC #1 Main LDB a,a Start SUB a,a,1 OR a,a, BZ a,end JMP Start TRAP,, s) Bestimmen Sie das 32 Bit breite Befehlswort des Befehls JMP Start.

43 2.3 MMIX Befehle MMIX Befehle Definitionen Wort w b ist ein Wort der Länge b Byte. wx b repräsentiert Bit Nr. x im Datenwort w b, wobei das niederwertigste Bit in w b an Bitposition x =liegt. wx...y b meint Bits x...y des Datenworts w b. Befehlswort Sei ein 32 Bit breites MMIX Befehlswort. X = Y = Z = 7... YZ = XY = XYZ = Allzweckregister Der MMIX-Prozessor verfügt über 256 Allzweckregister, die mit, 1, durchnummeriert werden. Zur Adressierung eines Allzweckregisters im Befehlswort wird die als vorzeichenlose 8 Bit breite Zahl codierte Registernummer verwendet. Beispiel: Register 5 wird als x5 bzw. als Bitkombination 11 codiert. $x, apple x apple 255 entspricht der Bitkombination, die in Register x gespeichert ist. $X ist die Bitkombination, die in dem durch Bits des Befehlsworts adressierten Register gespeichert ist. Beispiel: Befehlswort ist x ; Bits extrahieren ) x34 (= Bitkombination 111) = Dezimal 52 ) Im Falle des Befehlsworts x meint $X den Wert, der in Register 52 gespeichert ist. $Y ist die Bitkombination, die in dem durch Bits des Befehlsworts adressierten Register gespeichert ist. $Z ist die Bitkombination, die in dem durch Bits 7... des Befehlsworts adressierten Register gespeichert ist.

44 44 2 Assemblerprogrammierung Spezialregister Spezialregister werden im Befehlswort wie folgt codiert: rb: x rc: x8 rq: x1 rw: x18 rd: x1 rn: x9 ru: x11 rx: x19 re: x2 ro: xa rv: x12 ry: x1a rh: x3 rs: xb rg: x13 rz: x1b rj: x4 ri: xc rl: x14 rww: x1c rm: x5 rt: xd ra: x15 rxx: x1d rr: x6 rtt: xe rf: x16 ryy: x1e rbb: x7 rk: xf rp: x17 rzz: x1f Arbeitsspeicher M ist der Arbeitsspeicher des MMIX Prozessors (M = memory). M 1 [x] ist das an Adresse x gespeicherte Byte. M 2 [x] ist das an Adresse x &( 2) gespeicherte Wyde. M 3 [x] ist das an Adresse x &( 4) gespeicherte Tetra. M 4 [x] ist das an Adresse x &( 8) gespeicherte Octa. Die Symbole, X, Y, Z, $X, $Y, $Z, $, $1,..., M 1 [...], M 2 [...],... repräsentieren Bitmuster. Ein Zahlenwert entsteht erst durch entsprechende Interpretation des Bitmusters (z.b. vorzeichenlose Festkommazahl,...).

45 2.3 MMIX Befehle 45 Operationen x y: Weise x den Wert y zu x, y: Ausdruck x ist äquivalent zum Ausdruck y x ) y: Wenn x, dann y x y: Logische operation x ODER y x = y: Vergleich ob x den gleichen Wert hat wie y; liefert wahr (d.h. 1), wenn x den selben Wert hat wie y, sonst falsch (d.h. ) x y: Schiebe x um y Stellen nach links; fülle frei werdende Bitstellen mit auf x u y: Schiebe x um y Bitstellen nach rechts; fülle frei werdende Bitstellen mit auf x s y: Schiebe x um y Bitstellen nach rechts; fülle frei werdende Bitstellen mit dem Wert des Vorzeichenbits (MSB) auf. x % y: Rest der Festkomma-Division x/y. x: Invertiere alle Bits von x, d.h. berechne das 1er-Komplement x & y: Bitweise UND-Verknüpfung von x und y x y: Bitweise ODER-Verknüpfung von x und y x y: Bitweise XOR-Verknüpfung von x und y Umwandlung Festkommazahl $ Gleitkommazahl f 32 (w 4 ): Nimmt an, dass das vier Byte breite Datenwort w 4 im 32 Bit IEEE 754 Gleitkommaformat codiert ist und gibt den entsprechenden Zahlenwert zurück (z.b. 1,75). f32 (x): Codiert die Zahl x als 32 Bit breite Gleitkommazahl und gibt das entsprechende 32 Bit breite Bitmuster zurück. f (w 8 ): Nimmt an, dass das acht Byte breite Datenwort w 8 im Bit IEEE 754 Gleitkommaformat codiert ist und gibt den entsprechenden Zahlenwert zurück (z.b. 1,75). f (x): Codiert die Zahl x als Bit breite Gleitkommazahl und gibt das entsprechende Bit breite Bitmuster zurück. r(x): Rundet eine reelle Zahl gemäß dem in Register ra ausgewählten Rundungsmodus auf eine ganze Zahl.

46 46 2 Assemblerprogrammierung (De-) Codierung von Festkommazahlen s(w b ): Nimmt an, dass das b Byte breite Wort w b im 2er-Komplement codiert ist und gibt den entsprechenden Wert zurück (z.b. 1,, -3) u(w b ): Nimmt an, dass das b Byte breite Wort w b als vorzeichenlose Festkommazahl codiert ist und gibt den entsprechenden Wert zurück (z.b., 1) sb (x): Gibt das b Bit breite im 2er-Komplement codiert Bitmuster zurück das dem Wert x entspricht. ub (x): Gibt das b Bit breite Bitmuster (vorzeichenlose Codierung) zurück das dem Wert x, x, entspricht. Zusammenfassen von in Registern gespeicherten Werten Wenn $X das Bit breite in Register X gespeicherte Bitmuster ist und $Y das Bit breite in Register Y gespeicherte Bitmuster ist, dann ist $X$Y das 128 Bit breite Bitmuster das aus der Aneinanderreihung der beiden Bitmuster $X und $Y entsteht. ($X$Y) = $X und ($X$Y) = $Y. Programm beenden TRAP,Halt, beendet ein MMIX-Programm und gibt die Kontrolle zurück an das Betriebssystem.

47 2.3 MMIX Befehle 47 Lade- und Speicherbefehle Daten vom Speicher in ein Register laden Befehl Operanden Name/Aktion Definition LDB LDBU LDW LDWU LDT LDTU LDO LDOU $X,$Y,$Z Load byte $X s (s(m 1[u($Y)+u($Z)])) $X,$Y,Z Load byte immediate $X s (s(m 1[u($Y)+u(Z)])) $X,$Y,$Z Load byte unsigned $X u (u(m 1[u($Y)+u($Z)])) $X,$Y,Z Load byte uns. immed. $X u (u(m 1[u($Y)+u(Z)])) $X,$Y,$Z Load wyde $X s (s(m 2[u($Y)+u($Z)])) $X,$Y,Z Load wyde immediate $X s (s(m 2[u($Y)+u(Z)])) $X,$Y,$Z Load wyde unsigned $X u (u(m 2[u($Y)+u($Z)])) $X,$Y,Z Load wyde uns. immed. $X u (u(m 2[u($Y)+u(Z)])) $X,$Y,$Z Load tetra $X s (s(m 4[u($Y)+u($Z)])) $X,$Y,Z Load tetra immediate $X s (s(m 4[u($Y)+u(Z)])) $X,$Y,$Z Load tetra unsigned $X u (u(m 4[u($Y)+u($Z)])) $X,$Y,Z Load tetra uns. immed. $X u (u(m 4[u($Y)+u(Z)])) $X,$Y,$Z Load octa $X M 8 [u($y)+u($z)] $X,$Y,Z Load octa immediate $X M 8 [u($y)+u(z)] $X,$Y,$Z Load octa unsigned $X M 8 [u($y)+u($z)] $X,$Y,Z Load octa uns. immed. $X M 8 [u($y)+u(z)]

48 48 2 Assemblerprogrammierung a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? b) Was ist der Unterschied zwischen vorzeichenbehaftetem (signed) und vorzeichenlosen (unsigned) Laden? c) Warum muss man zwischen vorzeichenlosem und vorzeichenbehaftetem Laden unterscheiden? d) Wie unterscheiden sich die Namen der vorzeichenlosen und vorzeichenbehafteten Ladebefehle?

49 2.3 MMIX Befehle 49 e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? f) Nehmen Sie an, dass die vorzeichenbehaftete 8 Bit breite Zahl - mit dem LDB-Befehl in ein Allzweckregister geladen wurde und geben Sie alle Bits des Allzweckregisters in hexadezimaler Notation aus. g) Welcher Wert würde im Allzweckregister stehen, wenn die Zahl - versehentlich mit einem LDBU-Befehl statt mit einem LDB-Befehl in das Allzweckregister geladen worden wäre? Geben Sie den Wert in der Basis 1 an. h) Wie können die Ladebefehle Bit breite Speicheradressen adressieren, obwohl im Befehlswort nur 16 Bit zur Darstellung der Adresse verfügbar sind?

50 5 2 Assemblerprogrammierung i) Zeichnen Sie in die nachfolgende Darstellung ein, wie die Bit breite Adresse generiert wird. Spezial- Register Allzweck- Register Speicher Bit 8, 16, 32, Bit OP X Y Z 32 Bit Befehlswort 8, 16, 24 Bit Bit Bit Rechen- werk (ALU) j) Vervollständigen Sie den nachfolgenden MMIX-Code um die Bereitstellung und Initialisierung eines Basisregisters zur Adressierung von A, B und C. LOC #2 A BYTE B OCTA #FFFF C OCTA LOC #1 Main LDO $,B... k) In welches Befehlswort übersetzt der MMIX-Assembler den Befehl LDO $,B?

51 2.3 MMIX Befehle 51 l) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergibt. LOC Data_Segment BYTE 1 TETRA # TETRA #ABCDEF1 BYTE #77 WYDE #123 Adresse Niederwert. vier Adress-Bits Big Endian Little Endian x2 x21 1 x22 1 x23 11 x24 1 x25 11 x26 11 x x28 1 x29 11 x2a 11 x2b 111 x2c 11 x2d 111 x2e 111 x2f 1111

52 52 2 Assemblerprogrammierung m) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDB $,$254,: LDB $,$254,1: LDB $,$254,6: n) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDT $,$254,: LDT $,$254,1: LDT $,$254,6: o) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDO $,$254,: LDO $,$254,1: LDO $,$254,6:

53 2.3 MMIX Befehle 53 Adressen in ein Register laden Befehl Operanden Name/Aktion Definition LDA $X,$Y,$Z Get address (absolute) $X u (u($y)+u($z)) $X,$Y,Z Get address immed. (absolute) $X u (u($y)+u(z)) GETA $X,YZ Get address (relativ) $X u (u(@) + 4 s(yz)) a) Was ist der Unterschied zwischen dem Befehl LDA und den Ladebefehlen LDB,...? Nehmen Sie die folgenden Befehle an: LOC Data_Segment A BYTE #12 LOC #1 Main LDA $,A TRAP,Halt, b) In welches hexadezimale Befehlswort wird der Befehl LDA $,A übersetzt? Warum? c) In welches hexadezimale Befehlswort sollte der Befehl LDA $,Main übersetzt werden?

54 54 2 Assemblerprogrammierung! x.. x1.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! x.. x..1 x..2 x..3 x..4 x..5 x..6 x..7 TRAP 5ν FCMP ν FUN ν FEQL ν FADD 4ν FIX 4ν FSUB 4ν FIXU 4ν FLOT[I] 4ν FLOTU[I] 4ν SFLOT[I] 4ν SFLOTU[I] 4ν FMUL 4ν FCMPE 4ν FUNE ν FEQLE 4ν FDIV 4ν FSQRT 4ν FREM 4ν FINT 4ν MUL[I] 1ν MULU[I] 1ν DIV[I] 6ν DIVU[I] 6ν ADD[I] ν 2ADDU[I] ν CMP[I] ν SL[I] ν BN[B] ν+π BNN[B] ν+π PBN[B] 3ν-π PBNN[B] 3ν-π CSN[I] ν ADDU[I] ν 4ADDU[I] ν CMPU[I] ν SLU[I] ν BZ[B] ν+π BNZ[B] ν+π PBZ[B] 3ν-π PBNZ[B] 3ν-π CSZ[I] ν SUB[I] ν 8ADDU[I] ν NEG[I] ν SR[I] ν BP[B] ν+π BNP[B] ν+π PBP[B] 3ν-π PBNP[B] 3ν-π CSP[I] ν SUBU[I] ν 16ADDU[I] ν NEGU[I] ν SRU[I]ν BOD[B] ν+π BEV[B] ν+π PBOD[B] 3ν-π PBEV[B] 3ν-π CSOD[I] ν CSNN[I] ν ZSN[I] ν CSNZ[I] ν ZSZ[I] ν CSNP[I] ν ZSP[I] ν CSEV[I] ν ZSOD[I] ν ZSNN[I] ν ZSNZ[I] ν ZSNP[I] ν ZSEV[I] ν LDB[I] µ+ν LDBU[I] µ+ν LDW[I] µ+ν LDWU[I] µ+ν LDT[I] µ+ν LDTU[I] µ+ν LDO[I] µ+ν LDOU[I] µ+ν LDSF[I] µ+ν LDHT[I] µ+ν CSWAP[I] 2µ+2ν LDUNC[I] µ+ν LDVTS[I] ν PRELD[I] ν PREGO[I] ν GO[I] 3ν STB[I] µ+ν STBU[I] µ+ν STW[I] µ+ν STWU[I] µ+ν STT[I] µ+ν STTU[I] µ+ν STO[I] µ+ν STOU[I] µ+ν STSF[I] µ+ν STHT[I] µ+ν STCO[I] µ+ν STUNC[I] µ+ν SYNCD[I] ν PREST[I] ν SYNCID[I] ν PUSHGO[I] 3ν OR[I] ν ORN[I] ν NOR[I] ν XOR[I] ν AND[I] ν ANDN[I] ν NAND[I] ν NXOR[I] ν BDIF[I] ν WDIF[I] ν TDIF[I] ν ODIF[I] ν MUX[I] ν SADD[I] ν MOR[I] ν MXOR[I] ν SETH ν SETMH ν SETML ν SETL ν INCH ν INCHM ν INCML ν INCL ν ORH ν ORMH ν ORML ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν x..8 x..9 x..a x..b x..c x..d x..e x..f x.. x1.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! Gegeben sind die folgenden Befehle: LOC Data_Segment A BYTE #12 LOC #1 Main LDA $,A GETA $,Main TRAP,Halt, d) In welches 32 Bit breite Befehlswort wird der Befehl GETA $,Main übersetzt?

55 2.3 MMIX Befehle 55 Daten vom Register in den Speicher schreiben (speichern) Befehl Operanden Name/Aktion Definition STB $X,$Y,$Z $X,$Y,Z Store byte; with overflow Store byte immed.; ovf. M 1 [u($y)+u($z)] ($X) 7... s($x) 2 7 ) ra ra u (26 ) s($x) < 2 7 ) ra ra u (26 ) M 1 [u($y)+u(z)] ($X) 7... s($x) 2 7 ) ra ra u (26 ) s($x) < 2 7 ) ra ra u (26 ) STBU $X,$Y,$Z Store byte unsigned M 1 [u($y)+u(z)] ($X) 7... $X,$Y,Z Store byte uns. imm. M 1 [u($y)+u(z)] ($X) 7... STW $X,$Y,$Z $X,$Y,Z Store wyde; with overflow Store wyde immed.; ovf. M 2 [u($y)+u(z)] ($X) s($x) 2 15 ) ra ra u (26 ) s($x) < 2 15 ) ra ra u (26 ) M 2 [u($y)+u(z)] ($X) s($x) 2 15 ) ra ra u (26 ) s($x) < 2 15 ) ra ra u (26 ) STWU $X,$Y,$Z Store wyde unsigned M 2 [u($y)+u(z)] ($X) $X,$Y,Z Store wyde uns. imm. M 2 [u($y)+u(z)] ($X) STT $X,$Y,$Z $X,$Y,Z Store tetra; with overflow Store tetra immed.; ovf. M 4 [u($y)+u(z)] ($X) s($x) 2 31 ) ra ra u (26 ) s($x) < 2 31 ) ra ra u (26 ) M 4 [u($y)+u(z)] ($X) s($x) 2 31 ) ra ra u (26 ) s($x) < 2 31 ) ra ra u (26 ) STTU STO STOU $X,$Y,$Z Store byte unsigned M 4 [u($y)+u(z)] ($X) $X,$Y,Z Store byte uns. imm. M 4 [u($y)+u(z)] ($X) $X,$Y,$Z Store octa M 8 [u($y)+u(z)] $X $X,$Y,Z Store octa immediate M 8 [u($y)+u(z)] $X $X,$Y,$Z Store octa unsigned M 8 [u($y)+u(z)] $X $X,$Y,Z Store octa uns. imm. M 8 [u($y)+u(z)] $X

56 56 2 Assemblerprogrammierung a) Wie unterscheidet sich die Verwendung von X, Y und Z bei Speicher-Befehle von derjenigen aller anderen MMIX-Befehle? b) Was ist beim MMIX der Unterschied zwischen vorzeichenbehaftetem und vorzeichenlosem Speichern? In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: LOC Data_Segment A OCTA #FFFFFFFFFFFFFFFF B TETRA # LOC #1 Main LDTU $,B XXX XXXXXXXX TRAP,Halt,

57 2.3 MMIX Befehle 57 c) Geben Sie für das oben gezeigte Programm den Inhalt des Bit breiten Wortes an, welches durch die Marke A adressiert wird, wenn XXX XXXXXXXX durch folgende Befehle ersetzt wird: STB $,A: STW $,A: STWU $,A: STT $,A: STTU $,A: STO $,A: STB $,$254,5: STW $,$254,1: STT $,$254,6: ST $,$254,5: d) Geben Sie hexadezimal das 32 Bit breite Befehlswort des Befehls STBU $,A an, wenn dieser in obigem Programmcode den Platzhalter XXX XXXXXXXX ersetzt.

58 58 2 Assemblerprogrammierung e) Geben Sie die Befehle an, mit denen Sie an Adresse x2 ein Bit breites Datum anlegen, dieses Datum über die Marke Data ansprechbar machen und das Datenwort mit x initialisieren; an Adresse x1 ein Programm beginnen und das an Adresse Data gespeicherte Datenwort in Register 1 einlesen, Bits 7... des Registers 1 an Adresse Data schreiben, Bits 7... des Registers 1 an Adresse x2 2 schreiben, Bits des Registers 1 an Adresse x2 A schreiben.

59 2.3 MMIX Befehle 59 Gegeben ist der folgende Programmcode: LOC Data_Segement Label OCTA # LOC #1 Main LDO $,Label STB $,Label LDA $2,Label STB $,$2,2 STT $,$2,1 f) Zeichnen Sie byteweise den Inhalt des Speichers von Adresse x2... bis x2... F, der sich nach Ausführung des o.g. Programms ergibt.

60 6 2 Assemblerprogrammierung Direktoperand in Register schreiben Befehl Operanden Name/Aktion Definition SETL $X,YZ Set to low wyde $X u (u(yz)) SETML $X,YZ Set to med. low wyde $X u (u(yz 16)) SETMH $X,YZ Set to med. high wyde $X u (u(yz 32)) SETH $X,YZ Set to high wyde $X u (u((yz 48)) INCL $X,YZ Increase by low wyde $X u (u($x)+u(yz)) INCML $X,YZ Inc. by med. low wyde $X u (u($x)+u(yz 16)) INCMH $X,YZ Inc. by med. high wyde $X u (u($x)+u(yz 32)) INCH $X,YZ Increase by high wyde $X u (u($x)+u(yz 48)) a) Geben Sie die Befehle an, mit denen Sie ausschließlich durch die Verwendung von Direktoperanden die Zahl x AB CDEF in Register $ schreiben.

61 2.3 MMIX Befehle 61 Gegeben ist der folgende Anfang eines Programms: LOC Data_Segment Pi32 TETRA #449FDB als 32 Bit Gleitk. Pi32t TETRA als 32 Bit Gleitk. b) Schreiben Sie ein MMIX-Programm, mit dem Sie die 32 Bit breite Gleitkommazahl von Marke Pi32 in Register einlesen, dann mit einem SETxx oder INCxx Befehl das Vorzeichen der Gleitkommazahl ändern und dann als 32 Bit Gleitkommazahl an Marke Pi32t schreiben.

62 62 2 Assemblerprogrammierung c) Berechnen Sie die Binärdarstellung der Bit Gleitkommazahl ,3125. Schreiben Sie dann ein MMIX-Programm das die Gleitkommazahl ,3125 in Register ablegt. Dabei sollen ausschließlich Direktoperanden verwendet werden. Anschließend soll Register an Adresse x2 1 abgelegt werden.

63 2.3 MMIX Befehle 63 Umwandlung Gleitkommazahl $ Festkommazahl Befehl Operanden Name/Aktion Definition FLOT FLOTU $X,$Z Convert fixed to floating $X f $X,Z Conv. fixed to float. imm. $X f $X,$Z Conv. uns. fixed to floating $X f $X,Z Conv. uns. fixed to float. $X f imm. FIX $X,$Z Convert floating to fixed with overflow $X s ( r( f ($Z))) f ($Z) < 2 63 ) ra ra u (25 ) f ($Z) > ) ra ra u (25 ) FIXU $X,$Z Convert floating to fixed without overflow $X s ( r( f ($Z))) a) Welche Aktion führt der Operator r() aus? b) Geben Sie den Befehl an, mit dem Sie Register die Gleitkommazahl 15, zuweisen. c) Geben Sie den Befehl an, mit dem Sie eine Gleitkommazahl in Register 1 in eine Festkommazahl umwandeln.

64 2 Assemblerprogrammierung Arithmetische Befehle Arithmetische Befehle auf Festkommazahlen BefehlOperanden Name/Aktion Definition ADD $X,$Y,$Z $X,$Y,Z Add; signed, with overflow Add immediate; signed, with overflow $X s (s($y)+s($z)) (s($y)+s($z) < 2 63 ) (s($y)+s($z) 2 63 ) ) ra ra u (25 ) $X s (s($y)+u(z)) (s($y)+s(z) < 2 63 ) (s($y)+s(z) 2 63 ) ) ra ra u (25 ) ADDU $X,$Y,$Z Add unsigned; no overflow $X u (u($y)+u($z)) $X,$Y,Z Add unsigned; no overflow $X u (u($y)+u(z)) SUB $X,$Y,$Z $X,$Y,Z Subtract; signed, with overflow Subtract immediate; signed, with overflow $X s (s($y) s($z)) (s($y) s($z) < 2 63 ) (s($y) s($z) 2 63 ) ) ra ra u (25 ) $X s (s($y) u(z)) (s($y) s(z) < 2 63 ) (s($y) s(z) 2 63 ) ) ra ra u (25 ) SUBU $X,$Y,$Z Subtract unsigned; no overflow $X u (u($y) u($z)) $X,$Y,Z Subtract unsigned immed.; no ovf. $X u (u($y) u(z)) NEG $X,Y,$Z Negate; signed, with overflow $X s (u(y) s($z)) u(y) s($z 2 63 ) ) ra ra u (25 ) $X,Y,Z Negate immediate; signed, with overflow $X s (u(y) s(z)) NEGU $X,Y,$Z Negate unsigned; no overflow $X s (u(y) s($z)) $X,Y,Z Negate unsigned immed.; no overflow $X s (u(y) u(z)) MUL $X,$Y,$Z Multiply; signed, with overflow $X s (s($y) s($z)) $X,$Y,Z Multiply immediate; signed, with ovf. $X s (s($y) u(z)) MULU $X,$Y,$Z Multiply unsigned; rh ($Y $Z) rh$x u128 (u($y) u($z)) $X,$Y,Z Multiply uns. imm.; rh ($Y Z) rh$x u128 (u($y) u(z))

65 2.3 MMIX Befehle 65 DIV Divide; signed, with overflow $X s (bs($y)/s($z)c) $X,$Y,$Z (case $Z 6= ) rr s ( s($y)%s($z)) $X,$Y,Z Divide immediate; signed, with ovf. $X u () (case $Z = ) rr $Y DIVU $X,$Y,$Z $X,$Y,Z Divide unsigned; no overflow; $X u128 ( bu(rd$y)/u($z)c ) (case u($z) > u(rd) ) rr u128 ( u(rd$y)%u($z)) Divide unsigned; no overflow; $X rd no overflow (case u($z) apple u(rd) ) rr $Y Divide unsigned immediate; $X u128 ( bu(rd$y)/u(z)c ) no overflow; (case u(z) > u(rd) ) rr u128 ( u(rd$y)%u(z)) Divide unsigned immedediate; $X rd no overflow (case u(z) apple u(rd) ) rr $Y a) In welchem Wertebereich können die Direktoperanden bei den Arithmetischen Befehlen liegen? b) Kann mit dem ADD Befehl 3+5in einer einzigen Codezeile berechnet werden? c) Wie kann man 5 3 in einer einzigen Codezeile berechnen? d) Was ist der Unterschied zwischen den Befehlen MUL und MULU?

66 66 2 Assemblerprogrammierung e) Geben Sie die MMIX-Befehle an, mit denen Sie x = a 2 +2 a b + b 2 mit Festkommazahlen berechnen. Nehmen Sie an, dass die Register a, b, und c bereits initialiert wurden und das Ergebnis in Register x gespeichert werden soll. Benutzen Sie Register buf1, buf2,... für Zwischenergebnisse, falls notwendig. Gegeben ist der folgende Programmcode: a IS $ b IS $1 c IS $2 d IS $3 buf1 IS $4 buf2 IS $5 LOC #1 Main SET b,1 SET c,2 SET d,3 f) Geben Sie MMIX-Befehle an, mit denen Sie a = c d b b+c+d berechnen. mit Festkommazahlen

67 2.3 MMIX Befehle 67 Arithmetische Befehle auf Gleitkommazahlen Befehl Operanden Name/Aktion Definition FADD $X,$Y,$Z Floating point add $X f ( f ($Y)+f ($Z)) FSUB $X,$Y,$Z Floating point subtract $X f ( f ($Y) f ($Z)) FMUL $X,$Y,$Z Floating point multiplication $X f ( f ($Y) f ($Z)) FDIV $X,$Y,$Z Floating point divide $X f ( f ($Y)/f ($Z)) FSQRT $X,$Z Square root $X f ( p f ($Z)) a) Geben Sie MMIX-Befehle an, die = in Register a ablegen.

68 68 2 Assemblerprogrammierung b) Geben Sie MMIX-Befehle an, die e = in Register b ablegen.

69 2.3 MMIX Befehle 69 c) Geben Sie MMIX-Befehle an, mit denen Sie x = a 2 +2 a b + b 2 mit Gleitkomma- Operationen berechnen. Nehmen Sie an, dass Register a und b mit Festkommazahlen initialisiert wurden und zunächst in Gleitkommazahlen umgewandelt werden müssen. Speichern Sie das Ergebnis als Gleitkommazahl in Register x. Benutzen Sie buf1, buf2,... als Pufferregister.

70 7 2 Assemblerprogrammierung Das Volumen einer Kugel berechnet sich zu V = 4 3 r 3. d) Vervollständigen Sie nachfolgend angegebenen MMIX-Code zur Berechnung des Volumens einer Kugel mit Radius r = cm. Speichern Sie das Volumen als Bit breite Gleitkommazahl an Adresse V. LOC Data_Segment PI OCTA #4921FB54442D18 as float V OCTA float r IS $ buf1 IS $1 buf2 IS $2 LOC #1 Main

71 2.3 MMIX Befehle 71 Schiebe-Befehle Befehl Operanden Name/Aktion Definition SL $X,$Y,$Z $X,$Y,Z Shift left; with overflow Shift left immediate; with ovf. $X u ( u($y u($z)) ) u($y) 2 u($z) 2 ) ra ra u (25 ) $X u ( u($y u(z)) ) u($y) 2 u(z) 2 ) ra ra u (25 ) SLU SR SRU $X,$Y,$Z Shift left uns., no overflow $X u ( u($y u($z)) ) $X,$Y,Z Shift left uns. immed.; no ovf. $X u ( u($y u(z)) ) $X,$Y,$Z Shift right; fill with sign $X $Y s u($z) $X,$Y,Z Shift right imm.; fill with sign $X $Y s u(z) $X,$Y,$Z Shift right unsigned; fill with $X $Y u u($z) $X,$Y,Z Shift right uns. imm.; fill w. $X $Y u u(z)

72 72 2 Assemblerprogrammierung a) Wie unterscheiden sich der SR und der SRU Befehl? b) In Register fpn ist eine Bit Gleitkommazahl abgelegt Inhalt Register fpn: s e f Geben Sie die MMIX-Befehle an, mit denen Sie s, e und f aus Register fpn extrahieren und in Register s, e und f ablegen.

73 2.3 MMIX Befehle 73 Logische Operationen auf Bit-Ebene Befehl Operanden Name/Aktion Definition AND ANDN $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u ( u(z)) $X,$Y,$Z Bitwise AND NOT $X $Y & $Z $X,$Y,Z Bitww AND NOT immed. $X $Y & u ( u(z)) ANDNL $X,YZ Bitw. AND NOT low wyde $X $X & u ( u(yz)) ANDNML $X,YZ Bw. AND NOT med. l. wd. $X $X & ( u ( u(yz)) 16) ANDNMH $X,YZ Bw. AND NOT med. h. wd. $X $X & ( u ( u(yz)) 32) ANDNH $X,YZ Bw. AND NOT high wyde $X $X & ( u ( u(yz)) 48) NAND OR $X,$Y,$Z Bitwise NOT AND $X ($Y & $Z) $X,$Y,Z Bitwise NOT AND immed. $X ( $Y & u ( u(z))) $X,$Y,$Z Bitwise OR $X $Y $Z $X,$Y,Z Bitwise OR immediate $X $Y u ( u(z)) ORL $X,YZ Bitwise OR low wyde $X $X u ( u(yz)) ORML $X,YZ Bitw. OR med. low wyde $X $X ( u ( u(yz)) 16) ORMH $X,YZ Bitw. OR med. high wyde $X $X ( u ( u(yz)) 32) ORH $X,YZ Bitwise OR high wyde $X $X ( u ( u(yz)) 48) ORN NOR XOR NXOR $X,$Y,$Z Bitwise OR NOT $X $Y $Z $X,$Y,Z Bitwise OR NOT immediate $X $Y u ( u(z)) $X,$Y,$Z Bitwise NOT OR $X ($Y $Z) $X,$Y,Z Bitwise NOT OR immediate $X ($Y u ( u(z))) $X,$Y,$Z Bitwise XOR $X $Y $Z $X,$Y,Z Bitwise XOR immediate $X $Y u ( u(z)) $X,$Y,$Z Bitwise NOT XOR $X ($Y $Z) $X,$Y,Z Bitw. NOT XOR immediate $X ($Y u ( u(z)))

74 74 2 Assemblerprogrammierung Bits löschen a) Welche Befehle verwendet man typischerweise um einzelne Bits zu löschen? Für die nachfolgenden Aufgaben soll jeweils dieses Programm verwendet werden: LOC Data_Segment A OCTA #AAAAAAAAAAAAAAAA a IS $ LOC #1 Main LDO a,a XXX XXXXX hier XXX XXXXX MMIX- XXX XXXXX Befehle XXX XXXXX einsetzen STO TRAP a,a,halt, b) Ersetzen Sie in obigem Programm XX... durch MMIX-Befehle, die in Register a Bit 21 mit einem AND-Befehl löschen.

75 2.3 MMIX Befehle 75 c) Ersetzen Sie in obigem Programm XX... durch MMIX-Befehle, die in Register a Bit 21 mit einem ANDN-Befehl löschen. d) Ersetzen Sie in obigem Programm XX... durch MMIX-Befehle, die in Register a Bit 21 mit einem ANDNML-Befehl löschen. Bits setzen a) Welche Befehle verwendet man typischerweise um Bits zu setzen? b) Ersetzen Sie in obigem Programm XX... durch MMIX-Befehle, die in Register a Bit 2 mit einem OR-Befehl auf 1 setzen. c) Ersetzen Sie in obigem Programm XX... durch MMIX-Befehle, die in Register a Bit 2 mit einem ORML-Befehl auf 1 setzen.

76 76 2 Assemblerprogrammierung XOR a) Erklären Sie den Effekt einer XOR-Operation. b) Was wird dem Ziel-Operanden einer XOR-Operation zugewiesen, wenn alle Bits des einen Quell-Operanden gelöscht () sind? c) Was wird dem Ziel-Operanden einer XOR-Operation zugewiesen, wenn alle Bits des einen Quell-Operanden gesetzt (1) sind?

77 2.3 MMIX Befehle 77 Gegeben ist das folgende Programm: LOC Data_Segment A OCTA #AAAAAAAAAAAAAAAA B OCTA # C OCTA a IS $ b IS $1 c IS $2 LOC #1 Main LDO a,a LDO b,b XXX XXXXX hier XXX XXXXX MMIX- XXX XXXXX Befehle XXX XXXXX einfügen STO TRAP c,c,halt, d) Ersetzen Sie XX... durch MMIX-Befehle die a invertieren und das Ergebnis in c ablegen.

78 78 2 Assemblerprogrammierung Zugriff auf Spezialregister Befehl Operanden Name/Aktion Definition GET $X,Z Get value of special purpose register $X r[z] PUT X,$Z Put value to special purpose register r[x] $Z X,Z Put immed. value to spec. purp. reg. r[x] u (u(z)) a) Tragen Sie in nachfolgender Befehlssequenz Befehle zur Berechnung der Festkommadivisioni dividend/divisor ein und speichern Sie das Ergebnis an der Marke Quotient und den Divisionsrest an der Marke Remainder ab. LOC Data_Segment Dividend OCTA 7 Divisor OCTA 3 Quotient OCTA Remainder OCTA dividend IS $ divisor IS $1 quotient IS $2 remainder IS $3 LOC #1 Main LDO dividend,dividend LDO divisor,divisor TRAP,Halt,

79 2.3 MMIX Befehle 79 Gegeben ist das Format des Spezialregisters ra. Interrupt Enable (Freischalten) Interrupt Event (Auftreten) R1 R D V W I O U Z X D V W I O U Z X Nicht verwendet Gleitkommazahl ungenau (z.b. 1. / 3.) Gleitkomma-Division durch Gleitkomma-Unterlauf Gleitkomma-Überlauf Unerlaubte Gleitkomma- Operation, z.b. sqrt(-1.) Überlauf bei Wandlung Gleitkomma- in Festkommazahl Festkomma-Überlauf Festkomma-Division durch Gleitkomma-Rundungsmodus : Nächster Wert (standard) 1: Abrunden (Richtung ) 1: Aufrunden (Richtung + ) 11: Abrunden (Richtung - ) 8 8 b) Geben Sie den MMIX-Code an, mit dem Sie den Gleitkomma-Rundungsmodus auf aufrunden setzen. c) Ändern Sie das Interrupt-Enable Bit integer overflow ( ) 1, 1 ) ).

80 8 2 Assemblerprogrammierung Verzweigungsbefehle Unbedingte Verzweigung Befehl Operanden Name/Aktion Definition JMP XYZ u ( u(@) + 4 s(xyz)) Bedingte Verzweigungen Befehl Operanden Name/Aktion Definition BZ $X,YZ Branch if zero s($x) u ( u(@) + 4 s(yz)) PBZ $X,YZ Probable br. if zero s($x) u ( u(@) + 4 s(yz)) BNZ $X,YZ Branch if nonzero s($x) 6= u ( u(@) + 4 s(yz)) PBNZ $X,YZ Prob. br. if nonzero s($x) 6= u ( u(@) + 4 s(yz)) BN $X,YZ Branch if negative s($x) < u ( u(@) + 4 s(yz)) PBN $X,YZ Prob. br. if negative s($x) < u ( u(@) + 4 s(yz)) BNN $X,YZ Branch if nonneg. s($x) u ( u(@) + 4 s(yz)) PBNN $X,YZ Prob. br. if nonneg. s($x) u ( u(@) + 4 s(yz)) BP $X,YZ Branch if positive s($x) > u ( u(@) + 4 s(yz)) PBP $X,YZ Prob. br. if positive s($x) > u ( u(@) + 4 s(yz)) BNP $X,YZ Branch if nonpositive s($x) apple u ( u(@) + 4 s(yz)) PBNP $X,YZ Prob. br. if nonpos. s($x) apple u ( u(@) + 4 s(yz)) BEV $X,YZ Branch if even u ( u(@)+4 s(yz)) PBEV $X,YZ Prob. branch if even u ( u(@)+4 s(yz)) BOD $X,YZ Branch if odd u ( u(@)+4 s(yz)) PBOD $X,YZ Prob. branch if odd u ( u(@)+4 s(yz))

81 2.3 MMIX Befehle 81 a) Benutzen Sie MMIX Verzweigungs-Befehle um folgenden C-Code zu implementieren: C-Code: if(a == ) { a = 1; } MMIX-Code: b) Benutzen Sie MMIX Verzweigungs-Befehle um folgenden C-Code zu implementieren: C-code: int a;... if(a <= ) { a = 1; } else { a = 2; } MMIX-Code:

82 82 2 Assemblerprogrammierung c) Geben Sie den MMIX-Code an, der nachfolgenden C-Code implementiert: C-Code: int a, b;... if(a > && b < ) { a = 1; } else if(a > b == ) { a = 2; } else { a = 3; } MMIX-Code:

83 2.3 MMIX Befehle 83 Befehle für Funktionsaufrufe Befehl Operanden Name/Aktion Definition GO $X,$Y,$Z $X,$Y,Z Go to location Go to location immediate $X u ( u(@) + 4) u ( u($y)+u($z)) $X u ( u(@) + 4) u ( u($y)+u(z)) a) Was ist der Haupt-Unterschied zwischen dem JMP-Befehl und dem GO-Befehl? b) Wo speichern GO-Befehle die Rücksprungadresse ab? c) Was ist die Rücksprungadresse? d) Wenn GO Absolute Adressierung verwendet: Wie wird die Abolute Adresse ( Bit) im 32 Bit breiten Befehlswort abgelegt? e) Geben Sie den Befehl an, mit dem Sie die Funktion fkt aufrufen und die Rücksprungadresse in Register ablegen.

84 84 2 Assemblerprogrammierung Namensräume a) Wozu dient der PREFIX-Befehl? b) Welche Auswirkung hat der Befehl PREFIX mein_prefix auf darauf folgende MMIX- Anweisungen? c) Wie kann man einen Namensraum beenden, d.h. wie kann man den Assembler anweisen, Marken/Namen nicht mehr umzuwandeln? d) Wie kann man innerhalb eines Namensraums verhindern, dass der Assembler einer bestimmten Marke bzw. einem bestimmten Namen die im PREFIX-Befehl angegebene Zeichenkette voranstellt?

85 2.3 MMIX Befehle 85 Gegeben ist folgender Programmcode: LOC Data_Segment label OCTA 1 PREFIX x label1 OCTA 2 PREFIX y label2 OCTA 3 PREFIX : a IS $ PREFIX z b IS $1 c IS $2 PREFIX : PREFIX main: LOC #1 XXX XXX XXX XXX XXX XXX XXX PREFIX : e) Ersetzen Sie XXX durch geeignete Marken/Befehle/Namen, die das Programm beginnen, das erste Octa ins Register laden, das zweite Octa ins Register 1 laden und das dritte Octa ins Register 2 laden.

86 86 2 Assemblerprogrammierung Stack a) Was ist der Stack? b) Wo beginnt der Stack und in welche Richtung wächst er? c) Was ist der Stack-Pointer? d) Wie werden Daten adressiert, die auf dem Stack liegen?

87 2.3 MMIX Befehle 87 e) Welche Operationen muss man ausführen um die Werte zweier Register (acht Byte breite Datenworte) auf dem Stack abzulegen? f) Wie wird der Stack bei Funktionsaufrufen verwendet?

88 88 2 Assemblerprogrammierung g) Geben Sie den Befehl an mit dem Sie für den Stack-Pointer ein globales Register reservieren und dieses mit x4 initialisieren. h) Warum initialisieren wir den Stack-Pointer mit x4, d.h. mit dem Beginn des Poolsegments, und nicht mit dem Ende des Datensegments? i) Geben Sie die MMIX-Befehle an, mit denen Sie Register $1 und $2 auf den Stack schreiben und dann die Funktion fkt aufrufen. Nehmen Sie an, dass Ihr Code im Namensraum Main: steht und fkt im Namensraum Fkt: unter dem Namen :fkt angelegt wurde. Sichern Sie die Rücksprungadresse in Register.

89 2.3 MMIX Befehle 89 Nehmen Sie an, dass Sie eine Funktion im Namensraum Fkt: implementieren. j) Geben Sie die MMIX-Befehle an, mit denen Sie die Register, 1, 2 und 3 auf den Stack sichern und anschließend zwei acht Byte breite Parameter vom Stack in die Register 1 und 2 einlesen. k) Zeichnen Sie, wie der Stack nach diesen Operationen aussieht.

90 9 2 Assemblerprogrammierung l) Im Hauptprogramm wurden die Parameter in die Register 1 und 2 geschrieben. Im Unterprogramm wurden Register 1 und 2 dann auf den Stack gesichert und dann dieselben Werte wieder vom Stack in Register 1 und 2 geladen, obwohl sich die Werte von Register 1 und 2 in der Zwischenzeit nicht geändert hatten. Warum haben wir und diesen Schritt nicht gespart sondern dieselben Werte, die in Registern 1 und 2 waren, nochmal reingeschrieben? m) Warum speichert man die Rücksprungadresse auf dem Stack? n) Was würde passieren, wenn der Stack so groß wird, dass er mit den Daten zusammenstößt, die am Beginn des Datensegments liegen?

91 2.3 MMIX Befehle 91 o) Geben Sie die MMIX-Befehle an, mit denen Sie den Inhalt von Register 3 als Ergebnis auf dem Stack ablegen, dann die Register, 1, 2 und 3 wiederherstellen und anschließend zurück zum Funktionsaufrufer springen. p) Nehmen Sie an, Sie sind wieder im Hauptprogramm. Geben Sie die Befehle an mit denen Sie das Ergebnis der Funktion vom Stack in das Register 1 einlesen. q) Warum muss der Stack-Pointer angepasst werden nachdem das Ergebnis vom Stack geladen wurde?

6.5 MMIX Befehle 287. LOC $254 BYTE 1 WYDE #1234 OCTA #56789ABC 0x x x

6.5 MMIX Befehle 287. LOC  $254 BYTE 1 WYDE #1234 OCTA #56789ABC 0x x x 6.5 MMIX Befehle 287 T q) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergeben würde.

Mehr

0x01? 0x01. 0x12 0x34. 0x34 0x12 0xBC 0x00 0x00 0x9A 0x00 0x78. 0x00 0x56. 0x56 0x00 0x78 0x00 0x9A 0x00 0xBC 0x00. 6.

0x01? 0x01. 0x12 0x34. 0x34 0x12 0xBC 0x00 0x00 0x9A 0x00 0x78. 0x00 0x56. 0x56 0x00 0x78 0x00 0x9A 0x00 0xBC 0x00. 6. 6.5 MMIX Befehle 287 T q) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergeben würde.

Mehr

T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen?

T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? - 282 6 MMIX-Prozessor T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? f) Nehmen Sie an, dass die vorzeichenbehaftete 8 Bit breite Zahl -64 mit dem LDB-Befehl

Mehr

Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits abgelegt werden müssen.

Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits abgelegt werden müssen. 256 6 MMIX-Prozessor Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits 3124 abgelegt werden müssen! 0x0 0x1 0x2 0x3 0x4 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 TRAP

Mehr

Übungsblätter zur Vorlesung IT-Systeme 1. 1 Zahldarstellung und Codierung

Übungsblätter zur Vorlesung IT-Systeme 1. 1 Zahldarstellung und Codierung Hochschule für angewandte Wissenschaften (FH) München Wintersemester 2009/2010 Fakultät für Informatik und Mathematik 11. Januar 2010 Prof. Dr. A. Böttcher Übungsblätter zur Vorlesung IT-Systeme 1 1 Zahldarstellung

Mehr

T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit.

T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit. 6.5 MMIX Befehle 265 T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit. T b) Was ist der Unterschied zwischen vorzeichenbehaftetem

Mehr

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren,

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren, 6.4 MMIX-Programme 251 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort

Mehr

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren,

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren, 6.4 MMIX-Programme 235 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort

Mehr

Bachelorprüfung Modul Computertechnik

Bachelorprüfung Modul Computertechnik Prüfungsfähigkeit: Bachelorprüfung Modul Computertechnik Computersysteme 24.7.24 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich

Mehr

276 6 MMIX-Prozessor. Befehl Operanden Name/Aktion Definition. $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) AND

276 6 MMIX-Prozessor. Befehl Operanden Name/Aktion Definition. $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) AND 276 6 MMIX-Prozessor Logische Operationen auf Bit-Ebene Befehl Operanden Name/Aktion Definition AND ANDN $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) $X,$Y,$Z Bitwise

Mehr

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment.

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment. 6.3 Speicher 233 Virtueller Speicher Die gezeigte Einteilung des Speichers in verschiedene Segmente bezieht sich auf den sog. virtuellen Speicher. Virtueller Speicher meint, dass die Speicheradressen,

Mehr

GOP Computertechnik. Computersysteme

GOP Computertechnik. Computersysteme Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 7.8.27 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer

Mehr

den Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt

den Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt 242 6 MMIX-Prozessor 64 MMIX-Programme MMIX-Programme bzw Assembler-Programme für den MMIX-Prozessor sind Quelltext- Dateien mit Befehlen für den MMIX-Prozessor; die vom MMIX unterstützen Befehle nennt

Mehr

GOP Computertechnik. Computersysteme

GOP Computertechnik. Computersysteme Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 3.7.2 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer

Mehr

k) Wie kann man beim MMIX auf die Parameter zugreifen? $1 + 8 $

k) Wie kann man beim MMIX auf die Parameter zugreifen? $1 + 8 $ 63 Speicher 241 k) Wie kann man beim MMIX auf die Parameter zugreifen? $0 : arge $1 : argv $1 +0 Virtueller Speicher $1 + 8 $1 16 +,, ARGUED Argus argv IZJ - a) Wenn alle Programme an Adresse 0x100 beginnen

Mehr

GOP Computertechnik. Computersysteme Probeklausur 2

GOP Computertechnik. Computersysteme Probeklausur 2 Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!

Mehr

GOP Computertechnik. Computersysteme

GOP Computertechnik. Computersysteme Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 22.7.26 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle

Mehr

MMIX Assembler Programmierung Dr. Michael Zwick. Zahldarstellung

MMIX Assembler Programmierung Dr. Michael Zwick. Zahldarstellung MMIX Assembler Programmierung Dr. Michael Zwick Zahldarstellung Festkommazahlen Vorzeichenlose Zahlen n Bit => 2 n verschiedene Werte darstellbar Wertebereich: 0... 2 n - 1 Kodierung: 0... 000, 0... 001,

Mehr

T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät?

T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät? 234 6 MMIX-Prozessor Aufgaben Verständnis Speicher T a) Wozu verwendet ein Computer Arbeitsspeicher? T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard?

Mehr

MMIX Assembler Programmierung. Computersysteme 1 Dr. Michael Zwick

MMIX Assembler Programmierung. Computersysteme 1 Dr. Michael Zwick MMIX Assembler Programmierung Computersysteme 1 Dr. Michael Zwick Zahldarstellung Festkommazahlen Vorzeichenlose Zahlen n Bit => 2 n verschiedene Werte darstellbar Wertebereich: 0... 2 n - 1 Kodierung:

Mehr

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren,

q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, At AZOCTA 6.4 MMIX-Programme 235 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites

Mehr

GOP Computertechnik. Computersysteme Probeklausur 2

GOP Computertechnik. Computersysteme Probeklausur 2 Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!

Mehr

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München Aufgabenkatalog Computersysteme 1 Dr. Michael Zwick Technische Universität München Inhalt 1 Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................

Mehr

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment.

6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment. 6.3 Speicher 233 Virtueller Speicher Die gezeigte Einteilung des Speichers in verschiedene Segmente bezieht sich auf den sog. virtuellen Speicher. Virtueller Speicher meint, dass die Speicheradressen,

Mehr

GOP Computertechnik. Computersysteme Probeklausur 1

GOP Computertechnik. Computersysteme Probeklausur 1 Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!

Mehr

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München

Aufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München Aufgabenkatalog Computersysteme Dr. Michael Zwick Technische Universität München Inhalt Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................

Mehr

Bachelorprüfung Modul Computertechnik

Bachelorprüfung Modul Computertechnik Prüfungsfähigkeit: Bachelorprüfung Modul Computertechnik Computersysteme Probeklausur 2 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich

Mehr

T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes?

T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? 222 6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? Kleiner aber Schneller Speicher T b) Wo findet man Register in einem ComputerSystem? Prozessor T c) Daten welcher Größenordnung

Mehr

T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben?

T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? 236 6 MMIX-Prozessor T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? Byte : Reine besondere Eigenschaft wyde : durch 2 tutbar eetztesrstto Tetra : dutch 4 teicbar

Mehr

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

Welche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt? 6.5 MMIX Befehle 291 Aufrufkonventionen Eine Aufrufkonvention (engl. calling convention) legt fest, wie einer Funktion Parameter übergeben werden und wie der Rückgabewert zurückgegeben wird. Damit spezifiziert

Mehr

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W,

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W, 81 1 Aufgaben Wie funktioniert ein Computer Netzteil a) Welche Spannungen werden von PCNetzteilen bereitgestellt? 3 BV 5W 12W 5 V 12W b) Warum können PCNetzteile hohe Leistungen liefern obwohl die eingebauten

Mehr

4. TÜ-Zusammenfassung zum Modul Computersysteme

4. TÜ-Zusammenfassung zum Modul Computersysteme 4. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 6. Kapitel MMIX 256 Allzweckregister um Operanden abzuspeichern 32 Spezialregister bilden Schnittstelle zwischen Soft- und Hardware ALU(Arithmetic

Mehr

IM P label = Bedingte Verzweigungen

IM P label = Bedingte Verzweigungen 298 6 MMIX-Prozessor Verzweigungsbefehle Unbedingte Verzweigung 23 0 opc X 4 z Befehl Operanden Name/Aktion Definition JMP XYZ Jump @ u64 0 ( u(@) + 4 s(xyz)) IM P label = Bedingte Verzweigungen Befehl

Mehr

MMIX - Crashkurs. TI-II Rechnerarchitektur

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

Mehr

LOC Data_Segment

LOC Data_Segment 65 MMIX Befehle 291 In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: : LOC Data_Segment a iii GREG @ :;fff ±t A OCTA #FFFFFFFFFFFFFFFF B TETRA #87654321

Mehr

1. TÜ-Zusammenfassung zum Modul Computersysteme

1. TÜ-Zusammenfassung zum Modul Computersysteme 1. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 1. Kapitel Netzteil: Aufbau: Bereitgestellte Spannungen: 12V, -12V, 5V, -5V und 3.3V Leistung: Da bei Transformatoren die übertragbare

Mehr

Speicher. T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? einige Byte.

Speicher. T c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes? einige Byte. R lzieloperanden rich 222 6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? ein Schneller ate kleiner Speicher T b) Wo findet man Register in einem ComputerSystem? im Haupt

Mehr

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

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: 1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address

Mehr

6 MMIX-Prozessor. 6.1 Programmiermodell. S.219 alles wichtig. 6.2 Register. Allzweckregister

6 MMIX-Prozessor. 6.1 Programmiermodell. S.219 alles wichtig. 6.2 Register. Allzweckregister 6 MMIXProzessor Modell eines Prozessors (keine LegacyEffekte) RegisterRegister Architektur mit 256 Allzweck Register und 32 Spezialregister Wortbreite der Register, des Rechenwerks, der Daten und AdressBusse:

Mehr

MMIX: Einführung. Einführung. Ressourcen. Aussprache: em-micks Autor: Donald Knuth

MMIX: Einführung. Einführung. Ressourcen. Aussprache: em-micks Autor: Donald Knuth MMIX: Einführung Einführung Aussprache: em-micks Autor: Donald Knuth MMIX ist ein virtueller Prozessor, mit eigener Programmiersprache MMIX-Programme sind maschinennah, d.h. eng an die Prozessorhardware

Mehr

Assembler als Übersetzer

Assembler als Übersetzer 4 ProzessorDatenpfad Assembler als Übersetzer Um ein AssemblerProgramm für den Universalrechner zu übersetzen iteriert der Assembler der Reihe nach über alle Programmzeilen und führt für jede Zeile folgendes

Mehr

LOC Data_Segment A OCTA a) Bestimmen Sie das 32 Bit breite Befehlswort des Befehls JMP Start.

LOC Data_Segment A OCTA a) Bestimmen Sie das 32 Bit breite Befehlswort des Befehls JMP Start. humpl 6.5 MMIX Befehle 299 Betrachten Sie die folgenden Befehle: LOC Data_Segment GREG @ A OCTA 1000 a IS $1 b IS $2 LOC #100 Main LDB aa Start SUB aa1 swathe 2 Befehl OR aa0 BZ aend JMP Start End TRAP

Mehr

Technische Informatik II Rechnerarchitektur

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

Mehr

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

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten)

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten) 62 Register 205 Spezialregister Spezialregister (engl special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck, dh jedes Spezialregister hat seine ganz eigene Aufgabe Spezialregister

Mehr

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor 218 6 MMI-Prozessor 6 MMI-Prozessor In diesem Kapitel beschäftigen wir uns mit dem MMI-Prozessor. Der MMI-Prozessor wurde von Donald Ervin Knuth zu Lehr- und Forschungszwecken an der Stanford University

Mehr

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor 218 6 MMI-Prozessor 6 MMI-Prozessor In diesem Kapitel beschäftigen wir uns mit dem MMI-Prozessor. Der MMI-Prozessor wurde von Donald Ervin Knuth zu Lehr- und Forschungszwecken an der Stanford University

Mehr

Zur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden.

Zur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden. 70 Arithmetische Schaltungen Multiplikation vorzeichenbehafteter Zahlen Zur Multiplikation vorzeichenbehafteter Zahlen (er-komplement) kann auf die Schaltung für vorzeichenlose Multiplikation zurückgegriffen

Mehr

4 Prozessor-Datenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung

4 Prozessor-Datenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung 4 ProzessorDatenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung Die Idee ist es nun nicht unflexible Schaltungen, die aus einer großen Anzahl von Komponenten bestehen und nur eine Aufgabe erledigen

Mehr

T e) Wie wird im Speicher an der Adresse 0x die 32 Bit-Zahl

T e) Wie wird im Speicher an der Adresse 0x die 32 Bit-Zahl 63 Speicher 237 T e) Wie wird im Speicher an der Adresse 0x2000000000000008 die 32 BitZahl 0x12345678 abgelegt im Falle einer BigEndian und einer LittleEndianMaschine? Adresse Big Endian Little Endian

Mehr

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

Übersicht. Quelle: Kapitel 3, 4 und 5 aus Anlauff, Böttcher, Ruckert: Das MMIX-Buch. Springer, 2002 Übersicht Wiederholung: ein einfaches MMIX-Programm Speicherorganisation, Speicherzugriff Zahlen und Arithmetik Zeichenketten und Ein-/Ausgabe Kontrollstrukturen Unterprogramme Quelle: Kapitel 3, 4 und

Mehr

RO.RO, ADD RO, 120,121 MUL 120,120,121 INPUT RO, MUL INPUT 120,0 ADD RO, INPUT 121,1 INPUT R 1,2 INPUT 121,2 RO, IN put 121,1 N RO, ROIRA SET 121,3

RO.RO, ADD RO, 120,121 MUL 120,120,121 INPUT RO, MUL INPUT 120,0 ADD RO, INPUT 121,1 INPUT R 1,2 INPUT 121,2 RO, IN put 121,1 N RO, ROIRA SET 121,3 6 4 Prozessor-Datenpfad a) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die drei Seiten eines Würfels von den Eingängen, und einliest, das Volumen des Würfels berechnet

Mehr

Namensräume - der PREFIX-Befehl

Namensräume - der PREFIX-Befehl 65 MMIX Befehle 33 Namensräume - der PREFIX-Befehl Der PREFIX-Befehl ist ein Assembler-Befehl Er wird verwendet um in einem Programm vorkommenden Namen vom Assembler-Präprozessor durch Voranstellen einer

Mehr

Hinweise. Auswertung. Einführung in die Technische Informatik WS 2007/2008 Bachelor-Klausur (TI) Aachen, 05. März 2008 SWS: V4/Ü2, ECTS: 7

Hinweise. Auswertung. Einführung in die Technische Informatik WS 2007/2008 Bachelor-Klausur (TI) Aachen, 05. März 2008 SWS: V4/Ü2, ECTS: 7 Professor Dr.-Ing. Stefan Kowalewski Dipl.-Inform. Philipp Kranen Dipl.-Inform. Andreas Polzer LEHRSTUHL INFORMATIK XI SOFTWARE FÜR EINGEBETTETE SYSTEME Aachen, 5. März 28 SWS: V4/Ü2, ECTS: 7 Einführung

Mehr

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge

Mehr

SUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4.

SUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4. 33 7 Pipelining Gegeben ist der folgende Ausschnitt aus einer MMIX Codesequenz: SUB $2,$5, Zeile LDO $5,$,2* Zeile 2 OR $,$2,$3 Zeile 3 SRU $,$5,$ Zeile 4 Zeile und 3 wg b) Geben Sie alle auftretenden

Mehr

Vorzeichenbehaftete Festkommazahlen

Vorzeichenbehaftete Festkommazahlen 106 2 Darstellung von Zahlen und Zeichen Vorzeichenbehaftete Festkommazahlen Es gibt verschiedene Möglichkeiten, binäre vorzeichenbehaftete Festkommazahlen darzustellen: Vorzeichen und Betrag EinerKomplement

Mehr

Technische Informatik II Rechnerarchitektur

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

Mehr

1 Aufgaben zu Wie funktioniert ein Computer?

1 Aufgaben zu Wie funktioniert ein Computer? 71 1 Aufgaben zu Wie funktioniert ein Computer? Netzteil a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 3.3 V, 5 V, 12 V, -5 V, -12 V. b) Warum können PC-Netzteile hohe Leistungen liefern,

Mehr

4.3 Assembler 207 SET R0,0 INPUT R1,0 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,1 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,2 MUL R1,R1,R1 ADD R0,R0,R1 SQRT R0,R0

4.3 Assembler 207 SET R0,0 INPUT R1,0 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,1 MUL R1,R1,R1 ADD R0,R0,R1 INPUT R1,2 MUL R1,R1,R1 ADD R0,R0,R1 SQRT R0,R0 4. Assembler 27 c) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die an den Eingängen, 1 und 2 anliegenden Koordinaten eines Vektors im dreidimensionlen Raum einliest,

Mehr

Teil 2: Rechnerorganisation

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

Mehr

Assembler am Beispiel der MIPS Architektur

Assembler am Beispiel der MIPS Architektur Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.

Mehr

2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1=

2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1= Arithmetische Schaltungen c) Vervollständigen Sie nachfolgend abgebildeten Zustands-Automaten so, dass er den Multiplizierer wie gewünscht steuert. Nehmen Sie an, dass Sie zur Detektion des Schleifen-Abbruchs

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

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

Mehr

3.8 Sequentieller Multiplizierer 159

3.8 Sequentieller Multiplizierer 159 .8 Sequentieller Multiplizierer 59 Nachfolgende Abbildung zeigt den (unvollständigen) Aufbau einer Schaltung zur Implementierung des gezeigten Multiplikationsverfahrens. b) Vervollständigen Sie die Schaltung

Mehr

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten)

Nachfolgende Abbildung zeigt das Spezialregister ra, das Arithmetische Status Register. Interrupt Enable (Freischalten) 62 Register 221 Spezialregister Spezialregister (engl special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck dh jedes Spezialregister hat seine ganz eigene Aufgabe Spezialregister

Mehr

4.3 Assembler. Assembler als leicht verständliche hardwarenahe Sprache Prozessor-Datenpfad

4.3 Assembler. Assembler als leicht verständliche hardwarenahe Sprache Prozessor-Datenpfad 24 4 Prozessor-Datenpfad 4.3 Assembler Die Programmierung des Universalrechners durch Niederschreiben der einzelnen Befehlswort-Bits aller Befehle ist sehr aufwendig. Aus diesem Grund wird dieser Schritt

Mehr

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

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

Mehr

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Die Bildauswahl erfolgte in Anlehnung an das Alter der Kinder Prof. J. Walter Bitte römische Zahlen im Geschichtsunterricht! Messsystem mit Mikrocontroller

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 21 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, dh Y = f (X

Mehr

Hinweise. Auswertung. Einführung in die Technische Informatik WS 2006/2007 Bachelor-Klausur. Aachen, 07. März 2007 SWS: V2/Ü2, ECTS: 4

Hinweise. Auswertung. Einführung in die Technische Informatik WS 2006/2007 Bachelor-Klausur. Aachen, 07. März 2007 SWS: V2/Ü2, ECTS: 4 Professor Dr.-Ing. Stefan Kowalewski Dipl.-Inform. Andreas Polzer Dipl.-Inform. Ralf Mitsching LEHRSTUHL INFORMATIK XI SOFTWARE FÜR EINGEBETTETE SYSTEME Aachen, 07. März 2007 SWS: V2/Ü2, ECTS: 4 Einführung

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.

Mehr

2.4 Codierung von Festkommazahlen c) Wie lässt sich im Zweier-Komplement ein Überlauf feststellen? neg. pos.

2.4 Codierung von Festkommazahlen c) Wie lässt sich im Zweier-Komplement ein Überlauf feststellen? neg. pos. 24 Codierung von Festkommazahlen 115 Aufgaben a) Codieren Sie für n 8 und r 0 die folgenden Zahlen binär im Zweier Komplement EC +10 : 00001010 11110101 Dezimal Binär 10 1111 0110 + 0 ch 1111011 0 20 00000000

Mehr

stackpointer dentals Basisadresse Arbeitsspeicher, Program mdaten wte Reicksprungadreson ltbergabe parameter Dater warden immeruber stack pointer

stackpointer dentals Basisadresse Arbeitsspeicher, Program mdaten wte Reicksprungadreson ltbergabe parameter Dater warden immeruber stack pointer 322 6 MMIXProzessor T i) Was ist der Stack? Bereich im Program mdaten wte lokale Arbeitsspeicher der lokale Register Reicksprungadreson ltbergabe parameter enthaet T j) Wo beginnt der Stack und in welche

Mehr

Einführung Programmierpraktikum C Michael Zwick

Einführung Programmierpraktikum C Michael Zwick Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Rechnergrundlagen SS Vorlesung

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

Mehr

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben Zwischenklausur Informatik, WS 206/7 4.2.206 Lösungen zu den Aufgaben. Gegeben sind folgende Dualzahlen in Zweierkomplementdarstellung. Geben Sie den jeweils zugehörigen Dezimalwert an! a) entspricht der

Mehr

Sprungbefehle und Kontroll-Strukturen

Sprungbefehle und Kontroll-Strukturen Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 27 5. Vorlesung Inhalt Interpretation hexadezimal dargestellter Integer-Zahlen Little Endian / Big Endian Umrechnung in eine binäre Darstellung Ausführung von Additionen Optimierte

Mehr

"Organisation und Technologie von Rechensystemen 4"

Organisation und Technologie von Rechensystemen 4 Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation

Mehr

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen 3 Zahlendarstellung - Zahlensysteme - b-adische Darstellung natürlicher Zahlen - Komplementbildung - Darstellung ganzer und reeller Zahlen Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen......

Mehr

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer. Digitaltechnik Aufgaben + Lösungen 2: Zahlen und Arithmetik Aufgabe 1 Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen a) 4 D b) 13 D c) 118 D d) 67 D Teilen durch die Basis des Zahlensystems.

Mehr

Dividend / Divisor = Quotient + Rest 9876 : 0054= : 0054= = -10 (negativ bleibt bei 1 mal) 4476 : 0054=018

Dividend / Divisor = Quotient + Rest 9876 : 0054= : 0054= = -10 (negativ bleibt bei 1 mal) 4476 : 0054=018 78 Arithmetische Schaltungen Division Allgemein Bei der Division gilt allgemein: Dividend / Divisor = Quotient + Rest Division zur Basis, wie in der Schule gelernt: 9876 : 54= Runde Teildividend = 9 Passt

Mehr

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

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 27 4. Vorlesung Inhalt Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag 2er-Komplement BCD Addition und Subtraktion binär dargestellter Zahlen Carry und Overflow Little Endian

Mehr

Das Verfahren in Hardware

Das Verfahren in Hardware Das Verfahren in Hardware Links Shift 8 Bit Multiplikand Demonstration mit 1001 * 0110 = 110110 2.Links Shift 8 Bit ALU Rechts Shift 4 Bit Multiplikator 3.Rechts Shift 8 Bit Produkt 1. Produkt = Produkt

Mehr

Von-Neumann-Architektur

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

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

Datenpfad einer einfachen MIPS CPU

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

Mehr

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche

Mehr

Assembler als Übersetzer

Assembler als Übersetzer 4 ProzessorDatenpfad Assembler als Übersetzer Um ein AssemblerProgramm für den Universalrechner zu übersetzen iteriert der Assembler der Reihe nach über alle Programmzeilen und führt für jede Zeile folgendes

Mehr

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation nach der Schulmethode Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel: Multiplikand A: 1 1 0 1 0 Multiplikator

Mehr

Datenpfad einer einfachen MIPS CPU

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

Mehr

Computersysteme. Serie 11

Computersysteme. Serie 11 Christian-Albrechts-Universität zu Kiel Institut für Informatik Lehrstuhl für Technische Informatik Prof.Dr. Manfred Schimmler Dr.-Ing. Christoph Starke M.Sc. Vasco Grossmann Dipl.-Inf. Johannes Brünger

Mehr