Tutorübung 7: Mikroprogrammierung I



Ähnliche Dokumente
FAKULTÄT FÜR INFORMATIK

Mikrocomputertechnik. Einadressmaschine

Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt.

Technische Informatik 2 Adressierungsarten

Mikroprozessor als universeller digitaler Baustein

Wiederholungsklausur. Einführung in die Rechnerarchitektur

Rechnerarchitektur. M. Jakob. 1. Februar Gymnasium Pegnitz

Einführung in die Rechnerarchitektur (ERA) Zentralübung 6 am 2. Dezember 2016

Klausur Einführung in die Rechnerarchitektur

Ich melde meinen Sohn / meine Tochter verbindlich für den!biku Osterferien-Intensivkurs 2016 in der Gruppe an:

Mikrocomputertechnik. Adressierungsarten

Theoretische Grundlagen der Informatik

ERA-Zentralübung 6. Maximilian Bandle LRR TU München ERA Zentralübung 6 Maximilian Bandle 1

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Endklausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode

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

5. Programmierung in Maschinensprache

Prozessor HC680 fiktiv

FAKULTÄT FÜR INFORMATIK

Rechnerarchitektur. Inhaltsverzeichnis. M. Jakob. 1. Februar Aufbau eines Computersystems Praktische Grundlagen Von-Neumann-Rechner

Klausur Einführung in die Rechnerarchitektur

Klausur zur Vorlesung

Klausur "Informatik I" vom Teil "Rechnerstrukturen"

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

2. Übung: Flipflops und Automaten Abteilung Verteilte Systeme, Universität Ulm

FAKULTÄT FÜR INFORMATIK

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

Technische Informatik. Der VON NEUMANN Computer

einfache PIC-Übungsprogramme

Lösung 1. Übungsblatt

Rechnerorganisation. H.-D. Wuttke `

Klausur "Informationstechnische Grundlagen" WS 2012/2013

Exportschnittstelle Makler 2000 Immowelt

MOP: Befehlsliste für den Mikrocontroller 8051

Einführung in die Informatik

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

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Von-Neumann-Architektur

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Geräteentwurf mit Mikroprozessoren 1

Übung - Datensicherung und Wiederherstellung in Windows Vista

Klausur Einführung in die Rechnerarchitektur

4.2 gesis EIB V-0/2W 1

Grundbegriffe der Informatik

MÄRZ 2004 DORIS STEINEGGER

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

Anleitung zur Mailumstellung Entourage

Grundbegriffe der Informatik

Teil VIII Von Neumann Rechner 1

Lösung 5. Übungsblatt

Hier erfassen bzw. ändern Sie eine einzelne Adresse. Andere Detail-Dialoge funktionieren ähnlich. Wichtige Schaltflächen in cobra Web CRM

Klausur Einführung in die Rechnerarchitektur

tentoinfinity Apps 1.0 EINFÜHRUNG

Page Hotelsoftware. Merkblatt für Mehrwertsteuer-Umstellung für Beherbergungsleistungen zum

Klausur Einführung in die Rechnerarchitektur

EDV-Fortbildung Kombi-Schulung Word-Excel Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel

Aufbau eines Taschenrechners

IFV Informatik für Verbände

Übungen zur Softwaretechnik

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Mächtigkeit von WHILE-Programmen

Das BGV online-archiv. Kurzanleitung für Anwender

Funktionaler Aufbau eines Computers Untersuchung von Delphi-Compilaten

ACDSee Pro 3-Tutorials: Versenden von Bilder an eine FTP-Site

twentyone die wichtigsten Funktionen Modul Tätigkeiten: Termine und Aufgaben des aktiven Benutzers

Theorie der Informatik

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

L5-Endevaluation WS04/05

Programmierung Weichenmodul S/D Tafel 1

teischl.com Software Design & Services e.u. office@teischl.com

Sichern der s via IMAP

Teil 2: Rechnerorganisation

Anleitung Union Homepage

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Algorithmische Kryptographie

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Technische Informatik - Eine Einführung

FAKULTÄT FÜR INFORMATIK

Installation und Bedienung von vappx unter ios

Anleitung Grundsetup C3 Mail & SMS Gateway V

Grundlagen der Informatik

Lösungsvorschlag zur 4. Übung

Applikation servotec Antriebsparameter Optimieren

Bedienungsanleitung BITel WebMail

EFFC Störfall/Unfallmeldung Bedienungsanleitung. Analyse der Unfälle im Spezialtiefbau

EH2000 Ablauf am Morgen

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Abbildung 4.1: Blockschaltbild des mikroprogrammierbaren Beispielrechners

Die Spezifikationssprachen Z und VDM. Michael Hildebrandt

FAKULTÄT FÜR INFORMATIK

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag)

Anleitung Voic boxPro

Aktivierungsanleitung für Postbank BestSign mit Seal One

PSRDesigner. Punkt und Streifenrasterplatinen Designer

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Transkript:

Tutorübung 7: Mikroprogrammierung I Vorlesung Einführung in die Technische Informatik (ETI) Lehrstuhl für Rechnertechnik und Rechnerorganisation Institut für Informatik 10 Technische Universität München

Sedezimalzahlen 1.Zahl: 0101 0101 1111 1010 2.Zahl: 1111 1010 0101 0000 3.Zahl: 1111 1010 0101 0000

Sedezimalzahlen 1.Zahl: 0101 0101 1111 1010 = 55f5 2.Zahl: 1111 1010 0101 0000 = fa50 3.Zahl: 1111 1010 0101 0000 = 05f5

Oktalzahlen 1.Zahl: 010 011 111

Oktalzahlen 1.Zahl: 010 011 111 = 237

Endlicher (Kaffee)-automat Zustände z1 := Automat wartet auf Kunden (Anfangszustand) z2 := Automat wartet auf Geldeinwurf z3 := Automat gibt Kaffee aus Eingabe G := Ein Geldstück wurde eingeworfen.!g := Es wurde 1 Minute lang kein Geld eingeworfen. K := Der Knopf wurde gedrückt. Ausgabe B1 := Bitte Knopf drücken! B2 := Bitte Geld einwerfen!

Endlicher (Kaffee)-automat Ausgabefunktion λ(z1) := B1 λ(z2) := B2 λ(z3) := {}

Endlicher (Kaffee)-automat z1 ε z2 K!G δ z1 z2 z3 G K z2 z2 z1 G z1 z3 z1!g z1 z1 z1 z3

Befehlstabelle Befehl Opcode Länge Beschreibung CMP RB 01 16 16 Bit setzt Zeroflag, falls 0 = RB ADD RA, RB 05 16 16 Bit RB := RB + RA DEC RB 06 16 16 Bit RB := RB 1 MOV imm, RB 0E 16 32 Bit RB := imm MOV RA, addr 0F 16 32 Bit [addr] := RA JZ addr A1 16 32 Bit falls Zeroflag gesetzt, Sprung nach addr JMP addr A2 16 32 Bit unbedingter Sprung nach addr

Bitte disassemblieren! Speicherauszug: Adresse Inhalt 1A35... 1A36 0E02 1A37 0000 1A38 0100 1A39 A100 1A3A 1A3F 1A3B 0512 1A3C 0600 1A3D A200 1A3E 1A38 1A3F... Befehlstabelle: Befehl Opcode Länge CMP RB 01 16 16 Bit ADD RA, RB 05 16 16 Bit DEC RB 06 16 16 Bit MOV imm, RB 0E 16 32 Bit MOV RA, addr 0F 16 32 Bit JZ addr A1 16 32 Bit JMP addr A2 16 32 Bit

Lösung Speicherauszug: Adresse Inhalt 1A35... 1A36 0E02 1A37 0000 1A38 0100 1A39 A100 1A3A 1A3F 1A3B 0512 1A3C 0600 1A3D A200 1A3E 1A38 1A3F... Assemblerprogramm: MOV 0x0000, r2 schleife: CMP r0 JNZ ende ADD r1, r2 DEC r0 JMP schleife ende:

Lösung Opcodes Speicherauszug: Adresse Inhalt 1A35... 1A36 0E02 1A37 0000 1A38 0100 1A39 A100 1A3A 1A3F 1A3B 0512 1A3C 0600 1A3D A200 1A3E 1A38 1A3F... Assemblerprogramm: MOV 0x0000, r2 schleife: CMP r0 JNZ ende ADD r1, r2 DEC r0 JMP schleife ende:

Lösung Registeroperanden Speicherauszug: Adresse Inhalt 1A35... 1A36 0E02 1A37 0000 1A38 0100 1A39 A100 1A3A 1A3F 1A3B 0512 1A3C 0600 1A3D A200 1A3E 1A38 1A3F... Assemblerprogramm: MOV 0x0000, r2 schleife: CMP r0 JNZ ende ADD r1, r2 DEC r0 JMP schleife ende:

Lösung Direktoperanden Speicherauszug: Adresse Inhalt 1A35... 1A36 0E02 1A37 0000 1A38 0100 1A39 A100 1A3A 1A3F 1A3B 0512 1A3C 0600 1A3D A200 1A3E 1A38 1A3F... Assemblerprogramm: MOV 0x0000, r2 schleife: CMP r0 JNZ ende ADD r1, r2 DEC r0 JMP schleife ende:

CMP RB

CMP RB Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler (warum?)

CMP RB Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler (warum?) Rechenwerk: berechne 0+RB, setze Zeroflag entsprechend

ADD RA,RB sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler

ADD RA,RB sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler Rechenwerk: berechne RA+RB, setze Flags entsprechend Rechenwerk: speichere Ergebnis in RB

DEC RB Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler

DEC RB Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler Rechenwerk: berechne RB-1, setze Flags entsprechend Rechenwerk: speichere Ergebnis in RB

MOV imm, RB sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler

MOV imm, RB sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler Speicher: sende Befehlszähler an Speicher (Adressbus) liefere imm-wert (Datenbus)

MOV imm, RB sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler Speicher: sende Befehlszähler an Speicher (Adressbus) liefere imm-wert (Datenbus) Rechenwerk: berechne imm+0, Flags werden nicht geändert Rechenwerk: Speichere Ergebnis in RB

MOV imm, RB sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler Speicher: sende Befehlszähler an Speicher (Adressbus) liefere imm-wert (Datenbus) Rechenwerk: berechne imm+0, Flags werden nicht geändert Rechenwerk: Speichere Ergebnis in RB inkrementiere Befehlszähler (warum?)

MOV RA, addr sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler sende Befehlszähler an Speicher (Adressbus) Speicher: liefere addr-wert (Datenbus)

MOV RA, addr sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler sende Befehlszähler an Speicher (Adressbus) Speicher: liefere addr-wert (Datenbus) Rechenwerk: sende addr an Speicher (Adressbus) Rechenwerk: Berechne RA+0, Flags werden nicht geändert Rechenwerk: sende Ergebnis an Speicher (Datenbus) Speicher: speichere Ergebnis

MOV RA, addr sende Befehlszähler an Speicher (Adressbus) Speicher: liefere Befehl (Datenbus) inkrementiere Befehlszähler sende Befehlszähler an Speicher (Adressbus) Speicher: liefere addr-wert (Datenbus) Rechenwerk: sende addr an Speicher (Adressbus) Rechenwerk: Berechne RA+0, Flags werden nicht geändert Rechenwerk: sende Ergebnis an Speicher (Datenbus) Speicher: speichere Ergebnis inkrementiere Befehlszähler

JZ addr Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler

JZ addr Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler falls Zeroflag gesetzt: inkrementiere Befehlszähler sonst: sende Befehlszähler an Speicher (Adressbus) Speicher: liefere addr-wert (Datenbus) setze Befehlszähler auf addr

JMP addr Speicher: Speicher: sende Befehlszähler an Speicher (Adressbus) liefere Befehl (Datenbus) inkrementiere Befehlszähler sende Befehlszähler an Speicher (Adressbus) liefere addr (Datenbus) setze Befehlszähler auf addr