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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 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: 64bit Befehlssatz von 256 Befehlen je 32bit Länge Der Adressbereich des virtuellen Arbeitsspeichers umfasst 2 64 Byte Ausführungszeit der meisten Befehle 1 Takt Ox Byte 6.1 Programmiermodell IT S.219 alles wichtig 6.2 Register Allzweckregister Um Daten zu speichern, haben keine spezielle Funktion 256 Stück durchnummeriert von $0 bis $255 Es gibt globale, marginale und lokale Register Spezialregister rg enthält die Nummer des ersten besetzten globalen Registers, rl enhätl die Nummer des ersten freien lokalen Registers O 1 = u

2 Spezialregister Der MMIX Prozessor hat 32 Spezialregister: ra, rb bis rz und zusätzlich rbb, rtt, rww, rxx, ryy, rzz Jeder Spezialregister hat einen bestimmten Nutzen wie die Konfiguration der Hardware, Interrupts oder der Bereitstellung von Hardwareinformationen (siehe ra als Beispiel S. 221) 6.3 Speicher Byteadressierter Speicher: kleinstes adressierbares Datenelement ist ein Byte Speichern und Laden wird in den Wortbreiten 1 Byte, 2 Byte (Wyde), 4 Byte (Tetra) und 8 Byte (Octa) unterstützt Alignment Ausrichtung der Daten im Speicher Beim Auslesen von Daten aus dem Speicher gibt es einige hardwarebedingte Limitierungen, um diese Limitierungen zu verstehen, schauen wir uns an wie ein Lesezugriff auf ein Byte, Wyde, Tetra, Octa funktioniert (S.225): a oooo " ".:: X Fontane : gtfo Yum D.h. hardwarebedingt bekommen wir bspw beim Auslesen eines Wydes nur die Daten aus den folgenden Speicherchipkombinationen (0,1), (2,3), (4,5), (6,7). Beim Auslesen eines Tetras bekommen wir nur die Daten aus den Speicherchipkombinationen (0,1,2,3) und (4,5,6,7) Da wir möglichst durch einen Ladezugriff alle Daten erhalten wollen, alignen wir beim Abspeichern die Wydes, Tetras und Octas folgendermaßen:

3 Big und Little Endian Zwei Arten wie man Datenworte, die größer als 1 Byte sind abspeichern kann Der MMIX Prozessor verwendet BigEndian I Speicherorganisation MMIX hat eine Adressbreite von 64 bit, d.h Bytes von 0x bis 0xFFFF FFFF FFFF FFFF können adressiert werden. Der Speicher wird folgendermaßen aufgeteilt:

4 , E $ Text Segment: Programme und InterruptVektoren enthält ab Speicheradresse 0x100 MMIX Programme, d.h. viele 32 bit Befehlsworte Die genaue Anfangsadresse des Programms ist in der Symboltabelle der Objektdatei *.mmo festgelegt Die Objektdatei entsteht nach dem übersetzen des MMIX Assemblercodes und kann von einem Computer mit MMIX Prozessor in Simulation ausgeführt werden. Die Objektdatei enthält das ganze Programm in Maschinencode, die Befehlsworte, Informationen über die Vorbelegung des Speichers und die Symboltabelle Der Loader (Teil des Betriebssytems) kopiert E das auszuführende Programm aus der Objektdatei in den Speicher Die Symboltabelle besteht aus Name, Adresse Paaren, sodass Einsprungadressen von Modulen, Funktionen, Blöcken gefunden werden können Interrupts: bei der Ausführung (d.h. zur Laufzeit) eines Programms auftretende Programm Unterbrechungen. Bspw. Division durch Null, Speicherzugriffsfehler.

5 InterruptServiceRoutinen: Funktion/Programm, das aufgerufen wird sobald ein Interrupt geschieht. Das gerade ausgeführte Programm wird vom Betriebssystem gestoppt, um erst die ISR zu erledigen. InterruptVektoren: Enthalten die Adressen der ausführenden ISR direkt oder indirekt oder die InterruptVektoren enthalten die ISR Befehlsworte selbst. Manche Interrupts haben eigene InterruptVektoren, andere Interrupts werden in einen InterruptVektor zusammengefasst. Beim MMIX enthalten die InterruptVektoren bereits die ISRs. Daten Segment # = Enthält globale, statische und zur Laufzeit allozierte Daten, die auf dem Heap ab 0x abgelegt werden Enthält lokale Daten die ab der Adresse 0x3FFFFFFFFFFFFFFF Richtung kleiner werdenden Adressen angelegt werden Pool Segment Dient der Kommunikation von Betriebssystem und dem Programm. Bspw. Übergabe von Programm Aufruf Parametern Stack Segment Irrelevant Betriebssytem Segment Enthält das Betriebssystem Virtueller Speicher Die Speicheradressen, auf die ein Programm zugreift entsprechen nicht den realen physikalischen Speicheradressen, sondern werden vom Betriebsystem dem auszuführenden Programm vorgegaukelt. So enhält jedes Programm seinen eigenen Arbeitsspeicher. Die wahre Speicherzuteilung wird vom Betriebssystem übernommen. So kann z.b. ein Programm ein 2 64 bit Adressraum vorgegaukelt werden (mehrere Exabyte), obwohl nur 8 Gigabyte RAM zur Verfügung stehen. 6.4 MMIX Programme MMIX Programme sind Quelltextdateien die Befehle für den MMIX Prozessor (Befehlssatz Befehle), für den Loader (lädt das Programm in den Arbeitsspeicher) und für den Assemblierer selbst enthält. Wenn das Programm ausgeführt wird passieren grob folgende Dinge: 1. Assemblierer wandelt Quelltext in Maschinencode um (Namen müssen vorerst aufgelöst werden) 2. Loader lädt den Maschinencode (wie im Quelltext angegeben) in den Arbeitsspeicher

6 3. Der Maschinencode im Textsegment wird vom Prozessor ausgeführt Syntax Markenspalte: Bis auf Main optional. Zur Benamung von Speicherstellen. Dienen dem Programmierer als Programmierhilfe. Befehlsspalte: Enthält das Befehl für den Prozessor, Loader oder Assemblierer. Operandenspalte: Meist zu verarbeitende Daten. Kommentarspalte: Programmierhilfe. Für weitere Syntaxinfo: S.243 Assembler und Loader Befehle IS Befehl: Assemblierer Befehl, um Allzweckregister durch Namen ansprechbar zu machen. Name IS Register Der Befehl sagt dem Assemblierer, dass er vor der Übersetzung des Quelltextes in Maschinencode überall im Quellcode erst die Namen in die entsprechenden Register umwandelt. GREG Befehl (G für Global, REG für Register): LoaderBefehl. Reserviert das nächste freie globale Register (Spezialregister rg wird um 1 verringert) und initialisiert dieses Register mit dem Wert, der als Parameter gegeben ist. Name GREG Wert Der LOC Befehl: Loader Befehl. Mit LOC kann die Adresse, an dem der Loader anfangen soll Befehlscode für den Prozessor zu schreiben angegeben werden (häufig LOC #100 für Befehlssatz Befehle und LOC DataSegment für vor Programmbeginn festgelegte Variablen)

7 LOC Adresse BYTE, WYDE, TETRA, OCTA Befehle: Loader Befehle. Die Befehle sagen dem Loader, dass er bei der aktuellen (durch LOC angegeben, meist im DataSegment) Speicher allozieren und bei gegebenem Parameter auch initialisieren soll. Die aktuelle Adresse wird bei Verwendung dieser Befehle automatisch erhöht. Name Befehl Wert Übersetzungsprozess 1. Ihr schreibt eine Quelldatei mit nem Texteditor und speichert sie mit der Endung.mms 2. Ihr nutzt den Befehl mmixal *.mms (im Terminal). Der Assemblierer löst Namen und Marken auf und keiert eine Symboltabelle für den Loader. Dann übersetzt der Assemblierer euren Code in Maschinencode, in eine *.mmo Datei (eine Objektdatei). 3. Mit dem Befehl mmix i *.mmo (im Terminal) könnt ihr euer Programm vom Prozessor im Simulator ausführen lassen.

8 Befehlsworte für den MMIX Prozessor OP enthält den OP Code, d.h. das was der Prozessor mit den Daten tun soll ADD, SUB, LDO, STO sind OP Codes X,Y,Z sind entweder Register oder Direktoperanden (Zahlen). Y und Z sind häufig Quellregister und X das Register, wo das Ergebnis reingeschrieben wird. MMIX Opcodes Maschinencode Tabelle

9 Übersetzen eines Opcodes in das Binärwort: 1. Schaut in welcher Zeile das Binärwort steht um die ersten 4 bit zu finden (e.g. SR[I] ist in Zeile 0x3 ) 2. Schaut ob der Opcode in der Zeile oben oder unten ist (e.g. SR[I] ist in der unteren Zeile von 0x3..). Wenn der Opcode in der Zeile oben ist, kommen die in der Tabelle ganz oben geschriebenen Nibble (4bit Binärwort) in Frage. Wenn der Opcode in der Zeile unten ist, kommen die in der Tabelle ganz unten schriebenen Nibble in Frage (e.g. SR[I] ist in der unteren Hälfte, daher kommen 0x...C und 0x...D in Frage) 3. Opcodes mit einem [I] können mit Direkoperanden verwendet werden. Falls ihr den Befehl mit Direktoperanden wählt, nehmt ihr die rechte Endung, falls nicht nehmt ihr die linke Endung. Opcodes mit einem [B] sind Befehle bei denen gesprungen wird. Bei einem Vorwärtssprung (zu einer größeren Adresse) wird die linke Endung genommen, bei einem Rückwärtssprung wird die rechte Endung genommen. ν, µ und π sagen was über die Ausführungsdauer des Befehls aus (mehr Info S. 257) 6.5 MMIX Befehlen

10 Auf den Seiten 260 bis 263 sind eine Menge Definitionen. Wozu die Definitionen sind wird in den Aufgaben später klar. Einmal drüber lesen reicht und später bei Unverständnis nachschlagen. Bei den folgenden Befehlen ist es wichtig, dass ihr die Beschreibung (siehe Bild) verstehen könnt. Von Vorteil ist es, wenn ihr die wichtigsten Befehle auswendig könnt. RegisterRegisterBefehle MMIXBefehle für den Prozessor bei dem die Quelloperanden Y,Z sowie das Zieloperand X Allzweckregister sind. Die RegisterRegisterBefehle im Skript werden unterteilt in: Arithmetische Befehle auf Festkommazahlen (ADD, SUB, NEG, MUL, DIV..) Direkoperand in Register schreiben (SETL, SET..) Umwandlung Gleitkommazahl Festkommazahl (FLOT, FIX..) Arithmetische Befehle auf Gleitkommazahlen (FADD, FSUB..) Schiebe Befehle (SL, SLU, SR..) Logische Operationen auf BitEbene (AND, OR, XOR..) RegisterSpeicherBefehle Hier wird klar, warum wir häufig in Programmen das Befehl GREG benutzen, um eine Adresse in ein globales Register abzulegen. Das globale Register dient als Basisregister, um aus dem Speicher laden oder in den Speicher schreiben zu können. Daten vom Speicher in ein Register laden (e.g. LDO, LDB) Daten vom Register in den Speicher schreiben (speichern) (e.g. STB, STO) Adressen in ein Register laden (LDA, GETA) Zugriff auf Spezialregister (GET, PUT) Um Spezialregister in Allzweckregister laden zu können und um in Spezialregister schreiben zu können. Verzweigungsbefehle (JMP, BZ, BNN..) Um if, else statements im Programm zu realisieren. Befehle for Funktionsaufrufe (GO) Namensräume der PREFIX Befehl

11 ein Assembler Befehl Ist eine Programmierhilfe. Wenn ihr vor eure einzelnen Funktionen ein PREFIX <<Name:>> Befehl schreibt und nach eurer Funktion den Namenraum wieder mit PREFIX : beendet, braucht ihr beim Schreiben eurer einzelnen Funktionen keine Sorgen machen, dass ihr ausversehen einen bereits in einer anderen Funktion verwendeten Namen benutzt. Funktionsaufrufe Wozu verwenden wir Funktionen beim Programmieren? Man kann einer Funktion, die bspw die Mitternachtsformel implementiert, verschiedene Eingänge a,b,c übergeben und die Funktion errechnet den jeweils passenden Ouput, die Nullstellen. Bessere Codestruktur! Der Code ist leserlicher, man kommt nicht so einfach durcheinander. Weniger Code! Funktionen werden häufig mehr als nur einmal aufgerufen. Einfachere CodeMaintenance. WertÜbergabe und ReferenzÜbergabe Definition: Der Funktionsaufrufer ist nichts anderes als die Funktion (z.b. Main), die die betrachtete Funktion aufruft.

12 Bei der WertÜbergabe (engl. call by value) wird der Funktion direkt der zu verarbeitende Wert übergeben, z.b. eine Festkommazahl. Bei der ReferenzÜbergabe (engl. call by reference) wird der Funktion die Adresse des zu verarbeitenden Werts übergeben, z.b. die Adresse, an der eine Festkommazahl im Speicher steht. In beiden Fällen wird bei der Parameterübergabe eine lokale Kopie erstellt. Aufrufkonvention eine Motivation Was hat es mit einer Aufrufkonvention auf sich? Wenn ihr eine Hochsprache verwendet und eine Funktion aufruft, ist das einfach. Ihr kümmert euch nicht darum, was der Prozessor genau macht, sondern schreibt einfach so was wie: result = function(param1, param2); Dies muss aber letztendlich in Befehle umgewandelt werden, die der Prozessor versteht. In den folgenden Seiten 308+ lernen wir anhand des MMIX Prozessors, wie ein Funktionsaufruf in Maschinensprache/Assemblercode aussehen kann. Stellt euch vor wir sind mitten in der Main Funktion im MMIX Code und wollen eine Funktion aufrufen, die an einer anderen Adresse im Speicher abgespeichert ist. D.h. wir verwenden den GO Befehl, um zur Funktionsadresse zu springen und gleichzeitig die Rücksprungadresse zu erhalten. Aber wie soll der Funktionsaufrufer (z.b. Main) die Parameter der aufzurufenden Funktion übergeben? Am besten wohl immer an der selben Stelle im Speicher. Immerhin arbeitet die Funktion stupide immer den gleichen Code ab und weiß nichts vom Funktionsaufrufer. Und es muss auch überlegt werden, wo die Rückgabewerte übergeben werden. Um diese Dinge einheitlich zu regeln hat jeder Prozessor eine architekturabhängige Aufrufkonvention. Beim MMIX werden Parameter, Rückgabewerte und lokale Variablen (die unteren Allzweckregister) auf dem Stack (#3FFFFFFFFFFFFFF8 und kleiner) übergeben Für Details siehe ab S.309

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

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

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

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

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

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

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

6 MMIX-Prozessor MMIX-Prozessor

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

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

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

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

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

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

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

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

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

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

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

5 Befehlssätze und deren Klassifikation

5 Befehlssätze und deren Klassifikation 215 5 Befehlssätze und deren Klassifikation Befehlssatz Unser Universalrechner kennt 7 verschiedene Befehle: ADD SUB MUL DIV FSQRT INPUT und SET Die Menge (im mathematischen Sinne) der Befehle die ein

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

Ü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

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

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

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

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

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

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

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

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

Ü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

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

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

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

Mehr

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

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

1 pulsierender Speicher

1 pulsierender Speicher 1 pulsierender Speicher 1.1 Aufgabentyp Gegeben sei das folgende C-Programm: [...] (a) Geben Sie den Gültigkeitsbereich jedes Objektes des Programms an. (b) Stellen Sie die Rechnung des Programms für die

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

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

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

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

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Adressierungsarten des 6809 (Forts.)

Adressierungsarten des 6809 (Forts.) Adressierungsarten des 6809 (Forts.) Zusammenfassung zur indizierten Adressierung: 19 Beispiel-Programm 1 für 6809 6809-Assemblerprogramm zur Suche nach Leerzeichen (space, tab, return) in einem String:

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

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

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

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.

Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach  10. Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

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 marco.duerr [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2018 Übungsblatt 10 (Block C 2) (16 Punkte)

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Der Binder Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 28. Mai 2015 Herausforderungen durch große Programme Große Programme: die meisten

Mehr

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

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

Mehr

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

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, UP Stack (Stapel, FIFO) wird benötigt UP-Ruf:

Mehr

Betriebssysteme Teil 3: Laufzeitsystem für Programme

Betriebssysteme Teil 3: Laufzeitsystem für Programme Betriebssysteme Teil 3: Laufzeitsystem für Programme 23.10.15 1 Literatur [3-1] Stack: http://fbim.fh-regensburg.de/~hab39652/pg1/skriptum/ ausdruecke/maschinenmodell.html [3-2] https://de.wikipedia.org/wiki/dynamischer_speicher

Mehr

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

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

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

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

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

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

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

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement

Mehr

EWS, WS 2016/17 Pfahler I-1

EWS, WS 2016/17 Pfahler I-1 Vorlesung und Übung Universität Paderborn Wintersemester 2016/2017 Dr. Peter Pfahler Funktionen EWS, WS 2016/17 Pfahler I-1 Funktionen Funktion: Rechenvorschrift mit einem Namen und ggf. formalen Parametern,

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung

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

Lösungsvorschlag zur 3. Übung

Lösungsvorschlag zur 3. Übung Prof Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik Wintersemester 09/10 1 Präsenzübungen 11 Schnelltest Lösungsvorschlag zur Übung a) Welche der folgenden Aussagen entsprechen

Mehr

5.1 Beschreibung des Prozessors M Programmierung in Maschinensprache. 5.1 Beschreibung des Prozessors M 68000

5.1 Beschreibung des Prozessors M Programmierung in Maschinensprache. 5.1 Beschreibung des Prozessors M 68000 5. Programmierung in Maschinensprache (Assembler) 5.1 Beschreibung des Prozessors M 68000 5.1 Beschreibung des Prozessors M 68000 5.2 Adressierungsarten des M 68000 5.3 Maschinenbefehle des M 68000 5.4

Mehr

5. Programmierung in Maschinensprache

5. Programmierung in Maschinensprache 5. Programmierung in Maschinensprache (Assembler) 5.1 Beschreibung des Prozessors M 68000 5.2 Adressierungsarten des M 68000 5.3 Maschinenbefehle des M 68000 5.4 Unterprogrammtechnik 5. Maschinensprache

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

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

TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen 7. Aufgabenblatt mit Lösungen Problem 1: IEEE-Gleitkommazahlen (2+2+4=8) a) Welchen Bereich der positiven Zahlen kann man mit normalisierten Gleitkommazahlen im IEEE-754-Format mit 64 Bit darstellen? b)

