Tutorium Rechnerorganisation

Ähnliche Dokumente
Heute nur MIPS-Praxis (4 Aufgaben)

RO-Tutorien 15 und 16

Programmiersprachen Einführung in C

Technische Informatik I Übung 3: Assembler

Lösungsvorschlag zur 3. Übung

Technische Informatik I - HS 18

28. März Name:. Vorname. Matr.-Nr:. Studiengang

5.BMaschinensprache und Assembler

Klausur Mikroprozessortechnik 29. März 2010

Tutorium Rechnerorganisation

Zusammenfassung: Grundlagen der Informatik Zahlensysteme, b-adische Darstellung, Umrechnung Beispiel: Umrechnung von ( ) 10 ins Dualsystem

Vorlesung Rechnerarchitektur

Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme

Mikroprozessortechnik. 03. April 2012

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018

RO-Tutorien 3 / 6 / 12

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Grundlagen der Informationsverarbeitung:

Technische Informatik 1 Übung 2 Assembler (Computerübung) Matthias Meyer

Besprechung des 4. Übungsblattes Was ist MIPS? SPIM-Simulator MIPS-Befehlsformate MIPS-Befehle Assemblerdirektiven Syscalls in MIPS

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016

21. Februar Name:. Vorname. Matr.-Nr:. Studiengang

RO-Tutorien 15 und 16

Unterprogramme. Unterprogramme

Musterlösung zur Klausur

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

DuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 4 AM

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Einführung in die Systemprogrammierung

Unterstützung von Jump Tables

Einführung in die Systemprogrammierung

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Einführung in die Systemprogrammierung

RO-Tutorien 15 und 16

Tutorium Rechnerorganisation

Technische Informatik I - HS 18

Notwendigkeit für andere Instruktionsformate

Tutorium Rechnerorganisation

RO-Tutorien 3 / 6 / 12

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

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

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

Tutorium Rechnerorganisation

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21

Tutorium Rechnerorganisation

Computersysteme. Stacks Anwendung in der Assembler-Programmierung

Technische Informatik 1

RO-Tutorien 3 / 6 / 12

Technische Informatik 1 Übung 5: Eingabe/Ausgabe (Computerübung) Georgia Giannopoulou, ETZ G & 18.

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

Technische Informatik 1 - HS 2017

Assembler am Beispiel der MIPS Architektur

DuE-Tutorien 17 und 18

Stephan Brumme, SST, 2.FS, Matrikelnr

Die Maschinenprogrammebene eines Rechners Jörg Roth 294

Einführung. Saalübung Informatik II SS Einführung. Einführung

1. Teilklausur zur Vorlesung Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur. MIPS Assembler

Systemprogrammierung (37-023)

Technische Informatik II Rechnerarchitektur

Kontrollpfad der hypothetischen CPU

Allgemeine Lösung mittels Hazard Detection Unit

Kontrollpfad der hypothetischen CPU

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

Technische Informatik I - HS 18

Kap 5. 5 Die Maschinenprogrammebene eines Rechners. int a=1, b=2; a = a+2*b; Höhere Programmiersprache. Assembler und Maschinenprogramm

Technische Informatik I - HS 18

DuE-Tutorien 16 und 17

Lösungsvorschlag zur 2. Übung

Vorlesung Programmieren

Vorlesung Programmieren

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

Klausur zur Vorlesung Grundlagen der Rechnerarchitektur SS 2013

Beispiele von Branch Delay Slot Schedules

Aufgabe 1 : Assembler

Technische Informatik - Eine Einführung

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes

Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt

Technische Informatik 1 - HS 2016

Grundbegriffe der Informatik

Transkript:

Woche 6 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Heute Hello World, MIPS! (Wdh.) Übungsaufgaben 2 Christian A. Mandery:

Hello World, MIPS! (Wdh.).data hello:.asciiz "Hello World!\n".text.globl main main: li $v0, 4 la $a0, hello syscall jr $ra 3 Christian A. Mandery:

Aufgabe 1.1.data x:.word 3 y:.word 1, 3, 7.text subroutine: li $v0, 0 li $t3, 0 marke1: bge $t3, $a1, marke2 lw $t0, 0($a0) mul $t1, $t0, $t0 add $v0, $v0, $t1 addi $a0, $a0, 4 addi, $t3, $t3, 1 b marke1 marke2: jr $ra # Fortsetzung von links.globl main main: la $a0, Y lw $a1, x jal subroutine move $a0, $v0 li $v0, 1 syscall li $v0, 10 syscall jr $ra Welche Funktion das Unterprogramm subroutine? Welche Ausgabe hat das gesamte Programm? 4 Christian A. Mandery:

Aufgabe 1.2-1.4 Geben Sie die MIPS-Instruktionen zu den folgenden Pseudoinstruktionen an: b marke neg $s3, $s2 Was bewirkt die Assemblerdirektive.align 3? Warum dürfen bei Arithmetikoperationen mit doppelter Genauigkeit nur die Register mit gerader Registernummer verwendet werden? 5 Christian A. Mandery:

Aufgabe 1.2-1.4 Geben Sie die MIPS-Instruktionen zu den folgenden Pseudoinstruktionen an: b marke neg $s3, $s2 Was bewirkt die Assemblerdirektive.align 3? Warum dürfen bei Arithmetikoperationen mit doppelter Genauigkeit nur die Register mit gerader Registernummer verwendet werden? 5 Christian A. Mandery:

Aufgabe 1.2-1.4 Geben Sie die MIPS-Instruktionen zu den folgenden Pseudoinstruktionen an: b marke neg $s3, $s2 Was bewirkt die Assemblerdirektive.align 3? Warum dürfen bei Arithmetikoperationen mit doppelter Genauigkeit nur die Register mit gerader Registernummer verwendet werden? 5 Christian A. Mandery:

Aufgabe 1.5-1.6 Welche Adressen haben A, B, C und D im folgenden MIPS-Programmabschnitt?.data 0x10000003.align 3 A:.byte 6, 5 B:.word 7, 4 C:.double 3.1415 D:.float 2.71828 Welche Gründe machen die Programmierung der MIPS-Architektur schwierig? 6 Christian A. Mandery:

Aufgabe 1.5-1.6 Welche Adressen haben A, B, C und D im folgenden MIPS-Programmabschnitt?.data 0x10000003.align 3 A:.byte 6, 5 B:.word 7, 4 C:.double 3.1415 D:.float 2.71828 Welche Gründe machen die Programmierung der MIPS-Architektur schwierig? 6 Christian A. Mandery:

Aufgabe 2.1 Schreiben Sie die folgenden Kontrollstrukturen in MIPS-Assembler um. Sie dürfen nur die MIPS-Befehle slt, beq und bne verwenden. Zur Speicherung temporärer Variablen verwenden Sie das Register $at. Die Variable a ist im Register $t4, die Variable b im Register $s0. if ( a <= b ) {... } marke1: if ( a >= b ) {... } marke2: do { marke3:...... } while ( a!= b ); 7 Christian A. Mandery:

Aufgabe 2.1 Schreiben Sie die folgenden Kontrollstrukturen in MIPS-Assembler um. Sie dürfen nur die MIPS-Befehle slt, beq und bne verwenden. Zur Speicherung temporärer Variablen verwenden Sie das Register $at. Die Variable a ist im Register $t4, die Variable b im Register $s0. if ( a <= b ) {... } marke1: if ( a >= b ) {... } marke2: do { marke3:...... } while ( a!= b ); 7 Christian A. Mandery:

Aufgabe 2.1 Schreiben Sie die folgenden Kontrollstrukturen in MIPS-Assembler um. Sie dürfen nur die MIPS-Befehle slt, beq und bne verwenden. Zur Speicherung temporärer Variablen verwenden Sie das Register $at. Die Variable a ist im Register $t4, die Variable b im Register $s0. if ( a <= b ) {... } marke1: if ( a >= b ) {... } marke2: do { marke3:...... } while ( a!= b ); 7 Christian A. Mandery:

Aufgabe 2.2 Was sind die Unterschiede zwischen einer statischen Speicherallokierung und einer dynamischen Speicherallokierung? 8 Christian A. Mandery:

Aufgabe 3.1a Schreiben Sie die folgende C-Kontrollstruktur in MIPS-Assembler um. a = b = c = 0; if (i < 5) { a = 1; b = 2; c = 3; } d = 5; 9 Christian A. Mandery:

Aufgabe 3.1b Schreiben Sie die folgende C-Kontrollstruktur in MIPS-Assembler um. a = b = c = 0; if (i < 5) { a = 1; b = 2; c = 3; } else { a = 4; b = 5; c = 6; } d = 5; 10 Christian A. Mandery:

Aufgabe 3.1c Schreiben Sie die folgende C-Kontrollstruktur in MIPS-Assembler um. int a[100];... sum = 0; for (i = 0; i < 100; i++) sum = sum + a[i]; 11 Christian A. Mandery:

Aufgabe 3.2-3.3 Beschreiben Sie die Funktion der folgenden MIPS-Befehle: 1. addu $t3, $t2, $t1 2. andi $t3, $t2, 0x2000 3. slt $t3, $t2, $t1 4. lui $t3, 0x2000 In welchem Register wird die Rücksprungadresse beim Unterprogrammaufruf gespeichert? 12 Christian A. Mandery:

Aufgabe 4 (ohne 4.2) Geben Sie für das folgende MIPS-Programmstück den Inhalt des Zielregisters nach der Ausführung des jeweiligen Befehls in hexadezimaler Schreibweise an. ori $s1, $zero, 20 sll $s2, $s1, 3 slti $s3, $s2, 100 sub $s4, $s3, $s2 lui $s5, -7 Was ist ein Pseudobefehl? Was ist eine Assemblerdirektive? Wie ist die Trennung von Programmen und Daten bei der Ihnen bekannten MIPS-R2000-Architektur realisiert? 13 Christian A. Mandery:

Organisatorisches Übungsblätter sind im Allgemeinen alleine zu bearbeiten und handgeschrieben abzugeben MIPS-Aufgaben: dürfen elektronisch (Datenträger oder E-Mail) abgegeben werden dürfen in Gruppen von bis zu drei Personen bearbeitet werden 14 Christian A. Mandery:

Fertig! 15 Christian A. Mandery: