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 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 Motivation Direkt abgebildeter Cache Voll-Assoziativer Cache Set-Assoziativer/Mengen-Assoziativer Cache

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!"#"$% &'()*+,-.%(*/%12'(*/%! x.. x..1 x..2 x..3 x..4 x..5 x..6 x..7 x.. 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ν x.. x1.. x2.. x3.. x4.. x5.. x6.. x7.. 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] ν CMP[I] ν BN[B] ν+π PBN[B] 3ν-π CSN[I] ν ZSN[I] ν ADDU[I] ν CMPU[I] ν BZ[B] ν+π PBZ[B] 3ν-π CSZ[I] ν ZSZ[I] ν SUB[I] ν NEG[I] ν BP[B] ν+π PBP[B] 3ν-π CSP[I] ν ZSP[I] ν SUBU[I] ν NEGU[I] ν BOD[B] ν+π PBOD[B] 3ν-π CSOD[I] ν ZSOD[I] ν 2ADDU[I] ν SL[I] ν BNN[B] ν+π PBNN[B] 3ν-π CSNN[I] ν ZSNN[I] ν 4ADDU[I] ν SLU[I] ν BNZ[B] ν+π PBNZ[B] 3ν-π CSNZ[I] ν ZSNZ[I] ν 8ADDU[I] ν SR[I] ν BNP[B] ν+π PBNP[B] 3ν-π CSNP[I] ν ZSNP[I] ν 16ADDU[I] ν SRU[I]ν BEV[B] ν+π PBEV[B] 3ν-π CSEV[I] ν ZSEV[I] ν x1.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. LDB[I] µ+ν LDSF[I] µ+ν STB[I] µ+ν STSF[I] µ+ν LDBU[I] µ+ν LDHT[I] µ+ν STBU[I] µ+ν STHT[I] µ+ν LDW[I] µ+ν CSWAP[I] 2µ+2ν STW[I] µ+ν STCO[I] µ+ν LDWU[I] µ+ν LDUNC[I] µ+ν STWU[I] µ+ν STUNC[I] µ+ν LDT[I] µ+ν LDVTS[I] ν STT[I] µ+ν SYNCD[I] ν LDTU[I] µ+ν PRELD[I] ν STTU[I] µ+ν PREST[I] ν LDO[I] µ+ν PREGO[I] ν STO[I] µ+ν SYNCID[I] ν LDOU[I] µ+ν GO[I] 3ν STOU[I] µ+ν PUSHGO[I] 3ν x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf.. JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν OR[I] ν BDIF[I] ν SETH ν ORN[I] ν WDIF[I] ν SETMH ν NOR[I] ν TDIF[I] ν SETML ν XOR[I] ν ODIF[I] ν SETL ν INCH ν INCHM ν INCML ν INCL ν AND[I] ν MUX[I] ν ORH ν ANDN[I] ν SADD[I] ν ORMH ν NAND[I] ν MOR[I] ν ORML ν NXOR[I] ν MXOR[I] ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν xc.. xd.. xe.. xf.. x..8 x..9 x..a x..b x..c x..d x..e x..f!!! g)! Was bedeutet ν? +! +! ;88*/;'B*!!&;<*PB42*<'7/! h) Was bedeutet π?! ADD $1,$2,$3K!7;3,B!;88*/;'B*5!/'!/*<!"D!12*<'7/!*;7!Q*=;(B*<!;(B!M7/!P*;7*!R',-!! ADD /*<!1234/*!/*<!;88*/;'B*#O'<;'7B*!*;7*(!)*+*,-(!;(B!;88*<!M8!I!,S,*<!'-(!/;*!7;3,B# ;88*/;'B*#O'<;'7B*!/*(!)*+*,-(!(B*,B!;7!/*<!&422*-)&'$("!'-(4!<*3,B(9!! &4--'<#R*;3,*7(! $9! *<P'77B5! ;8! V<4=<'88! 7;3,B! *W2-;C;B! 8M((!!!! "#$%

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, x 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). f 32 (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) s b (x): Gibt das b Bit breite im 2er-Komplement codiert Bitmuster zurück das dem Wert x entspricht. u b (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,4: LDB $,$254,9: LDBU $,$254,9: n) Nehmen Sie die gezeigte Speicherbelegung an und geben Sie hexadezimal alle Bit des Registers nach Ausführung der folgenden Befehle an: LDT $,$254,4: LDT $,$254,5: LDT $,$254,9: LDTU $,$254,9: 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,12:

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!"#"$% &'()*+,-.%(*/%12'(*/%! &'(!)*+*,-(#.*-/!1234/*5!67*8434/*9!:;</!=*8>((!7'3,+4-=*7/*<!?'@*--*!A@*<(*BCBD!! x.. x..1 x..2 x..3 x..4 x..5 x..6 x..7 x.. 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ν x.. x1.. x2.. x3.. x4.. x5.. x6.. x7.. 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] ν CMP[I] ν BN[B] ν+π PBN[B] 3ν-π CSN[I] ν ZSN[I] ν ADDU[I] ν CMPU[I] ν BZ[B] ν+π PBZ[B] 3ν-π CSZ[I] ν ZSZ[I] ν SUB[I] ν NEG[I] ν BP[B] ν+π PBP[B] 3ν-π CSP[I] ν ZSP[I] ν SUBU[I] ν NEGU[I] ν BOD[B] ν+π PBOD[B] 3ν-π CSOD[I] ν ZSOD[I] ν 2ADDU[I] ν SL[I] ν BNN[B] ν+π PBNN[B] 3ν-π CSNN[I] ν ZSNN[I] ν 4ADDU[I] ν SLU[I] ν BNZ[B] ν+π PBNZ[B] 3ν-π CSNZ[I] ν ZSNZ[I] ν 8ADDU[I] ν SR[I] ν BNP[B] ν+π PBNP[B] 3ν-π CSNP[I] ν ZSNP[I] ν 16ADDU[I] ν SRU[I]ν BEV[B] ν+π PBEV[B] 3ν-π CSEV[I] ν ZSEV[I] ν x1.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. LDB[I] µ+ν LDSF[I] µ+ν STB[I] µ+ν STSF[I] µ+ν LDBU[I] µ+ν LDHT[I] µ+ν STBU[I] µ+ν STHT[I] µ+ν LDW[I] µ+ν CSWAP[I] 2µ+2ν STW[I] µ+ν STCO[I] µ+ν LDWU[I] µ+ν LDUNC[I] µ+ν STWU[I] µ+ν STUNC[I] µ+ν LDT[I] µ+ν LDVTS[I] ν STT[I] µ+ν SYNCD[I] ν LDTU[I] µ+ν PRELD[I] ν STTU[I] µ+ν PREST[I] ν LDO[I] µ+ν PREGO[I] ν STO[I] µ+ν SYNCID[I] ν LDOU[I] µ+ν GO[I] 3ν STOU[I] µ+ν PUSHGO[I] 3ν x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf.. JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν OR[I] ν BDIF[I] ν SETH ν ORN[I] ν WDIF[I] ν SETMH ν NOR[I] ν TDIF[I] ν SETML ν XOR[I] ν ODIF[I] ν SETL ν INCH ν INCHM ν INCML ν INCL ν AND[I] ν MUX[I] ν ORH ν ANDN[I] ν SADD[I] ν ORMH ν NAND[I] ν MOR[I] ν ORML ν NXOR[I] ν MXOR[I] ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν xc.. xd.. xe.. xf.. x..8 x..9 x..a x..b x..c x..d x..e x..f!!! &'(!*<(B*!E;@@-*!F!);B#G*<B9!/*(!1234/*(!*7B(2<;3,B!/*<!&422*-C*;-*!H!@;(!IJ95!;7!/*<!(;3,!/*<!)*# Gegeben +*,-(34/*!@*+;7/*BD! sind die folgenden Befehle:!! &'(!C:*;B*!E;@@-*!/*(!1234/*(!*<=;@B!(;3,!:;*!+4-=BK! LOC Data_Segment!! 6L)!);B!E<D!"9!/*(!C:*;B*7!E;@@-*(! A+! H5!:*77!(;3,!/*<!)*+*,-!;8!4@*<*7!?*;-!/*<!&422*-!"#$"!@*+;7/*B! BYTE #12 +! I5!:*77!(;3,!/*<!)*+*,-!;8!M7B*<*7!?*;-!/*<!&422*-!"#$"!@*+;7/*B!!!! );B(!$5!I!M7/!H!/*(!C:*;B*7!E;@@-*(!*7B(2<*3,*7!/*<!%&'$("!H!@;(!%95!;7!/*8!(;3,!/*<!)*+*,-(# LOC #1 34/*!@*+;7/*B! Main LDA $,A! [I]!@*/*MB*BK!N88*/;'B*#O'<;'7B*!/*(!)*+*,-(! GETA $,Main! ;88*/;'B*!!&;<*PB42*<'7/! TRAP,Halt,! ADD $1,$2,$3K!7;3,B!;88*/;'B*5!/'!/*<!"D!12*<'7/!*;7!Q*=;(B*<!;(B!M7/!P*;7*!R',-!! ADD $1,$2,3K!;88*/;'B*5!/'!'-(!"D!12*<'7/!*;7*!R',-!'7=*=*@*7!;(B!M7/!P*;7!Q*=;(B*<!! /*<!1234/*!/*<!;88*/;'B*#O'<;'7B*!*;7*(!)*+*,-(!;(B!;88*<!M8!I!,S,*<!'-(!/;*!7;3,B# d) In welches 32 Bit breite Befehlswort wird der Befehl GETA $,Main übersetzt? ;88*/;'B*#O'<;'7B*!/*(!)*+*,-(!(B*,B!;7!/*<!&422*-)&'$("!'-(4!<*3,B(9!! *;7*!;88*/;'B*#O'<;'7B*!/*(!)*+*,-(!:;</!T48!U((*8@-*<!'MB48'B;(3,!'7,'7/!/*(!+*,-*7/*7! &4--'<#R*;3,*7(! $9! *<P'77B5! :*(,'-@! ;8! V<4=<'88! 7;3,B! *W2-;C;B! ADDI!=*(3,<;*@*7!:*</*7! 8M((!!!! "#$%

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 #FFFF FFFF FFFF FFFF 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 u 128 (u($y) u($z)) $X,$Y,Z Multiply uns. imm.; rh ($Y Z) rh$x u 128 (u($y) u(z))

65 2.3 MMIX Befehle 65 DIV Divide; signed, with overflow $X s ( s($y)/s($z) ) $X,$Y,$Z (case $Z ) 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 u 128 ( u(rd$y)/u($z) ) (case u($z) > u(rd) ) rr u 128 ( u(rd$y) % u($z) ) Divide unsigned; no overflow; $X rd no overflow (case u($z) u(rd) ) rr $Y Divide unsigned immediate; $X u 128 ( u(rd$y)/u(z) ) no overflow; (case u(z) > u(rd) ) rr u 128 ( u(rd$y) % u(z) ) Divide unsigned immedediate; $X rd no overflow (case u(z) u(rd) ) rr $Y a) In welchem Wertebereich können die Direktoperanden bei den Arithmetischen Befehlen liegen? b) Kann mit dem ADD Befehl in 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 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 ( 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 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 #AAAA AAAA AAAA AAAA 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 #AAAA AAAA AAAA AAAA 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 u ( u(@) + 4 s(yz) ) PBNZ $X,YZ Prob. br. if nonzero 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. u ( u(@) + 4 s(yz) ) PBNN $X,YZ Prob. br. if nonneg. 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 u ( u(@) + 4 s(yz) ) PBNP $X,YZ Prob. br. if nonpos. u ( u(@) + 4 s(yz) ) BEV $X,YZ Branch if even s($x) % 2 u ( u(@)+4 s(yz) ) PBEV $X,YZ Prob. branch if even s($x) % 2 u ( u(@)+4 s(yz) ) BOD $X,YZ Branch if odd s($x) % 2 = u ( u(@)+4 s(yz) ) PBOD $X,YZ Prob. branch if odd s($x) % 2 = 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?

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

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

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

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

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

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

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 7.8.27 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer

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

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

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

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

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

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

Grundlagen der Informatik (BSc) Übung Nr. 5

Grundlagen der Informatik (BSc) Übung Nr. 5 Übung Nr. 5: Zahlensysteme und ihre Anwendung Bitte kreuzen Sie in der folgenden Auflistung alle Zahlensysteme an, zu welchen jeder Ausdruck als Zahl gehören kann! (Verwenden Sie 'x für Wahl, ' ' für Ausschluß

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

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

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

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen? BITte ein BIT Vom Bit zum Binärsystem A Bit Of Magic 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen? 3. Gegeben ist der Bitstrom: 10010110 Was repräsentiert

Mehr

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. Zahlensysteme Definition: Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. In der Informatik spricht man auch von Stellenwertsystem,

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

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

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

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

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

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

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

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

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

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

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

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

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

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

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

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

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

2. Negative Dualzahlen darstellen

2. Negative Dualzahlen darstellen 2.1 Subtraktion von Dualzahlen 2.1.1 Direkte Subtraktion (Tafelrechnung) siehe ARCOR T0IF Nachteil dieser Methode: Diese Form der Subtraktion kann nur sehr schwer von einer Elektronik (CPU) durchgeführt

Mehr

Übung RA, Kapitel 1.2

Übung RA, Kapitel 1.2 Übung RA, Kapitel 1.2 Teil 1: Zahlen und Logik A) Aufgaben zu den ganzen Zahlen 1. Konvertieren Sie die folgenden Zahlen in die Binärform: 1984 Immer durch 2 teilen, der Rest ergibt das Bit. Jeweils mit

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

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

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754.

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754. Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754. a) Stellen Sie die Zahl 7,625 in folgender Tabelle dar! b) Wie werden denormalisierte

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

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

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Übungen zu Informatik 1

Übungen zu Informatik 1 Communication Systems Group (CSG) Prof. Dr. Burkhard Stiller, Universität Zürich, Binzmühlestrasse 14, CH-8050 Zürich Telefon: +41 44 635 6710, Fax: +41 44 635 6809, stiller@ifi.uzh.ch Fabio Hecht, Telefon:

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

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

Vertiefungsstoff zum Thema Darstellung von Zahlen

Vertiefungsstoff zum Thema Darstellung von Zahlen Vertiefungsstoff zum Thema Darstellung von Zahlen Addition von Zahlen in BCD-Kodierung Einerkomplementdarstellung von ganzen Zahlen Gleitpunktdarstellung nach dem IEEE-754-Standard 1 Rechnen mit BCD-codierten

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

Zahlensysteme. von Christian Bartl

Zahlensysteme. von Christian Bartl von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Umrechnungen... 3 2.1. Dezimalsystem Binärsystem... 3 2.2. Binärsystem Dezimalsystem... 3 2.3. Binärsystem Hexadezimalsystem... 3 2.4.

Mehr

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1 Musterlösung 2 Mikroprozessor & Eingebettete Systeme 1 WS2014/2015 Hinweis: Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende Kenntnis zu vermitteln; sie sollen lediglich den Einstieg

Mehr

Mikrocomputertechnik. Adressierungsarten

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

Mehr

Lösungen: zu 1. a.) 0 0 1 1 b.) 1 1 1 1 c.) 0 1 1 0 + 1 1 0 0 + 0 0 1 1 + 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1