Mehr

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

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

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

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Der von Neumann Computer

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

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

Übung Rechnerstrukturen. Aufgabenblatt 10 Ausgabe: , Abgabe: :00. Aufgabe 10.1 (Punkte 25) Gruppe Matrikelnummer(n)

Übung Rechnerstrukturen. Aufgabenblatt 10 Ausgabe: , Abgabe: :00. Aufgabe 10.1 (Punkte 25) Gruppe Matrikelnummer(n) 64-041 Übung Rechnerstrukturen Aufgabenblatt 10 Ausgabe: 17.12.14, Abgabe: 7.1.15 24:00 Gruppe Name(n) Matrikelnummer(n) Aufgabe 10.1 (Punkte 25) Entwurf eines Schaltwerks Wir betrachten ein Schaltwerk

Mehr

Technische Informatik 1 - Übung 3 3. & 4. November Philipp Miedl

Technische Informatik 1 - Übung 3 3. & 4. November Philipp Miedl Technische Informatik 1 - Übung 3 3. & 4. November 2016 Philipp Miedl Philipp Miedl 3. 11. 2016 1 Ziele der Übungen Aufgabe 1 Philipp Miedl 3. 11. 2016 2 Ziele der Übungen Aufgabe 1 Aufbau von Objekt-Dateien

