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

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

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

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

6 MMIX-Prozessor MMIX-Prozessor

6 MMIX-Prozessor MMIX-Prozessor

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

6 MMIX-Prozessor MMIX-Prozessor

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

Einstieg in die Informatik mit Java

4. TÜ-Zusammenfassung zum Modul Computersysteme

Einstieg in die Informatik mit Java

2 Darstellung von Zahlen und Zeichen

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

Einstieg in die Informatik mit Java

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

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

Wie werden die Barcode Prüfziffern berechnet?

Protokollgrundlagen (Schicht 2)

Clevere Algorithmen programmieren

Wie werden die Barcode Prüfziffern berechnet?

Programmieren in C Einführung

Datentypen printf und scanf. Programmieren in C Dr. Michael Zwick

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

Rechnerstrukturen. Michael Engel und Peter Marwedel. Sommer TU Dortmund, Fakultät für Informatik

Kapitel 2: Darstellung von Information. Inhalt. Einfache Datentypen (Fortsetzung) Erste Programme (mit Ausgabe) Exkurs: Grammatiken

Escape-Sequenzen. Dr. Norbert Spangler

2 Darstellung von Zahlen und Zeichen

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Eine Reihe häufig benötigter Datentypen ist in C vordefiniert

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

Thema 1 -- Fortsetzung. Computersystem, Informationsdarstellung

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

Barcode- Referenzhandbuch

@ A Q R ( ) Die Bedeutung der Steuerzeichen wird auf der Seite H2 (Tafel 2) erklärt. 6E 6F TAFELN, TABELLEN TAFEL 1. Schriftzeichen.

2 Darstellung von Zahlen und Zeichen

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

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

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

Einführung in die Programmierung Wintersemester 2008/09

Übung zur Wirtschaftsinformatik I. Zahlensysteme / Codierung

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Rechnerstrukturen WS 2012/13

Technische Informatik II Rechnerarchitektur

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

Spezifikation. für die Erstellung und Übertragung einer Meldedatei zu erstattungsfähigen und gedeckten Einlagen. Version 1.0 BASIS

Modul Einführung in die Informationstechnologie. Klausur

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung!

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Leistung übertragbar

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

Technische Informatik II Rechnerarchitektur

5 Befehlssätze und deren Klassifikation

Kapitel 2: Darstellung von Information Inhalt Einführung in die Informatik für Naturwissenschaftler und Ingenieure

Name : Klasse : Punkte : Note :

Zahlen und Zeichen (1)

Algorithmen und Datenstrukturen (für ET/IT)

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

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

IM P label = Bedingte Verzweigungen

Variablen und Datentypen

Assembler als Übersetzer

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

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

Variablen und Datentypen

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Was sind primitive Datentypen? Primitive Datentypen

Skript. EDV Grundlagen

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

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

Algorithmen und Datenstrukturen (für ET/IT)

X = {x 1,x 2,...} sei ein Symbolalphabet eines Kodes. In diesem Kode sind card(x) = X Sachverhalte darstellbar

Algorithmen und Datenstrukturen (für ET/IT)

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Was sind primitive Datentypen? Bits und Bytes. Primitive Datentypen. Sommersemester 2014

A ProgrAmmer s Guide to KIM Programming

Namensräume - der PREFIX-Befehl

Was ist Wirtschaftsinformatik?

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

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

"Organisation und Technologie von Rechensystemen 4"

Modul Einführung in die Informationstechnologie. Klausur. Name des Studenten:_Musterlösung_ des Studenten:

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

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.

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Informatikgrundlagen I Grundlagen der Informatik I

Darstellung von Informationen

Sicheres C Programmieren in Embedded Systemen ARM I (ARM7TMDI [1] ) Wintersemester

Einführung in die Informatik

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

a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? ALUI Rechen Werk mit Registern zur Adress

5. Darstellung und Verarbeitung von Textzeichen

a) Aus welchen logischen Grundeinheiten besteht ein Prozessor? Einheit zur Adress-Übersetzung/Virtueller Speicher

Programmiersprachen Einführung in C

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Algorithmen und Datenstrukturen

Spezifikation. für die Erstellung und Übertragung einer Meldedatei zu entschädigungsfähigen und gedeckten Einlagen. Version 2.

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

Programmieren und Problemlösen Java-Sprachkonstrukte. Java-Sprachkonstrukte. Übung Altersberechner. Namen und Bezeichner. Namen und Bezeichner

Der ASCII-Code und die Zahl Der Name BERGOGLIO beinhaltet die Zahl des Tieres -

Transkript:

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 eeaten 2BTts=O OCTA : church 8 tutbar letter 3BEs=O 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 Little-Endian? Was ist der Unterschied? d) Wie wird die 16 Bit-Zahl 0x1234 im Speicher an der Adresse 0x2000000000000000 abgelegt im Falle einer Big-Endian- und einer Little-Endian-Maschine? Adresse Big Endian Little Endian 0x2000000000000000 0x2000000000000001

63 Speicher 237 T e) Wie wird im Speicher an der Adresse 0x2000000000000008 die 32 Bit-Zahl 0x12345678 abgelegt im Falle einer Big-Endian- und einer Little-Endian-Maschine? Adresse Big Endian Little Endian 0x2000000000000008 0x2000000000000009 0x200000000000000A 0x200000000000000B 0 12 0 78 0 34 0 56 0 56 0 34 0 78 0 12 f) Wie wird im Speicher an der Adresse 0x2000000000000008 die 64 Bit-Zahl 12345678 abgelegt im Falle einer Big-Endian- und einer Little-Endian-Maschine? Adresse Big Endian Little Endian 0x2000000000000008 0x2000000000000009 0x200000000000000A 0x200000000000000B 0x200000000000000c 0x200000000000000D 0x200000000000000E 0x200000000000000F

- service Routine 238 6 MMIX-Prozessor Speicherorganisation T a) Was wird im Textsegment gespeichert? Interrupt program Vekeoren made Direktoperanden T b) Was ist ein Interrupt? wird eine asynchrone in Interrupt verzweigt Program munterbrechung - T c) Nennen Sie ein Ereignis, bei dem ein Interrupt auftreten kann ( ism Program m wtra an unterbrochener Steele Division church 0 forlgesetzt T d) Was sind Interruptvektoren? Baruth in Arbeitsspucher, Oder warden veruveigungen we in dem Aaressen isr gespeicher T e) Was wird im Datensegment gespeichert? geobaeevariabeen : Heap l von niedrigeren on noheren Adressen ) whale variable : stack ( von hoheren in niearigeren Adressen )

63 Speicher 239 T f) Was wird im Poolsegment gespeichert? vom Betriebs system una Programme gemeinsamgenutzt uibergabe von Datenaustausch 2 B Programme parameter n Gegeben ist die nachfolgend abgebildete ASCII-Tabelle: ASCII-Zeichentabelle, hexadezimale Nummerierung Code 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2 SP! " # $ % & ' ( ) * +, - / 3 0 1 2 3 4 5 6 7 8 9 : ; < = >? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ DEL g) Geben Sie den Inhalt des Poolsegments für das Programm ls an, das mit dem Parameter -la aufgerufen wird (Aufruf: ls -la) 0x4000000000000000 0x4000000000000008 0x4000000000000010 0x4000000000000018 0x4000000000000020 0x4000000000000028 0x4000000000000030 0x4000000000000038

240 6 MMIX-Prozessor T h) Geben Sie den Inhalt des Poolsegments für das Programm rm an, das mit dem Parameter -rf und * aufgerufen wird (Aufruf: rm -rf *) 0x4000000000000000 C) 0x4000000000000008 0 4000000000000028 0x4000000000000010 0 4000 000000000030 ) 0x4000000000000018 Ok 4000000000000038 919198 0x4000000000000020 0x4000000000000028 8%0%8%9 0x4000000000000030 OXLD 72660000000000 parameter 0x4000000000000038 0 4000 0000 00000040 :Dnromgrammname 64 BFL i) Wie werden in der Programmiersprache C einem Programm Parameter übergeben? - rf Ox 2A 00000000000000 parameter - * j) Wie kann man in der Programmiersprache C auf die Parameter zugreifen?

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 man auch Befehlssatz-Befehle den Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt den Assemblierer; der Assemblierer, oft auch Assembler genannt, ist das Computerprogramm, das MMIX-Quelltext in Binärdateien mit MMIX-Befehlen und Loader-Anweisungen übersetzt Aufbau Nachfolgende Abbildung zeigt, wie MMIX-Programme (Quelltext) aus vier durch Leerzeichen und Tabulatoren voneinander getrennte Spalten aufgebaut sind Marke Befehl Operanden Kommentar LOC Data_Segment GREG @ SP GREG Pool_Segment A OCTA 123456 A initialisieren a IS $1 Name für $1 LOC #100 Beginne an 0x100 Main LDO a,a A in Reg a laden Start SUB SP,SP,8 STO a,:sp,0 In der ersten Spalte stehen Marken Marken sind Namen, über die Speicherstellen (Befehle oder Daten) angesprochen werden können Bis auf die Marke Main (Programm-Beginn) sind Marken optional

it -7,0-9 246 6 MMIX-Prozessor Aufgaben T a) Aus wievielen/welchen Spalten bestehen MMIX-Programme? 4 spatter : Marke, Before, Operand, kommentar T b) Wie werden die Spalten im Programmcode getrennt? dutch Leerzetchen oder Tabueatoren T c) Wie muss man MMIX-Codezeilen schreiben, die keine Marke verwenden? Ste Meissen me Leerzetchenltabueatoren antangen T d) Wie kann man beim MMIX-Assembler eine komplette Zeile auskommentieren? sonaerzeichenbeginnt also ein element { a, A,,, Tnaem man ME einem } T e) Werden alle vier Spalten eines MMIX-Programms für den Übersetzungsvorgang herangezogen? Gehen Sie auf die einzelnen Spalten ein Nein, spate 4 : Uommentar wirdignorier spate 1 : Marke wtrd War for der aaressebenutzt Berechnung new spate 2 and 3 benotigt ' lcupwrertoneiairleonader - Between ' TE Loc,,grr=g) : '

64 MMIX-Programme 247 f) Geben Sie Anweisungen an, mit denen Sie die Register 0, 1 und 2 durch die Namen a, b und c ansprechbar machen T g) Geben Sie Anweisungen an, mit denen Sie die Register 1, 2 und 3 durch die Namen ankathete, gegenkathete und hypothenuse ansprechbar machen ankathete IS $1 gegenkathete Is $2 hypotenuse Is $3 h) Geben Sie die Anweisung an, mit denen Sie ein globales Register anlegen, dieses über den Namen PI ansprechbar machen und mit 0x400921FB54442EEA initialisieren T i) Geben Sie die Anweisung an, mit denen Sie ein globales Register anlegen und dieses über den Namen A ansprechbar machen A greg

248 6 MMIX-Prozessor T j) Mit welchen Befehlen können Sie Worte der Länge 8, 16, 32 und 64 Bit im Speicher reservieren? 8 BFL : BYTE 16 BFL : WYDE 32 BTT : TETRA 64 Bit : OCTA T k) Was ist der Loader? Tut aes Betriebs systems led aus Programme in den Arbeitsspeicher der Eestplatte l) Geben Sie Befehle an, mit denen Sie an Speicheradresse #2000000000000000 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 mit dem Wert 0x2000000000000000 ein

64 BE OCTA 64 BFL 64 MMIX-Programme 249 T m) Geben Sie Befehle an, mit denen Sie an Speicheradresse #2000000000000000 zwei 64 Bit Werte reservieren, die über die Marken Null, NaN und Inf angesprochen 3 werden können Null soll mit der Gleitkommazahl 00 initialisiert werden, NaN mit der Gleitkomma-Codierung Not a Number und Inf mit der Gleitkomma- Codierung unendlich Fügen Sie auch einen geeigneten Befehl zur Reservierung und Initialisierung eines globalen Registers mit dem Wert 0x2000000000000000 ein LOC # 2000000000000000 Nuee NAN 00000000 0000 FFFO S f e Betrachten Sie die folgenden Befehle: 0 11111111111 0000-0000 LOC #2000000000000000 X BYTE Y WYDE Z OCTA 1 11 GLUEKOMMAZAUL S e f 0 111 1 11 1111 1111 OFFFFF Greg OCTA # Inf OCTA # @ 52 : 1111 FFFOO -10 s - f- one mm mm oro OCTA # FFFFFFFFFFFFFFFF = oooo n) Geben Sie die Adressen an, an denen X und Y im Speicher abgelegt werden o) An welchen Adressen wird Z abgelegt?

-00 250 6 MMIX-Prozessor Betrachten Sie die folgenden Befehle: A B C D LOC #2000000000000000 WYDE TETRA BYTE OCTA T p) Geben Sie die Adressen an, an denen A, B, C und D im Speicher abgelegt werden 0 200 A : 16 BFL 0 200--01 02 03 04 05 06 07 08 Og 0 2000 00-0 2000 B : 32 BFL 01 durch 4 tetebare Adresse 0 2000 OA 0 2000 OB OC OD OE bis C : 8 BTT uiberall 0 2000 004 007 008 OF D: 64 BFL 10 4 durch 8 teilbare 11 0 2000 12, J bis tdresse 010 8 0 2000 017

252 6 MMIX-Prozessor T r) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein 64 Bit breites Datenwort anlegen, das mit der Marke Erg angesprochen werden kann, an den darauffolgenden Speicheradressen zwei 3-dimensionale Vektoren wie folgt anlegen: Der erste Vektor soll über V1 ansprechbar sein und mit den 32 Bit-Zahlen [100, 200, 300] initialisert werden; der zweite Vektor soll über V2 ansprechbar sein und mit den 32 Bit-Zahlen [10, 20, 30] initialisiert werden LOC Data greg OCTA @ Segment Erg V1 TETRA 100,200,300 VL TETRA 10, 20,30 V 1 TETRA 100 TETRA 200 TETRA ltvaquivalene 300 ( # 2000-000 V2 TETRA TETRA TETRA 10 20 30