Assembler als Übersetzer

Ähnliche Dokumente
Assembler als Übersetzer

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

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

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

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

4.2 Universalrechner: Schaltung unabhängig vom Problem 185

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. Assembler als leicht verständliche hardwarenahe Sprache Prozessor-Datenpfad

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

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

4. TÜ-Zusammenfassung zum Modul Computersysteme

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)

3.8 Sequentieller Multiplizierer 167

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

5 Befehlssätze und deren Klassifikation

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor

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

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

6 MMIX-Prozessor MMIX-Prozessor

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Grundlagen der Rechnerarchitektur. Einführung

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

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

N Bit Binärzahlen. Stelle: Binär-Digit:

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.

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

Technische Informatik II Rechnerarchitektur

Grundlagen der Rechnerarchitektur. Einführung

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

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Grundlagen der Rechnerarchitektur

Assembler am Beispiel der MIPS Architektur

ERA-Zentralübung Maschinenprogrammierung

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

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

Name : Klasse : Punkte : Note :

Teil 2: Rechnerorganisation

Lösung 5. Übungsblatt

Teil 1: Prozessorstrukturen

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

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

Grundlagen der Rechnerarchitektur. MIPS Assembler

Namensräume - der PREFIX-Befehl

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

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

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

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

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

Rechnergrundlagen SS Vorlesung

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

Mikroprozessortechnik Grundlagen 1

"Organisation und Technologie von Rechensystemen 4"

Prozessor HC680 fiktiv

Neues vom STRIP Forth-Prozessor

Programmiersprachen Einführung in C

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

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

Datenpfad einer einfachen MIPS CPU

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

Vorstellung (Wdh. für die Neuen )

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

Zusammenfassung der Assemblerbefehle des 8051

Teil 1: Prozessorstrukturen

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

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

LOC Data_Segment

8. Beschreibung des Prozessors MSP 430

Rechnerstrukturen. 7. Assembler. Inhalt. Vorlesung Rechnerstrukturen. Assemblerprogrammierung SML-CPU. SML-Assembler. Binden

ERA-Zentralübung Maschinenprogrammierung

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

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

Daniel Betz Wintersemester 2011/12

IT-Infrastruktur ITIS-D WS 2014/15. Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D: Rechnerstrukturen, Teil 1. v1.

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Name : Klasse : Punkte : Note :

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

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

2 Darstellung von Zahlen und Zeichen

Rechner- organisa-on 2 TOY. Karl C. Posch.

Praktikum Mikrorechner 3 (Adressierungsarten)

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

Technische Informatik 1

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

1. TÜ-Zusammenfassung zum Modul Computersysteme

Technische Informatik I - HS 18

Rechnernetze und Organisation

FAKULTÄT FÜR INFORMATIK

IM P label = Bedingte Verzweigungen

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

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

Transkript:

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 aus Wenn die Programmzeile leer ist (nur Leerzeichen Tabulatorzeichen und ZeilenumbruchZeichen enthält) wird die Zeile ignoriert Wenn die Programmzeile nicht leer ist wird das erste Wort (alle Zeichen bis zum ersten Leerzeichen oder Tabulator) als BefehlsZeichenkette interpretiert und das zweite Wort als OperandenZeichenkette; die OperandenZeichenkette wird bei den Kommas in zwei bzw drei Operanden aufgetrennt; entspricht die BefehlsZeichenkette der Zeichenkette INPUT wird vom erste Operanden das R entfernt das übrigbleibende Zeichen in eine Zahl gewandelt und diese im Befehlswort als D abgespeichert (zb D = für R D = für R ) der zweite Operand im Befehlswort als M abgespeichert (zb M = falls zweiter Operand den Wert hat) entspricht die BefehlsZeichenkette den Zeichenketten ADD oder SUB oder MUL oder DIV wird von den drei Operanden das R entfernt und die übrig bleibenden Zahlen im Befehlswort als D (erster Operand) M (zweiter Operand) und M4 (dritter Operand) abgespeichert und der Wert von M bei ADD auf gesetzt bei SUB auf bei MUL auf bei DIV auf und M auf gesetzt; = entspricht die BefehlsZeichenkette der Zeichenkette SQRT wird von beiden Operanden das R entfernt und die übrig bleibenden Zahlen im Befehlswort als D (erster Operand) bzw M4 (zweiter Operand) abgespeichert M auf und M auf gesetzt;