Mehr

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

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

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das

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

Unterprogramme. Unterprogramme

Unterprogramme. Unterprogramme Unterprogramme Unterprogramme wichtiges Hilfsmittel für mehrfach benötigte Programmabschnitte spielen in höheren Programmiersprachen eine wesentliche Rolle in Assembler sind bestimmte Konventionen nötig

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in

Mehr

Assembler (NASM) Crashkurs von Sönke Schmidt

Assembler (NASM) Crashkurs von Sönke Schmidt Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

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

Zusammenfassung der Assemblerbefehle des 8051

Zusammenfassung der Assemblerbefehle des 8051 Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach

Mehr

Praxis der Programmierung

Praxis der Programmierung Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF

Mehr

9. Die Adressierungsarten des MSP 430

9. Die Adressierungsarten des MSP 430 9. Die Adressierungsarten 9.1 Übersicht über die Adressierungsarten 9.2 -Operanden 9.3 Indexregister mit Distanz 9.4 Symbolische (relativ zum ) 9.5 Absolute 9.6 Indirekte 9.7 Indirekte Adressierung mit

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

Heute nur MIPS-Praxis (4 Aufgaben)

Heute nur MIPS-Praxis (4 Aufgaben) Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen

Mehr

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Vorbesprechung U8 Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Basistypen Alignment der Basistypen auf deren Grösse Grössen (abhängig

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr