Unterprogramme mittels Stack (Forts.)
|
|
- Max Fuchs
- vor 5 Jahren
- Abrufe
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.) Zusammenfassung zur indizierten Adressierung: 19 Beispiel-Programm 1 für 6809 6809-Assemblerprogramm zur Suche nach Leerzeichen (space, tab, return) in einem String:
Mehr34 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)
MehrAufgabe 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
MehrMikroprozessoren 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)
Mehr11. 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
MehrMikrocomputertechnik. Unterprogramm
Unterprogramm Ein Teilproblem wird entweder zur mehrmaligen Verwendung oder zur Programmstrukturierung als Unterprogramm codiert. Ein Unterprogramm wird von einem übergeordneten Programm (Hauptprogramm)
MehrStack, 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:
MehrKontrollpfad 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
MehrKontrollpfad 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
MehrTI2 Ü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
MehrSprungbefehle 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
MehrMOTOROLA 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
MehrComputersysteme. 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
MehrTechnische 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
Mehr2
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
MehrSMP Ü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 WS2015/2016 Hinweis: Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende Kenntnis zu vermitteln; sie sollen lediglich den Einstieg in weiterführende
MehrAssembler-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
MehrTI-Ü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,
MehrName : 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
MehrInterruptverarbeitung
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,
MehrFachhochschule 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)
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrFachhochschule Niederrhein
Fachhochschule Niederrhein µp-technik Kapitel 3 VVVVVVVV VVVVVVVV VVVVVVVVVV VVVVVVVVVVVVVVVVVVVVV ENDOC RTI Ruecksprung aus Zweig COUNT VVVVVVVVVVVVVVVVV VVVVVV VVVVVVVVVVV VVVVVVVVVVVVV VVVVVVVVVVVVVV
MehrTechnische 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
MehrAssembler 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
MehrTechnische 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
MehrVorlesung 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.
MehrMikrocontroller-Programmierung
Mikrocontroller-Programmierung Anhand des HC12 Fabian Wiesel Überblick Überblick Mikrocontroller Überblick HC12 CPU Peripherie des DG128 Assemblerprogrammierung Mikrocontroller Leistungsfähigkeit: zwischen
MehrGrundlagen 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
MehrZusammenfassung 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
MehrBetriebssysteme 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
MehrMaschinenbefehlssä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
MehrProzesse 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.
MehrTechnische 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
MehrSelbststudium 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
MehrEinfü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
MehrSMP Ü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
Mehrx86 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
MehrPraktikum 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
MehrVorbemerkungen 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
MehrName: 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
MehrUnterstü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
MehrKap.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
MehrInhaltsü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
MehrInstitut 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.
MehrKlausur ( ): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007
Klausur (27.07.2007): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007 Vorname :.............................................. Name :.............................................. Matrikelnummer
MehrAVR-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,
MehrDatentechnik. 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
MehrTechnische 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:
MehrWeitere 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
MehrBefehlssatz 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
MehrMikrocomputertechnik - 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
MehrInformatik 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
MehrAssembler 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
MehrMikrocomputertechnik. 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
MehrBefehlssatz 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
MehrPraktikum 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
MehrName : 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"
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
Mehr8. 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
MehrAufbau 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
MehrB1 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
MehrVon-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..
MehrMOP: 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
MehrForth-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
MehrLö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
MehrDatenstrukturen, 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
Mehr2.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,
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrEin- 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-
MehrUnterprogramme. 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
MehrBeim 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
Mehr3AA. 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:
MehrMicrocontroller 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
MehrFachhochschule 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
Mehr5.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
Mehr1.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) =
MehrJust-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
MehrLö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
MehrJust-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
MehrAtmel 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
MehrComputer-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
MehrPraktikumsprotokoll 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
MehrOperationsmodi 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,
MehrSpeicheraufbau 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
MehrName: 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
MehrAtmega 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
Mehr11. 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,
Mehr4. 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
MehrLabor 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...
MehrFAKULTÄ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
MehrInterrupt. 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
MehrDie 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
MehrHerzlich 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
MehrWelche 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
MehrU5-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