4 Assembler entspricht die BefehlsZeichenkette der Zeichenkette SET wird vom ersten Operanden das R entfernt und die übrig bleibende Zahl im Befehlswort als D abgespeichert der zweite Operand in K abgespeichert (zb für oder für M auf und M auf gesetzt Neben dieser Grundfunktionalität würde ein richtiger Assembler auch noch diverse Fehlerüberprüfungen durchführen beispielsweise ob nur gültige Befehle und Operanden verwendet wurden ob alle Operanden angegeben sind ob das Format der Operanden stimmt ob die Konstanten nicht zu groß sind etc Das Grundprinzip jedoch ist immer das selbe AssemblerProgramme werden durch eine eindeutige Abbildungsregel in Befehlsworte übersetzt Betrachten Sie die folgende Codesequenz INPUT R MUL RRR INPUT R MUL RRR = ADD RRR SQRT RR loon Befehlsformat K ( Bit) D ( Bit) M4 ( Bit) M ( Bit) M ( Bit) M ( Bit) a) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln Geben Sie für alle irrelevanten Bits x an ^^^ xxxxxxxxxxlooolxxxlxkxkxxloo XXXXXXXK X xxxkx x Kx X Xxx XXX XXX X xxxxxxxx Xx = Xxx IXXXKXH on xxxxxxx xx nod ) xxx

" ^ ) ' ' ' tee'+ 4 ProzessorDatenpfad 8=56 Betrachten Sie die folgende Codesequenz hhfdegbejiejdcz ^^ MUL RRR SET R55 DIV RRR ADD RRR k4m 9 M b) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln Geben Sie für alle irrelevanten Bits x an XXXIKXX SET O= Betrachten Sie die folgende Codesequenz SET R INPUT R ADD RRR INPUT R ADD RRR INPUT R ADD RRR SET R DIV RRR T c) Übersetzen Sie das Programm in Befehlsworte des Universalrechners mit Hilfe obiger Übersetzungsregeln Geben Sie für alle irrelevanten Bits x an

4 Assembler Betrachten Sie den Datenpfad des Universalrechners SUB b a ab MUL ADD DIV b a a/b 7 6 5 4 4 7 6 5 4 D D6 D5 D D A7 A D D M M4 M M a b c Add clk reset 7 6 5 4 D D R7 R6 R5 R4 R R R R M M M M4 D BZ p X 5 M A A M4 M M M D4 D7 D8 D D9 D D4 D R K MSB n n

4 4 ProzessorDatenpfad iii } nf in then } Gegeben ist folgende Codesequenz SET R5 M A 4 INPUT R4 ~ QUELL d) ADD RRR ZIEL DIV R7RR Übersetzen Sie das Programm in Befehlsworte des Universalrechners lediglich mit Hilfe des Datenpfads (ohne Übersetzungsregeln) Geben Sie für alle irrelevanten Bits x an XXXIXXX XXX xxxxln Xxx ^ Xxx xx Xl ^ X Xxx # Xxx xxxxxxxxxx QUEL ^ ^^^ Gegeben ist folgende Codesequenz SET R SQRT RR INPUT R MUL ^^ R5RR T e) Übersetzen Sie das Programm in Befehlsworte des Universalrechners lediglich mit Hilfe des Datenpfads (ohne Übersetzungsregeln) Geben Sie für alle irrelevanten Bits x an Xxx KXXIO ^ Xkxxxxxxxxldl ^ XXX XXXXX xxxxx xxxvixxirxx Xxktxkaqyn ^^^

6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? Kleiner Schneller Speicher T b) Wo findet man Register in einem ComputerSystem? Hovptprozessor steering von external Geroiten T c) Daten welcher Größenordnung kann ein Register aufnehmen Byte kilobytes megabytes gigabytes or terabytes? In der Regel wenige Bytes Allzweckregister a) Was sind Allzweckregister? b) Geben Sie ein Beispiel für eine typische Verwendung eines Allzweckregisters an c) Über wieviele Allzweckregister verfügt der MMIXProzessor? Welche Namen haben sie? Hat keinen bestimmten Zweckczb Steuerung von Hardware stew fr Programme pei sur Quell 56 und Vertusuns Zidperandea to ' arithuetasne Betake $ $55 )

6 Register T d) Was ist der Unterschied zwischen einem globalen und einem lokalen Register? Global ; Uerwendng von allen Programmfglen lokal ; Uerwendmg von einzdna Funktionen Spezialregister a) Was ist ein Spezialregister? sie Sind dem Prozessor aof warden zur un ssfeuarvng Hardware uerwendet b) Geben Sie eine typische Anwendung eines Spezialregisters an T c) Über wieviele Spezialregister verfügt der MMIXProzessor? Wie werden sie genannt (Prinzip)? ade enthalteu status information en Rundungsinodus for Gleitkomma Operation RA RZ T d) Kann jeder MMIXBefehl Spezialregister verwenden? Nein FYY Befehle GET Clesca ) RBB NT RZZ rwwirxx PUT Scheiber ) T e) Welches Spezialregister stellt Informationen über Arithmetische Operationen zur Verfügung? D T f) In welchem Spezialregister kann man die oberen 64 Bit eines 8 Bit breiten FestkommaDividenden ablegen?

4 6 MMIXProzessor T g) In welchem Register werden die oberen 64 Bit des Ergebnisses einer Festkomma Multiplikation abgelegt? T h) In welchem Spezialregister legt das Rechenwerk den Rest einer Festkomma Division ab? R i) Müssen normale Programme häufig auf Spezialregister zugreifen? Nein 64 Bit Festkomma genavigkeit in de Rogel uotlig ausreidrend j) Was müssen Sie tun wenn Sie einzelne Bits eines Spezialregisters verändern wollen? o GET Kiel ist ein Altwedrgistef AR bearbeiten o PUT Czid SR ) Die letzte Aufgabe hat gezeigt dass zur Bearbeitung von Spezialregistern zwei zusätzliche Befehle ausgeführt werden müssen Diese Ausführung kostet Zeit k) Können Sie sich einen Grund vorstellen warum nicht alle MMIXBefehle in Spezialregister schreiben bzw Spezialregister lesen können? Hardware eintade schnelle 4854 Zugrilt auf * 5 langsauner Da Zugnitt of SR die seller ibarwiegt @

4 6 MMIXProzessor Aufgaben Verständnis Speicher T a) Wozu verwendet ein Computer Arbeitsspeicher? Speicher non Paten gearbeitetwird unit denen gerade T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem ProzessorKern? Auf dem Mainboard? Als externes Gerät? Main board T c) Sind Zugriffe auf den Arbeitsspeicher in der Regel schneller oder langsamer als Zugriffe auf Register? Nein Register Sind uid Schneller As vid Schneller als Festplattenzognilte T d) Begründen Sie Ihre Antwort auf die letzte Frage Register direkt in Processor ksrze Wegetkleinere kapazitaten AS moss Tba Datenbus

89 BYTE TETRA 6 Speicher 5 Alignment T a) Welche Wortbreiten werden bei Speicherzugriffen vom MMIX unterstützt? Wie werden diese genannt? 8 Bit ( BYTE ) 6 Bit ( WYDE ) bit ( Tetra T b) Wofür steht der Begriff Alignment? 64 Bit ( OCTA ) OCTA Ausrichtung Konner ibarall gespeidetwede WYDE nor an A dresser die dwcszteiksra " u " n 4 teilba Sind 8 teilbarsind T c) Warum wird Alignment angewendet? Dadurd wirdsidegestekt jedes Datenwort mit einem einzigen dass Speiderzugnilt ausgelesa Werder Kann 4 Adresse T d) Was würde passieren wenn ein 64 Bit breites Datenwort an einer durch 4 aber nicht durch 8 teilbaren Adresse abgelegt werden würde? Speiderzugiftenotig A ^4567 in

6 6 MMIXProzessor T e) Welche Eigenschaft müssen Byte Wyde Tetra und OctaAdressen beim MMIX haben? BYTE heine Ensdroinkurg WYDE dvrd Wei teilbar bzw letdes Adressbito TETRA dvrd Vier teilba ' bzw letter Adressbits OCTA dweh 8 teilbar bzu letter Adrcssbitsc Big und LittleEndian a) Welche Art von Daten betrifft die Abspeicherung als Big oder LittleEndian? b) Verwendet der MMIXProzessor Big oder LittleEndian? c) Was bedeutet Big und LittleEndian? Was ist der Unterschied? d) Wie wird die 6 BitZahl x4 im Speicher an der Adresse x abgelegt im Falle einer BigEndian und einer LittleEndianMaschine? Adresse Big Endian Little Endian x x

6 Speicher 7 Hexadecimal TETRA T e) Wie wird im Speicher an der Adresse x8 die BitZahl 55 x45678 abgelegt im Falle einer BigEndian und einer LittleEndianMaschine? Adresse Big Endian Little Endian tex x8 78 x9 4 56 xa 56 4 xb 78 dine f) Wie wird im Speicher an der Adresse x8 die 64 BitZahl ox 45678 abgelegt im Falle einer BigEndian und einer LittleEndianMaschine? xa HEX ' Adresse Big Endian Little Endian x8 ( x9 xa xb xc o xd xe xf oxoo 78 56 4 78 oooo r 4 56 78 Bit Zahl

Service Das 8 6 MMIXProzessor Speicherorganisation T a) Was wird im Textsegment gespeichert? o Programme de Direktopeanden lnterruptuektoren T b) Was ist ein Interrupt? 5 Interrupt Program 5h gesprungen Routine wird unto broken end in die end Aosgetehrt Program wind an der untubrochena slellefartgefihrt T c) Nennen Sie ein Ereignis bei dem ein Interrupt auftreten kann Division durch O exlerne Hardware Times T d) Was sind Interruptvektoren? Barcia in Arbeitsspeider Actresses ode Verzweigungen Werder gespeidert in den zu 5/ T e) Was wird im Datensegment gespeichert? o Variable Von niednign hohenea Adressen ru Stack Von hoiheren zu Hdrcssen hiedrigeren