Lösungen: zu 1. a.) 0 0 1 1 b.) 1 1 1 1 c.) 0 1 1 0 + 1 1 0 0 + 0 0 1 1 + 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 Lösungen: zu 1. a.) 0 0 1 1 b.) 1 1 1 1 c.) 0 1 1 0 + 1 1 0 0 + 0 0 1 1 + 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 vorzeichenlose Zahl: 15 vorzeichenlose Zahl: 18 vorzeichenlose Zahl: 13 Zweierkomplement: - 1

Mehr

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1

Musterlösung 2. Mikroprozessor & Eingebettete Systeme 1 Musterlösung 2 Mikroprozessor & Eingebettete Systeme 1 WS2013/2014 Hinweis: Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende Kenntnis zu vermitteln; sie sollen lediglich den Einstieg

Mehr

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation Übungsaufgaben Anmerkung Allen Beispielen soll noch hinzugefügt sein, dass wertvolle Hinweise, also die Tipps und Tricks die der schnellen maschinellen Multiplikation zu Grunde liegen, neben dem toff zur

Mehr

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen: Zahlensysteme. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis darstellen: n n n n z a a... a a a Dabei sind die Koeffizienten a, a, a,... aus der

Mehr

1. Übung - Einführung/Rechnerarchitektur

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

Mehr

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen

in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen Gleitkommazahlen in vielen technischen und wissenschaftlichen Anwendungen erforderlich: hohe Präzision große Dynamik möglich durch Verwendung von Gleitkommazahlen allgemeine Gleitkommazahl zur Basis r

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

1.4.12 Sin-Funktion vgl. Cos-Funktion

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

Mehr

0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet).

0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet). Aufgabe 0 Im folgenden sei die Wortlänge gleich 8 (d. h.: es wird mit Bytes gearbeitet). 1. i) Wie ist die Darstellung von 50 im Zweier =Komplement? ii) Wie ist die Darstellung von 62 im Einer =Komplement?

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

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

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

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

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Themen heute Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Besprechung des 3. Übungsblattes Aufgabe 3 Speicherplätze für Mikrocode-Anweisungen

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

Lösung 1. Übungsblatt

Lösung 1. Übungsblatt Fakultät Informatik, Technische Informatik, Professur für Mikrorechner Lösung 1. Übungsblatt Konvertierung von Zahlendarstellungen verschiedener Alphabete und Darstellung negativer Zahlen Stoffverteilung

Mehr

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc.

Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc. Fixpunktdarstellung Fixed-point numbers Bsp. Dezimaldarstellung Dezimalkomma (decimal point) rechts von Stelle mit Wertigkeit 100 nachfolgende Stellen haben Wertigkeit 10-1, 10-2, etc. Binärdarstellung

Mehr

4.2 Universalrechner: Schaltung unabhängig vom Problem 185

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

Mehr

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

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

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

Numerisches Programmieren, Übungen

Numerisches Programmieren, Übungen Technische Universität München SoSe 0 Institut für Informatik Prof Dr Thomas Huckle Dipl-Math Jürgen Bräckle Nikola Tchipev, MSc Numerisches Programmieren, Übungen Musterlösung Übungsblatt: Zahlendarstellung,

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

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) 6.2 Register 205 Spezialregister Spezialregister (engl. special purpose registers) haben im Gegensatz zu Allzweckregistern einen bestimmten Zweck, d.h. jedes Spezialregister hat seine ganz eigene Aufgabe.

Mehr

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista.

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista. Schritt für Schritt Anleitung zur Einrichtung Ihrer neuen Festplatte Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista. Schließen Sie Ihre Festplatte an Ihrem Computer an.

Mehr

183.580, WS2012 Übungsgruppen: Mo., 22.10.

183.580, WS2012 Übungsgruppen: Mo., 22.10. VU Grundlagen digitaler Systeme Übung 2: Numerik, Boolesche Algebra 183.580, WS2012 Übungsgruppen: Mo., 22.10. Aufgabe 1: Binäre Gleitpunkt-Arithmetik Addition & Subtraktion Gegeben sind die Zahlen: A

Mehr