Unterprogramme mittels Stack (Forts.)

Größe: px
Ab Seite anzeigen:

Download "Unterprogramme mittels Stack (Forts.)"

Transkript

1 Unterprogramme mittels Stack (Forts.) gleiches Beispiel mit direkter Übergabe aller Parameter (8-Bit Wert a, 16-Bit Wert b, 16-Bit Ergebnis) durch call by value auf Stack: LDB a * Lade 8-Bit Wert a PSHS B * Schreibe a auf Stack LDD b * Lade 16-Bit Wert b PSHS D * Schreibe b auf Stack LEAS -2,S * 16 Bit auf Stack für Ergebnis reservieren jsr mul8x16 * Aufruf Unterprogramm PULS D * Lade 16-Bit Produkt axb vom Stack LEAS 3,S * Stack aufräumen!!!... mul8x16 LDA 6,S * Lade a vom Stack LDB 5,S * Lade Low Byte von b vom Stack MUL STD 2,S * Teilprodukt auf Stack zwischenspeichern LDA 6,S * Lade nochmals a vom Stack LDB 4,S * Lade High Byte von b vom Stack MUL TFR B,A * Schiebe D um 8 Bitpositionen nach links CLRB ADDD 2,S * Addition der beiden partiellen Produkte STD 2,S * Speichere Ergebnis auf Stack RTS 26

2 Unterprogramme mittels Stack (Forts.) auf dem 6809 ist die direkte Übergabe aller Parameter mittels call by value in Registern nicht sinnvoll, da nur ein einzelnes 16-Bit Datenregister vorhanden ist auch Kombinationen sind möglich, z.b. alle Eingabeparameter auf Stack, Ergebnis in Register evtl. sind zu Beginn eines Unterprogrammes einige Register auf dem Stack zu sichern und am Ende zurückzuholen, um im Hauptprogramm den Prozessorzustand wiederherstellen zu können (z.b. das CC-Register oder alle im Unterprogramm benutzen Register) bei rekursiv verwendbaren Unterprogrammen sollten alle Parameter mittels Stack übergeben werden und auch alle Zwischenergebnisse auf dem Stack festgehalten werden, um ein Überschreiben zu verhindern! 27

3 Beispiel: Rekursives Unterprogramm 6809-Assemblerprogramm zur rekursiven Berechnung der Fakultät n! Parameter auf Stack: Rücksprungadresse (2 Byte) an Adresse S Ergebnis (1 Byte) an Adresse S+2 n (1 Byte) an Adresse S+3 fac LDA 3,S * Lade n TSTA * Teste n auf 0 BEQ ready * wenn n=0, dann Rekursionsabbruch DECA PSHS A * PUSH n-1 LEAS -1,S * reserviere 1 Byte für Ergebnis fak(n-1) auf Stack JSR fac * Berechne fak(n-1) PULS B * POP fak(n-1) PULS A * POP n MUL * Bilde n * fak(n-1) STB 2,S * Speichere niedriges Byte von Produkt auf Stack RTS ready LDB #1 * fak(0) initialisieren STB 2,S * und als Ergebnis auf Stack legen RTS 28

4 System- und Sonstige Befehle des 6809 Befehle, die überwiegend zur Systemprogrammierung benötigt werden: ANDCC ORCC CWAI RTI SWI, SWI2, SWI3 SYNC weitere diverse Befehle: UND von CC und Maske (nur unmittelbare Adr.) dito, mit ODER Warte auf Interrupt Returm from Interrupt Löse Software-Interrupt 1, 2 oder 3 aus Synchronisation mit Interrupt NOP JMP BRN, LBRN BSR, LBSR No Operation Lade PC mit effektiver Adresse Branch Never Branch to Subroutine (mit relativer Adr.) 29

5 Interrupts Unterbrechungen ( Interrupts ) stellen eine effiziente Methode dar, um auf asynchrone externe Ereignisse (z.b. Eintreffen eines Signals von E/A-Gerät) oder interne Ereignisse (z.b. Ausnahmebehandlungen oder Systemaufrufe) zu reagieren wenn eine Unterbrechungsanforderung vorliegt, werden 1) die aktuelle Instruktion zu Ende ausgeführt 2) die Akzeptierbarkeit zum momentanen Zeitpunkt überprüft nur falls Unterbrechung akzeptierbar ist: 3) ggf. der Peripherie die Akzeptanz mitgeteilt (z.b. durch Signal IACK) 4) der aktuelle Prozessorzustand auf Stack gerettet 5) eine Interrupt-Behandlungsroutine ausgewählt 6) die Behandlungsroutine ausgeführt 7) alter Prozessorzustand aus Stack wiederhergestellt 30

6 6809 Interrupts auf dem 6809 wird eine Unterbrechung wird ausgelöst, wenn für mindestens einen Taktzyklus das externe Signal RES anliegt (Reset) bei fallender Flanke des Taktes Q das externe Signal NMI aktiv ist ( Non Maskable Interrupt ) bei fallender Flanke des Taktes Q eins der externen Signale IRQ ( Interrupt Request ) oder FIRQ ( Fast Interrupt Request ) aktiv ist und das I-Flag bzw. das F-Flag im Statusregister nicht gesetzt ist eine der Instruktionen SWI, SWI2 oder SWI3 ausgeführt wird (Software-Interrupt bzw. Systemaufruf) bei IRQ, NMI, SWI/2/3 werden alle Register auf Systemstack gerettet (und E-Flag gesetzt), bei FIRQ nur PC und CC (Reaktionszeit bei IRQ oder NMI: 21 Takte, bei FIRQ: 12 Takte) bei mehreren gleichzeitig vorliegenden Unterbrechungsanforderungen erfolgt Auswahl über feste Priorität: RES > NMI > SWI > FIRQ > IRQ > SWI2 > SWI3 31

7 6809 Interrupts (Forts.) die Auswahl der Behandlungsroutine erfolgt über eine Interrupt-Tabelle, in der die Startadressen (sog. Interruptvektoren) aller Behandlungsroutinen eingetragen sind: Speicheradresse High Byte Low Byte FFF0 FFF1 FFF2 FFF3 FFF4 FFF5 FFF6 FFF7 FFF8 FFF9 FFFA FFFB FFFC FFFD FFFE FFFF enthält Startadresse von Behandlungsroutine für Reserved (nicht verwendbar) SWI3 SWI2 FIRQ IRQ SWI NMI Reset Falls Interrupt-Tabelle im ROM-Bereich liegt, beschreiben Tabelleninhalte die Adressen von indirekten JMP-Befehlen, die zu Behandlungsroutinen an benutzerdefinierten Adressen im RAM-Bereich springen (i.a. nicht für Reset) 32

8 Beispiel einer Interruptroutine 6809-Assemblerprogramm für Hardwareinterrupt: Inkrementieren eines 16-Bit Zeitzählers nach Eingang eines FIRQ-Signals von externem Timer: firqadr equ $FFF6 firmask equ % org $100 init CLR stime * Lösche 16-Bit Zeitzähler CLR stime+1 LDX #timer * Belege Interrupt-Tabelleneintrag (im RAM!) STX firqadr * mit der Startadresse der Behandlungsroutine ANDCC #firmask * Aktiviere FIRQ im CC-register... org $1000 timer PSHS D * Rette Inhalt von D-Register LDD stime * Lade 16-Bit Zähler ADD #1 * Inkrementiere 16-Bit Zähler STD stime * Speichere Zäahlerstand PULS D * Restauriere D-register RTI stime rmb 2 * Speicherplatz für 16-Bit Zähler 33

9 Kontrollkonstrukte im 6809-Assembler Realisierung von if z.b. in C: unsigned int p,q; if (p>q) {...} else {...}; in Assembler Verwendung des komplementären Branchbefehls: LDD p CMPD q BLS else... * Befehle des... * then Zweigs BRA cont else... * Befehle des... * else Zweigs cont... Realisierung von for-schleife z.b. in C: unsigned int i; for (i=1; i<n; i++) {...}; in Assembler Überprüfung der Abbruchbedingung zu Beginn der Schleife: LDB #1 loop CMPB #N * nur für N<256! BHS cont... * Befehle aus... * Schleifenrumpf INCB BRA loop cont... 35

10 Kontrollkonstrukte (Forts.) Realisierung von while-schleife z.b. in C: int p,q; while (p<q) {...}; in Assembler Überprüfung der Bedingung am Schleifenbeginn mit komplementärem Branchbefehl: again LDD p CMPD q BGE cont... * Befehle aus... * Schleifenrumpf BRA again cont... bei repeat-schleifen Überprüfung der Bedingung am Schleifenende Realisierung des case-konstrukts z.b. in C: unsigned char i; switch (i) { case 1: {...};break; case 2: {...};break; default: {...}; } in Assembler Realisierung mittels Sprungtabelle: LDB i LDX #jtab CMPB #imax BHI cont LSLB JMP [B,X] cont... * Befehle für... * default Fall jtab fdb case1,case2,... 36

Adressierungsarten des 6809 (Forts.)

Adressierungsarten des 6809 (Forts.) Adressierungsarten des 6809 (Forts.) Zusammenfassung zur indizierten Adressierung: 19 Beispiel-Programm 1 für 6809 6809-Assemblerprogramm zur Suche nach Leerzeichen (space, tab, return) in einem String:

Mehr

34 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

34 Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors. 4.8 Implizite Adressierung 4.1 Befehlscodierung Befehlscodierung benötigt keine zusätzlichen Angaben (Implied) z.b. NEGA oder MUL 4.9 Registeradressierung Befehle TFR, EXG benötigen Registerangaben (Register)

Mehr

Aufgabe I: Im einzelnen soll das Hauptprogramm:

Aufgabe I: Im einzelnen soll das Hauptprogramm: Aufgabe I: Gesucht ist ein Programm, das zwei Lauflichter realisiert. Das erste werde in der Siebensegment-Anzeige durch genau ein aktiviertes mittleres Segment g dargestellt, das von rechts nach links

Mehr

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

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

11. Unterprogrammtechnik

11. Unterprogrammtechnik 11 Unterprogrammtechnik 111 Sprung und Rücksprung 112 Retten der Register 113 Parameter-Übergabe Programmierkurs II Wolfgang Effelsberg 11 Unterprogrammtechnik 11-1 111 Sprung und Rücksprung BSR Verzweige

Mehr

Mikrocomputertechnik. Unterprogramm

Mikrocomputertechnik. Unterprogramm Unterprogramm Ein Teilproblem wird entweder zur mehrmaligen Verwendung oder zur Programmstrukturierung als Unterprogramm codiert. Ein Unterprogramm wird von einem übergeordneten Programm (Hauptprogramm)

Mehr

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, UP Stack (Stapel, FIFO) wird benötigt UP-Ruf:

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

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

TI2 Übung 2. Hauptspeicher, 6809-Prozessor. 23. November 2004 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik Universität Ulm Fakultät für Informatik Abteilung Verteilte Systeme Projektgruppe AspectIX TI2 Übung 2 Hauptspeicher, 6809-Prozessor 23. November 2004 (WS 2004) Andreas I. Schmied (schmied@inf...) 1 Hauptspeicher

Mehr

Sprungbefehle und Kontroll-Strukturen

Sprungbefehle und Kontroll-Strukturen Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter

Mehr

MOTOROLA MC Befehlssatz

MOTOROLA MC Befehlssatz Rechnersysteme MOTOROLA MC 689 Befehlssatz Otto-von-Guericke-Universität Magdeburg Unzulänglichkeiten des Modellrechners sehr kleiner Instruktionssatz keine Konstanten viele Speicherzugriffe nur eine Bedingung

Mehr

Computersysteme. Stacks Anwendung in der Assembler-Programmierung

Computersysteme. Stacks Anwendung in der Assembler-Programmierung Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php

Mehr

2

2 TINF Interrupts EDT-Referat Jürgen Schwarzbauer 2ANB 1995/96 Inhalt : Was ist ein Interrupt? Zweck von Interrupts Maskierbare und nicht maskierbare Interrupts Aufruf eines Interrupts Anwendung von Interrupts

Mehr

SMP Übung 8 - Lösungsvorschlag

SMP Übung 8 - Lösungsvorschlag 1. Aufgabe: A/D-Wandlermethode auswählen Eine analoge Eingangsgröße, die Temperatur, soll in dieser Aufgabe in ein digitales Ausgangssignal umgewandelt werden. Aus Rechnertechnologie 2 sind folgende Methoden

Mehr

Übung 7. Mikroprozessor & Eingebettete Systeme 1

Übung 7. Mikroprozessor & Eingebettete Systeme 1 Übung 7 Mikroprozessor & Eingebettete Systeme 1 WS2015/2016 Hinweis: Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende Kenntnis zu vermitteln; sie sollen lediglich den Einstieg in weiterführende

Mehr

Assembler-Unterprogramme

Assembler-Unterprogramme Assembler-Unterprogramme Rolle des Stack Prinzipieller Ablauf Prinzipieller Aufbau Unterprogramme void main(void) int sub(int i) { { int i,k; return i*2; i = sub(13); } k = sub(14); } Wie macht man das

Mehr

TI-Übung Assembler. Andreas I. Schmied AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS2005

TI-Übung Assembler. Andreas I. Schmied AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS2005 TI-Übung 2 6809-Assembler Andreas I. Schmied (andreas.schmied@uni-ulm.de) AspectIX-Team Abteilung Verteilte Systeme Universität Ulm WS2005 6809 Wiederholung (1) 8/16-Bit Prozessor Register: A/B/D, S, U,X,

Mehr

Name : Klasse : Punkte : Note :

Name : Klasse : Punkte : Note : Name : Klasse : Punkte : Note : Zeit: 08.00 bis 09.30 Es dürfen alle Unterlagen verwendet werden. Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf

Mehr

Interruptverarbeitung

Interruptverarbeitung Interruptverarbeitung Ein Interruptaufruf unterbricht die gerade ablaufende Befehlsfolge in der Weise, daß nach Beendigung des laufenden Befehls nicht der nächste Befehl des Hauptprogramms ausgeführt,

Mehr

Fachhochschule Niederrhein

Fachhochschule Niederrhein Fachhochschule Niederrhein µp-technik Kapiel 4 RESET RESET- Verhalen Kalsar mi dem Einschalen der Versorgungsspannung eines Neusar (Warmsar) nach einem Rechner-Absurz : Syseminiialisierung := ($FFFE:FFFF)

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Fachhochschule Niederrhein

Fachhochschule Niederrhein Fachhochschule Niederrhein µp-technik Kapitel 3 VVVVVVVV VVVVVVVV VVVVVVVVVV VVVVVVVVVVVVVVVVVVVVV ENDOC RTI Ruecksprung aus Zweig COUNT VVVVVVVVVVVVVVVVV VVVVVV VVVVVVVVVVV VVVVVVVVVVVVV VVVVVVVVVVVVVV

Mehr

Technische Informatik I Übung 3: Assembler

Technische Informatik I Übung 3: Assembler Technische Informatik I Übung 3: Assembler Roman Trüb Computer Engineering Group, ETH Zürich 1 Lernziele Übung 3 Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Assembler Codeanalyse Aufgabe 2

Mehr

Assembler Kontrollstrukturen

Assembler Kontrollstrukturen Assembler Kontrollstrukturen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Kontrollstrukturen 1/21 2008-04-03 Kontrollstrukturen

Mehr

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

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

Mehr

Vorlesung Rechnerarchitektur

Vorlesung Rechnerarchitektur Vorlesung Rechnerarchitektur Sommersemester 2017 Carsten Hahn 8. Juni 2017 Agenda Grundlagen: Wiederholung Kontroll-Strukturen Stack-Speicher Unterprogramme I Unterprogramme II Call-by-Value (CBV) vs.

Mehr

Mikrocontroller-Programmierung

Mikrocontroller-Programmierung Mikrocontroller-Programmierung Anhand des HC12 Fabian Wiesel Überblick Überblick Mikrocontroller Überblick HC12 CPU Peripherie des DG128 Assemblerprogrammierung Mikrocontroller Leistungsfähigkeit: zwischen

Mehr

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

Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester 2016 Lorenz Schauer Mobile & Verteilte Systeme 12. Juli 2016 Agenda heute Grundlagen: Unterprogramme I Call-by-Value (CBV) vs. Call-by-Reference

Mehr

Zusammenfassung der Assemblerbefehle des 8051

Zusammenfassung der Assemblerbefehle des 8051 Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach

Mehr

Betriebssysteme Teil 3: Laufzeitsystem für Programme

Betriebssysteme Teil 3: Laufzeitsystem für Programme Betriebssysteme Teil 3: Laufzeitsystem für Programme 23.10.15 1 Literatur [3-1] Stack: http://fbim.fh-regensburg.de/~hab39652/pg1/skriptum/ ausdruecke/maschinenmodell.html [3-2] https://de.wikipedia.org/wiki/dynamischer_speicher

Mehr

Maschinenbefehlssätze. an Beispielen von: Motorola: MC 6809 ATMEL: AVR ATmega

Maschinenbefehlssätze. an Beispielen von: Motorola: MC 6809 ATMEL: AVR ATmega Technische Informatik-I Maschinenbefehlssätze an Beispielen von: Motorola: MC 6809 ATMEL: AVR ATmega Otto-von-Guericke-Universität Magdeburg Unzulänglichkeiten des Modellrechners sehr kleiner Instruktionssatz

Mehr

Prozesse vs. Threads

Prozesse vs. Threads Prozesse vs. Threads Verwaltungsaufwand von Threads ist deutlich geringer Effizienzvorteil: bei einem Wechsel von Threads im gleichen Prozessraum ist kein vollständiger Austausch des Prozesskontextes notwendig.

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das

Mehr

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche

Mehr

Einführung in AVR Assembler

Einführung in AVR Assembler Einführung in AVR Assembler Dennis Fassbender Institut für Technik Autonomer Systeme (LRT8) Universität der Bundeswehr München 09042014 Was ist Assembler? Low-level-Programmiersprache Erlaubt direkten

Mehr

SMP Übung 9 - Lösungsvorschlag

SMP Übung 9 - Lösungsvorschlag 1. Aufgabe: Sieben Segment Anzeigen, Multiplexing, a) Bestimmung der Zeichenkodierung Bei der Zeichenkodierung ist zu beachten, dass ein Low-Pegel auf der Leitung PDA(j) (in Verbindung mit einem Low- Pegel

Mehr

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle

Mehr

Praktikum Mikrorechner 11 (Timer 1)

Praktikum Mikrorechner 11 (Timer 1) Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 1/27 Praktikum Mikrorechner 11 (Timer 1) Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal

Mehr

Vorbemerkungen zum 5. Versuchstag:

Vorbemerkungen zum 5. Versuchstag: Vorbemerkungen zum 5. Versuchstag: Ziel des fünften Versuchstages ist es:! Die Verbindung von Mikroprozessoren mit peripheren Geräten kennen zu lernen;! den Umgang mit Peripherie-Bausteinen zu üben; Im

Mehr

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Unterstützung von Jump Tables

Unterstützung von Jump Tables Unterstützung von Jump Tables Assembler Code: Label_ 1: Label_2: Label_n: Maschinen Code: 0x05342120: 1011010110 0x05443004: 0001011101 0x06756900: 0000111000 Jump Table Nr Label Adresse 0 Label_1 0x05342120

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Inhaltsübersicht. 1. Aufbau eines Maschinenbefehls. 2. Adressierungsarten. 3. Indizierte Adressierung. 4. Befehlssatz

Inhaltsübersicht. 1. Aufbau eines Maschinenbefehls. 2. Adressierungsarten. 3. Indizierte Adressierung. 4. Befehlssatz Kurs 7: Mikrorechner-Praktikum Inhaltsübersicht. Aufbau eines Maschinenbefehls. Adressierungsarten. Indizierte Adressierung. Befehlssatz. Verzweigungsbefehle und Berechnung von relativen Sprungadressen

Mehr

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

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04. Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.

Mehr

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

Klausur ( ): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007 Klausur (27.07.2007): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007 Vorname :.............................................. Name :.............................................. Matrikelnummer

Mehr

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

AVR-Mikrocontroller in BASCOM programmieren, Teil 2 jean-claude.feltes@education.lu 1 AVR-Mikrocontroller in BASCOM programmieren, Teil 2 13. Interrupts 13.1 Externe Interrupts durch Taster Wenn Taster mittels Polling abgefragt werden, wie in Teil 1 beschrieben,

Mehr

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins Prinzipieller Aufbau eines Schnittstellenbausteins DB /CS A0-Ai R/W Reset Takt Int IntAck zum µp Datenbus Puffer Steuerung Interruptsteuerung & IF Statusregister IE Steuerregister Befehlsregister Datenregister

Mehr

Technische Informatik II Rechnerarchitektur

Technische Informatik II Rechnerarchitektur Technische Informatik II Rechnerarchitektur 3.Unterprogramme in MMIX Matthias Dräger E-Mail: www: mdraeger@mi.fu-berlin.de www.matthias-draeger.info/lehre/sose2010ti2/ tinyurl.com/sose2010ti2 Zuletzt bearbeitet:

Mehr

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33 Weitere Arithmetik Grundlagen der Rechnerarchitektur Assembler 33 Die speziellen Register lo und hi Erinnerung: ganzzahliges Produkt von zwei n Bit Zahlen benötigt bis zu 2n Bits Eine MIPS Instruktion

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Mikrocomputertechnik - Programmierung

Mikrocomputertechnik - Programmierung 3 Programmierung Assembler Aufgaben: Übersetzt mnemotechnische Abkürzungen (z.b. move, add...) in die Maschinenbefehle des Prozessors Ermöglicht die Vergabe von Namen für Speicheradressen (Label) Berechnet

Mehr

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

Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt 1. Die Zahlen von 1 bis 10 sollen ausgegeben werden (a) absteigend mit einer do while-schleife 3 zehn DEF 10 ; int zehn = 10 4 Anfang

Mehr

Assembler Unterprogramme

Assembler Unterprogramme Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme

Mehr

Mikrocomputertechnik. 6. Exceptionhandling ( Ausnahmebearbeitung)

Mikrocomputertechnik. 6. Exceptionhandling ( Ausnahmebearbeitung) 6. Exceptionhandling ( Ausnahmebearbeitung) Exception: Exception ist eine besondere Situation, auf die der Prozessor mit einem speziellen Programm (Exceptionroutine) reagieren muss. Das gerade ablaufende

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Praktikum Mikrorechner 5 (Bitadressen, Sprünge und Schleifen)

Praktikum Mikrorechner 5 (Bitadressen, Sprünge und Schleifen) rof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 1/18 Praktikum Mikrorechner 5 (Bitadressen, Sprünge und Schleifen) Prof. Kemnitz Institut für Informatik, Technische

Mehr

Name : Klasse : Punkte : Note :

Name : Klasse : Punkte : Note : ESI Semesterendprüfung 15.6.2009 Name : Klasse : Punkte : Note : Zeit: 12.50 bis 13.35 Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf die Rückseite

Mehr

"Organisation und Technologie von Rechensystemen 4"

Organisation und Technologie von Rechensystemen 4 Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation

Mehr

8. Beschreibung des Prozessors MSP 430

8. Beschreibung des Prozessors MSP 430 8. Beschreibung des Prozessors MSP 430 8.1 Die Eigenschaften des MSP 430 8.2 Die Register des MSP 430 8.3 Der Aufbau des Speichers 8.4 Interrupts 8.5 Der Watchdog Programmierkurs II Wolfgang Effelsberg

Mehr

Aufbau eines Assembler-Programms

Aufbau eines Assembler-Programms Aufbau eines Assembler-Programms. Assembler-Anweisungen (Direktiven) Einbindung von include-files Definition von Konstanten, Reservierung von Speicherplatz im RAM, 2. Was tun, wenn C Reset-Signal erhält

Mehr

B1 Stapelspeicher (stack)

B1 Stapelspeicher (stack) B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

MOP: Befehlsliste für den Mikrocontroller 8051

MOP: Befehlsliste für den Mikrocontroller 8051 Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Befehlsliste für den Mikrocontroller 8051 Erläuterung der Operanden Operand A addr11 addr16 bit /bit C #data #data16 direct DPTR PC Ri Rn rel

Mehr

Forth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort

Forth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort Vokabular für Attiny2313-Forth - 1 - Forth.voc Forth-Vokabular Stand: 01.11.2012 A: Assembler-Wort F: Forth-Wort C: Compiler-Wort. A gibt TOS auf Port B aus; (Datenrichtungsbits von Port B werden alle

Mehr

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

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Vorbesprechung U8 Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Basistypen Alignment der Basistypen auf deren Grösse Grössen (abhängig

Mehr

2.1 Atmega-Peripherie/Interrupts

2.1 Atmega-Peripherie/Interrupts 2.1 Atmega-Peripherie/Interrupts 2.1.1 Situation Während LED2 fortlaufend blinkt, soll LED2 jederzeit sofort durch Tastendruck von T1 eingeschaltet werden können. Dazu muss man im Programm regelmäÿig nachsehen,

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Ein- Ausgabeeinheiten

Ein- Ausgabeeinheiten Kapitel 5 - Ein- Ausgabeeinheiten Seite 121 Kapitel 5 Ein- Ausgabeeinheiten Am gemeinsamen Bus einer CPU hängt neben dem Hauptspeicher die Peripherie des Rechners: d. h. sein Massenspeicher und die Ein-

Mehr

Unterprogramme. Unterprogramme

Unterprogramme. Unterprogramme Unterprogramme Unterprogramme wichtiges Hilfsmittel für mehrfach benötigte Programmabschnitte spielen in höheren Programmiersprachen eine wesentliche Rolle in Assembler sind bestimmte Konventionen nötig

Mehr

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

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: 1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address

Mehr

3AA. Prozeduren und Rekursion Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006

3AA. Prozeduren und Rekursion Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 3AA Prozeduren und Rekursion 29.11.05 Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 3AA Prozeduren Berechnete Sprungadresse Ausführung bestimmter Anweisungen durch Schleifen Stattdessen:

Mehr

Microcontroller Selbststudium Semesterwoche 9

Microcontroller Selbststudium Semesterwoche 9 Microcontroller Selbststudium Semesterwoche 9 Kurzfragen zum Thema Interrupts 1. Wozu werden Interrupts benötigt (Beispiele)? Interrupts werden überall dort verwendet, wo auf zeitkritische Ereignisse reagiert

Mehr

Fachhochschule Augsburg WS01/02 Mikrocomputertechnik Fachbereich Elektrotechnik Blatt 1/8. Prüfung Mikrocomputertechnik WS 01/02

Fachhochschule Augsburg WS01/02 Mikrocomputertechnik Fachbereich Elektrotechnik Blatt 1/8. Prüfung Mikrocomputertechnik WS 01/02 Fachbereich Elektrotechnik Blatt 1/8 Prüfung Mikrocomputertechnik WS 01/02 Prüfungsfach: Mikrocomputertechnik Prüfer: Prof.Dr.Bayer Prüfungszeit: 90 min Datum: 4.Februar 2002 Hilfsmittel: nicht prog. Taschenrechner

Mehr

5.GTypische Anwendungsfälle

5.GTypische Anwendungsfälle Die Maschinenprogrammebene eines Rechners Jörg Roth 337 5.GTypische Anwendungsfälle Wir betrachten im Folgenden typische Fälle aus dem Bereich imperativer Programmiersprachen und beschreiben, wie diese

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler

Mehr

Lösungsvorschlag zur 3. Übung

Lösungsvorschlag zur 3. Übung Prof Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik Wintersemester 09/10 1 Präsenzübungen 11 Schnelltest Lösungsvorschlag zur Übung a) Welche der folgenden Aussagen entsprechen

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler

Mehr

Atmel AVR für Dummies

Atmel AVR für Dummies Atmel AVR für Dummies fd0@koeln.ccc.de 29.12.2005 Übersicht 1 Hardware Kurzvorstellung Atmega8 Programmierkabel (Eigenbau vs. Kommerzlösung) Alternative: Bootloader (Programmieren via rs232) Software Speicher

Mehr

Computer-Systeme Teil 11: Routinen

Computer-Systeme Teil 11: Routinen Computer-Systeme Teil 11: Routinen Computer-Systeme WS 12/13 - Teil 11/Routinen 03.12.2012 1 Übersicht Stack Subroutinen Makros CPU-Modi Traps Computer-Systeme WS 12/13 - Teil 11/Routinen 2 Die einzelnen

Mehr

Praktikumsprotokoll Mikrorechentechnik I Versuch. Assembler (A 03)

Praktikumsprotokoll Mikrorechentechnik I Versuch. Assembler (A 03) Praktikumsprotokoll Mikrorechentechnik I Versuch Assembler (A 03) Gruppe 63: Fabian Kurz, Alexander Eder Stephan Stiebitz, Phillip Burker 4. Dezember 2004 Inhaltsverzeichnis 1 Aufgabenstellung 2 2 Lösungsprozess

Mehr

Operationsmodi des Timers Modus 0 : Ausschalten des Zählers

Operationsmodi des Timers Modus 0 : Ausschalten des Zählers Ergänzung PIAT Operationsmodi des Timers Modus 0 : Ausschalten des Zählers LC und UC wird angehalten. IRQT wird gesperrt (Bit 7 im CMCR wird 0) UF Bit wird gelöscht (Bit 7 im SR) Die Daten in UC, LC, UL,

Mehr

Speicheraufbau des AT89C5131

Speicheraufbau des AT89C5131 Speicheraufbau des AT89C5131 Prinzip: - getrennter Programmspeicher (ROM) und Datenspeicher (RAM) - interner Speicher (auf dem Chip) und externer Speicher (Zusatzbausteine) Das Experimentalsystem hat keinen

Mehr

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

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Atmega Interrupts Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Inhaltsverzeichnis Vorbereitung Was Sind Interrupts Interruptvektoren Software Interrupts Hardware Interrupts Quellen 2 Vorbereitung Rechner

Mehr

11. Die PC-Schnittstelle

11. Die PC-Schnittstelle PC-Schnittstelle Funktion -1. Die PC-Schnittstelle.1. Funktion Die folgenden Angaben gelten ohne Einschränkung für den PC, PC-XT, PC-AT, AT-386, AT-486 und kompatible Rechner. Sie sind nur für jene interessant,

Mehr

4. Mikroprogrammierung (Firmware)

4. Mikroprogrammierung (Firmware) 4. Mikroprogrammierung (Firmware) 4. Ein Mikroprogramm-gesteuerter Computer 4.2 Mikroprogramm-Beispiel: Multiplikation 4.3 Interpretation von Maschinenbefehlen durch ein Mikroprogramm 4. Mikroprogrammierung

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Labor Software-Entwicklung 1 Übereinkunft zu Programmablaufplänen PAP - Grundlagen Wintersemester 2015/2016 Seite 1 von 9 Inhalt DIN 66 001: Sinnbilder für Programmablaufplan... 3 Grenzstelle... 3 Ablauflinie...

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Martin Schulz Einführung in die Rechnerarchitektur Wintersemester 2017/2018 Lösungsvorschlag

Mehr

Interrupt. Externe Interrupts 0 und 1

Interrupt. Externe Interrupts 0 und 1 Interrupt In vielen Applikationen müssen Mikrocontrollersysteme auf nicht vorhersehbare Ereignisse schnell reagieren (Echtzeitanwendungen). Diese Forderung erfüllt die Interruptschaltung. Ein durch ein

Mehr

Die HAM. Die Hypothetische Akku-Maschine

Die HAM. Die Hypothetische Akku-Maschine Die HAM Die Hypothetische Akku-Maschine Inhaltsverzeichnis 1 Die Ham 1.1 Überblick 1.2 Hardware Funktion der HAM 1.3 Der Assembler-Befehlssatz Addition zweier Zahlen 1.4 Der HAM-Editor Addition zweier

Mehr

Herzlich willkommen!

Herzlich willkommen! Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in

Mehr

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

Welche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt? 6.5 MMIX Befehle 291 Aufrufkonventionen Eine Aufrufkonvention (engl. calling convention) legt fest, wie einer Funktion Parameter übergeben werden und wie der Rückgabewert zurückgegeben wird. Damit spezifiziert

Mehr

U5-2 Register beim AVR-µC

U5-2 Register beim AVR-µC U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts

Mehr