Praktikum ASP Blatt 2 1. LEHRSTUHL FÜR RECHNERARCHITEKTUR UND PARALLELE SYSTEME Aspekte der systemnahen Programmierung bei der Spieleentwicklung

Ähnliche Dokumente
Befehle zur Verarbeitung von Daten ( data processing ):

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Praktikum ASP Blatt 2 6. LEHRSTUHL FÜR RECHNERTECHNIK UND RECHNERORGANISATION Aspekte der systemnahen Programmierung bei der Spieleentwicklung

Assembler am Beispiel der MIPS Architektur

Teil 2: Rechnerorganisation

Datenpfad einer einfachen MIPS CPU

Rechnerstrukturen 1: Der Sehr Einfache Computer

KOP / FBS - Programmierung

Assembler Integer-Arithmetik

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

ARM9 Kern Jiri Spale, Programmierung eingebetteter Systeme 1

Datenpfad einer einfachen MIPS CPU

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

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

4. Übung SPS-Programmierung

Grundlagen der Rechnerarchitektur. MIPS Assembler

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

Sucosoft S40 KOP/FBS KOP FBS

JMPCN Sprungbefehl nur ausführen, wenn VKE 0 ist. JMPC Sprungbefehl nur ausführen, wenn VKE 1 ist. JMP Ohne Bedingung zur Sprungmarke wechseln.

3. Mikroarchitekturen

ERA-Zentralübung Maschinenprogrammierung

13.2 Übergang zur realen Maschine

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

WiMa-Praktikum 1. Woche 8

Grundlagen der Rechnerarchitektur

Aspekte der systemnahen Programmierung bei der Spieleentwicklung

Rechnernetze und Organisation

Computersysteme. Serie 11

Mikrocomputertechnik

Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

"Organisation und Technologie von Rechensystemen 4"

, 2014W Übungsgruppen: Mo., Mi.,

Angewandte Mathematik und Programmierung

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

Zusammenfassung der Assemblerbefehle des 8051

Programmieren 1 C Überblick

Allgemeine Hinweise:

T1 Organisatorisches - Anmeldung Projektaufgaben

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21


Prinzipieller Aufbau und Funktionsweise eines Prozessors

Beispiel: A[300] = h + A[300]

Modellierung und Programmierung 1

Grundlagen der Rechnerarchitektur

Einführung in die Informatik

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

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

ERA-Zentralübung Maschinenprogrammierung

Praktikum Rechnerarchitektur

Microcomputertechnik

Technische Informatik I - HS 18

Datenpfad einer einfachen MIPS CPU

RISC-Prozessoren (1)

Grundlagen der Technischen Informatik. 13. Übung

Daniel Betz Wintersemester 2011/12

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Operatoren in C. Gastvorlesung Andreas Textor

Klausur ( ): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007

Programmierung eines Computers (Funktionsweise)

Einstieg imperative Programmierung auf Von-Neumann-Rechnern

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

Die ARM-Mikroarchitektur. Acorn RISC Machine ARM. Asm Prak SS03 p.1/13

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Assembler (NASM) Crashkurs von Sönke Schmidt

Technische Informatik I - HS 18

Einführung in die Informatik

Rechnergrundlagen SS Vorlesung

######################### Zeichenkette auswerten ###################################

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

Scheinklausur Informatik SS 2000: Praktische Informatik II

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

10. Die Adressierungsarten des MSP 430

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 1 6. Semester ARBEITSBLATT 1 DIFFERENTIALRECHNUNG

Programmiersprachen Einführung in C

Computational Engineering I

Architektur moderner GPUs. W. Sczygiol - M. Lötsch

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

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

Vorlesung Rechnerarchitektur. Einführung

Informatikgrundlagen I Grundlagen der Informatik I

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis

Geräteentwurf mit Mikroprozessoren 1

FAKULTÄT FÜR INFORMATIK

Computational Engineering I

Speichern von Zuständen

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.

C- Kurs 03 Ausdrücke und Operatoren

Mikroprozessor (CPU)

Kompilierung eines Programmes. Mnemonics, ld, GCC, AS

Assembler Kontrollstrukturen

Lösung 5. Übungsblatt

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

TI2 Übung 2. Hauptspeicher, 6809-Prozessor. 23. November 2004 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Transkript:

Praktikum ASP Blatt 2 1 LEHRSTUHL FÜR RECHNERARCHITEKTUR UND PARALLELE SYSTEME Aspekte der systemnahen Programmierung bei der Spieleentwicklung Arbeitsblatt 2 29.10.2018-04.11.2018 T1 Grundlagen der AArch64-Architektur Wiederholen Sie gemeinsam mit Ihrem Tutor die folgenden Grundlagen der 64-Bit ARM Architektur (AArch64). Diskutieren Sie insbesondere die Struktur der 31 General- Purpose-Register sowie die besonderen Aufgaben der Register sp, xzr und nzcv. Sprechen Sie ebenfalls über die Bedeutung und Verwendung der folgenden Instruktionen und ziehen Sie auch die offizielle ARM-Dokumentation heran: mov movk add sub cmp mul sdiv ldr str ldrb ldrsh strh b bl ret Was hat es mit den Condition Codes ne, eq, gt und le auf sich und wie lassen sich diese für Sprünge verwenden? T2 Kurzprogramme in AArch64-Assembler Programmieren Sie die folgenden kleinen Funktionen in AArch64-Assembler auf einem Blatt Papier oder in einem digitalen Notizbuch. Ziehen Sie auch die offizielle ARM- Dokumentation heran. 1. Der Wert von Register w13 soll um 10 erhöht werden und das Ergebnis in w5 geschrieben werden. 2. Der Wert des Registers w1 soll verdoppelt werden. 3. w4 soll den konstanten Wert 0x56 erhalten. 4. x0 soll den konstanten Wert 0xdeadbeef47111174 erhalten. 5. In Register w0 soll das Ergebnis eines XOR zwischen Register w1 und w2 geschrieben werden. 6. w0 = (x2 > x3? 1 : 0)

Praktikum ASP Blatt 2 2 T3 Analyse von Assembler-Kurzprogrammen Erläutern sie, was die folgenden Kurzprogramme ausführen. 1. ldr w2, [x1, 8] 2. ldrsb x2, [x1] 3. bl myfunc 4. ret 5. br x30 Worin besteht der Unterschied zu ret? 6. eor x0, x0, x0 7. cmp x0, 0 b.ge.lcont sub x0, xzr, x0.lcont: T4 Der Barrelshifter Im Folgenden werden wir uns mit einem mächtigen Feature der ARM-Plattform auseinandersetzen gemeint ist der Barrelshifter. Betrachten Sie dazu zunächst die folgende Grafik: Operand 1 Operand 2 Barrel Shifter ALU Ergebnis T4.1 Typen von Shifts Diskutieren Sie die Bedeutung der Grafik und skizzieren Sie dann die Funktionsweisen der unterschiedlichen Schiebeoperationen der ARM-Architektur in den folgenden Grafiken. Welche mathematische Bedeutung haben die einzelnen Operationen?

Praktikum ASP Blatt 2 3 LSL (Logical Shift Left) LSR (Logical Shift Right) ASR (Arithmetic Shift Right) 0000 T4.2 Verwendung des Barrel-Shifters Nachdem Sie sich die Bedeutungen der einzelnen Schiebebefehle bewusst gemacht haben, betrachten wir nun die Kombination von arithmetischen und bitverschiebenden Operatoren. Die Syntax lautet: <arith> <W X>d, <W X>n, <W X>m, <shift> <const> Wobei arith eine der arithmetisch-logischen Operationen (z.b. add, sub, and, or, eor) darstellt. Der Parameter shift ist zu ersetzen durch eine der Schiebeoperationen, welche Sie eingangs kennen gelernt haben. Der obige Ausdruck berechnet dann: Zur Verdeutlichung ein Beispiel: 1. Sie wollen x8 mit 17 multiplizieren: d = n <arith> (m <shift> <const>) x8 = x8 * 17 = x8 * (1 + 16) = x8 + x8 * 16 = x8 + x8 * 2 4 Der passende Assemblerbefehl lautet also add x8, x8, x8, lsl 4 Verwenden Sie nun den Barrelshifter um auf ähnliche Weise wie in den Beispielen die folgenden Berechnungen mit möglichst wenig Instruktionen auszuführen. Zerlegen Sie die Rechnung dazu möglichst geschickt. 1. x2 = x2 * 257 2. w21 = w21 / 65536 3. x16 = -3 * x16

Praktikum ASP Blatt 2 4 H1 Weitere Kurzprogramme Überlegen sie sich, welche mathematische Formel die folgenden Kurzprogramme berechnen. H1.1 Programm 1 Welcher Wert steht am Ende der folgenden Funktion in Register x0 für einen Eingabewert x in Register x0? 1 program1 : 2 mov x1, 2 3. Lloop : 4 cmp x0, 1 5 b.le. Lend 6 add x1, x1, x1 7 sub x0, x0, 1 8 b. Lloop 9. Lend : 10 mov x0, x1 11 ret H1.2 Programm 2 Welcher Wert steht am Ende der folgenden Funktion in Register x0 für die Eingabewerte x und y, jeweils in den Registern x0 und x1? 1 program2 : 2 cmp x1, 0 3 cneg x1, x1, lt 4 mul x0, x0, x1 5 ret H1.3 Programm 3 Welcher Wert steht am Ende der folgenden Funktion in Register x0 für den Eingabewert x in dem Registern x0? 1 program3 : 2 mov w1, 0 3. Lloop : 4 tst w0, 1 5 lsr x0, x0, 1 6 cinc w1, w1, ne 7 cbnz x0,. Lloop 8 mov w0, w1 9 ret

Praktikum ASP Blatt 2 5 Es besteht keine Verpflichtung, diese Hausaufgaben abzugeben. Sie dienen lediglich der Übung und werden in der folgenden Tutorstunde besprochen.