MOP: Hinweise zur professionellen Assembler-Programmierung

Größe: px
Ab Seite anzeigen:

Download "MOP: Hinweise zur professionellen Assembler-Programmierung"

Transkript

1 Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Hinweise zur professionellen Assembler-Programmierung Allgemeine Grundlagen Ein Programm kann als Sammlung von Befehlen (engl. instructions ) in Form von Hexadezimalzahlen verstanden werden, die der Reihe nach im Programmspeicher (engl. code memory ; üblicherweise ein EPROM oder FLASH) angeordnet werden. Jede Instruction hat nach dem Abschluss der Programmierung ihren festen Platz im Programmspeicher und belegt dort 1-3 Speicherplätze. Aus diesem Programmspeicher holt die CPU einen Befehl nach dem anderen und verarbeitet ihn. Hinweis 1: Es gilt für alle Computer und Controller, dass nach dem Einschalten bzw. einem Reset immer bei der Programmspeicheradresse Null begonnen wird! Da dort beim Mikrocontroller nur drei freie Speicherplätze vorhanden sind, findet man üblicherweise einen Sprungbefehl zur eigentlichen Programmstart-Adresse (auch engl. reset vector genannt). Bei der Programmerstellung macht es in der Regel keinen Sinn, direkt die Hex-Codes der benötigten Befehle untereinander zu schreiben, sondern man bedient sich einer Programmiersprache. Hier unterscheidet man zwischen der maschinennahen Programmierung in Assembler und der Programmierung in einer Hochsprache (z.b. Programmiersprache C). Bei der Assemblerprogrammierung werden die Hexadezimalzahlen der Maschinenbefehle durch einprägsame englische Abkürzungen, den sog. Mnemonics (z.b. ADD oder MOV) ersetzt, die leichter zu merken sind. Ein Übersetzungsprogramm (Assembler mit Linker) macht daraus die erforderlichen Hexcodes. Man kann damit äußerst effizient Programme entwickeln. Dies setzt jedoch ein tiefes Verständnis der Vorgänge voraus. Dieses zu vermitteln, ist wesentlicher Bestandteil der Veranstaltung Maschinenorientierte Programmierung. Modulare Programmierung Ein professionelles Assemblerprogramm soll nicht nur funktionieren, sondern auch folgende Eigenschaften aufweisen: möglichst problemlose Fehlersuche ermöglichen leicht zu pflegen sein (d.h. nachträglich zu erweitern oder zu ändern sein) Nachvollziehung des Lösungswegs ohne Mithilfe auch für Dritte ermöglichen ohne Probleme auf andere Adressen im Programmspeicher verschiebbar sein bei großem Umfang der Aufgabe problemlos auf verschiedene Programmierer aufteilbar sein Wiederverwendung bewährter Programmteile oder Routinen ermöglichen Aus diesem Grund sollen Assemblerprogramme stets modular aufgebaut, d.h. aus einzelnen Modulen zusammengesetzt werden. Hierbei sollte man in jedem einzelnen Modul ein möglichst übersichtliches Haupt-Steuerprogramm entwerfen, das dann geeignete Unterprogramme aufruft. Diese Unterprogramme können entweder im gleichen Modul stehen oder als Teile aus einem anderen Modul verwendet werden. Alle Einzelmodule werden am Schluss vom Linker miteinander zum Gesamtprogramm verknüpft. Jedes Modul erhält seinen eigenen Namen und besteht selbst wieder aus einzelnen Teilstücken, den sogenannten Segmenten. Hierbei handelt es sich entweder um Programmteile mit Instruktionen (Codesegment) oder Speicherplatzreservierungen für einzelne Bits im direkt adressierbaren RAM auf dem Mikrocontroller (Bitsegment) oder Speicherplatzreservierungen für Daten, Konstanten usw. im direkt adressierbaren RAM auf dem Mikrocontroller (Datensegment) oder Speicherplatzreservierungen für Daten, Konstanten usw. im indirekt adressierbaren RAM- MOP_Labor_Assemblerprogrammierung.doc Seite 1 von 6 Beuth Hochschule Berlin

2 Bereich auf dem Mikrocontroller (indirektes Datensegment) oder Speicherplatzreservierungen für Daten, Konstanten usw. im externen RAM (externes Datensegment) Hinweis 2: Nur 255 Speicherplätze lassen sich im externen RAM reservieren. Wenn man diese über das Register R0 oder R1 statt über den Datapointer adressiert, spart das Zugriffszeit! Außerdem gibt es die Möglichkeit, verschiedene Bits für die eigene Anwendung zu definieren (= als Flags oder Merker ). Diese finden sich im bitadressierbaren Bereich des internen RAM unter den Adressen 20h bis 2Fh. Strukturierung mit Pseudobefehlen Im Code eines jeden Moduls finden sich Anweisungen, die sich in folgende Gruppen einteilen lassen: Assembler Instructions (Programmschritte), also Maschinenbefehle, die aus einzelnen Anweisungen im Binärcode bestehen, die dem Controller als Hex-Zahl mitgeteilt werden. Sie bilden die einzelnen Elemente eines ausführbaren Programmteiles. Der Programmierer schreibt diese Anweisungen jedoch in Form von Mnemonics, also in Form einfacher englischer Abkürzungen, die dann in Hex-Zahlen übersetzt werden. Assembler Directives (Direktiven oder Pseudobefehle genannt). Sie organisieren die verschiedenen Segmente und Speicherbereiche, legen Symbolnamen für Variablen oder Speicherplätze fest, definieren das Modulende usw. Achtung: Die Assembler Directives sind gewissermaßen Manager und produzieren selbst keine Programmcodes. Assembler Controls. Sie steuern die Assemblier- und Linkvorgänge und sind am Dollarzeichen ($) zu erkennen, mit dem sie eingeleitet werden. Gängige Controls sind z.b. $ERROR zum Generieren von Assembler-Fehlermeldungem, $WARNING um eine Nachricht auf der Konsole auszugeben, $SYMBOLS zum Erzeugen einer Symbol-Tabelle, etc. Bei Anweisungen gemäß der soeben genannten Gruppenzuordnungen gilt folgende Syntax: Assemblerbefehl: [symbol:] [instruction [arguments]] [;comment] Definition: symbol instruction argument [;comment] Steuerung: $control [(argument)] [;comment] Hier: MOV A, #0FFh ; definiere Label Hier und lade Akkumulator mit Wert FFh Jahr EQU 2011 ; definiere Symbol für aktuelles Jahr $INCLUDE (80C517.MCU) ; inkludiere z.b. SAB80C517 Register-Definitionen Je nach Datentyp bei Kontanten, etc. ist das Hinzufügen eines Suffix erforderlich. So gibt man bei der Darstellung in Binärform hinter der Kontanten ein b an (Beispiel: b), bei der Oktaldarstellung ein q oder o (Beispiel: 316q), bei der Dezimaldarstellung ein d (optional, kann auch weggelassen werden) und die Repräsentation von Hexzahlen 0...F ist durch Angabe des Buchstaben h eindeutig zu kennzeichnen (Beispiel: 0CEh). Um Assemblerprogramme, respektive Module, zu strukturieren und wie oben beschrieben Segmente zu definieren, verwendet man die Direktiven (oder Pseudobefehle). Folgende Befehle (Auswahl) stehen dafür zur Verfügung: Definiere Modulname: NAME <symbol> Definiere Adresse: ORG <exp> Benutze Registerbank: USING <exp> Programmende: END Des weiteren sind vor allem die folgenden Befehle nützlich: Definiere Bytes: DB <arg1> [,<arg2> [,<arg3>... ]] Definiere Worte: DW <arg1> [,<arg2> [,<arg3>... ]] Reserviere Speicherplatz: DS <exp> Reserviere Platz für Bits: DBIT <exp> MOP_Labor_Assemblerprogrammierung.doc Seite 2 von 6 Beuth Hochschule Berlin

3 DB 1, 2, 3+5, 2*7, 'A' DB 'Eine Zeile', 12 DW 0, 0C800h, 1999, 4711 DS 200h Definiere Konstante: <symbol> EQU <expr> Definiere Variable: <symbol> SET <expr> Countregister EQU R5 ; Name Countregister wird anstelle von R5 verwendet Chapter SET 1 ; Variable Chapter wird 1 gesetzt Chapter SET Chapter+1 ; Variable Chapter wird um 1 erhöht Definiere symb. Codeadresse: <symbol> CODE <expr> Definiere symb. Datenadresse: <symbol> DATA <expr> Definiere symb. indir. Adresse: <symbol> IDATA <expr> Definiere symb. Bitadresse: <symbol> BIT <expr> Definiere symb. ext. Adresse: <symbol> XDATA <expr> ProgMem CODE 08000h ; Adresse 8000h im Codespeicher heißt nun ProgMem Stack DATA 30h ; definiere symb. Datenadresse für Stack-Anfang V24Buffer IDATA 080h ; Adresse 80h für indir. Zugriff heißt nun V24Buffer Ausgang BIT P3.6 ; Portpin P3.6 heißt nun "Ausgang" Sample XDATA 0100h ; def. Sample als Speicherort 100h im ext. Speicher Anfang Codesegment: CSEG [AT <expr>] Anfang Datensegment: DSEG [AT <expr>] Anfang ind. Datensegment: ISEG [AT <expr>] Anfang Bitsegment: BSEG [AT <expr>] Anfang ext. Datensegment: XSEG [AT <expr>] CSEG AT 8000h ; beginne ein neues Codesegment bei Adresse 8000h XSEG AT 0 ; beginne ein neues externes Datensegment bei Adresse 0 DSEG ; wechsle zu bereits definiertem Datensegment Segmenttypen: CODE, DATA, IDATA, XDATA, BIT, NUMBER Offset EQU 16 ; Nummer Start CODE 30h ; Code DoIt CODE 0100h ; Code LED BIT P1.3 ; Bit Variabl4 DATA 20h ; Data Port DATA 0C8h ; Data Delay EQU 5 ; Nummer Start+Offset+3 Start+DoIt Port.Delay ; Code ; Nummer ; Bit MOP_Labor_Assemblerprogrammierung.doc Seite 3 von 6 Beuth Hochschule Berlin

4 Programmier-Systematik Die empfohlene Reihenfolge beim Programmentwurf ist Ihnen bereits aus den Aufgabenblättern des Labors bekannt. Zusammengefasst soll immer folgende Vorgehensweise eingehalten werden: 1. Erfassung und Analyse des Problems bzw. der zu lösenden Aufgabe 2. Formulierung eines geeigneten Lösungsweges (Algorithmus) 3. Umsetzung des Algorithmus in ein Struktogramm oder Flussdiagramm (Programmablaufplan) 4. Festlegung der dazu erforderlichen Module, ihrer Aufgaben und ihrer Namen (ist die Aufgabe weniger komplex, passt die Umsetzung des Algorithmus unter Umständen auch in ein einziges Modul) 5. Für jedes (Einzel-)Modul: Entwurf eines Steuerprogramms, Festlegung der erforderlichen Unterprogramme, Vergabe von Namen für die Segmente und Symbole, Reservierung von Datenbereichen usw. 6. Programmierung der Einzelsegmente jedes Moduls mit Hilfe eines geeigneten Texteditors auf dem PC (in Assemblersprache mit den entsprechenden Mnemonics, nur ASCII-Text ohne Formatierung und Sonderzeichen verwenden!) 7. Übersetzung des mit dem Editor erstellten Programms in Maschinenbefehle durch den Assembler, der einen noch verschiebbaren Objekt-Code (= eine Objekt - Datei) erzeugt. Dann unter Umständen Verbindung des geschriebenen Programmteils mit weiteren Makros, Bibliotheksroutinen etc. und Zuteilung der echten Programmspeicheradressen durch den Linker. Zum Schluss erfolgt noch die Übersetzung des kompletten, fertigen Programms in eine *.hex - Datei. 8. Übertragung dieses hex-files in den Programmspeicher des Mikrocontroller-Boards 9. Testen des Programms 10. Fehlersuche (Debugging). Sie beginnt immer mit der Wiederholung ab Schritt 5 Im normalen Betriebsfall ist das Programm in einem EPROM oder FLASH gespeichert und der Mikrocontroller beginnt nach dem Reset oder dem Einschalten immer bei der Code-Adresse 0000h. Dort sollte ein Sprungbefehl zur eigentlichen Programmstart-Adresse liegen, der die Abarbeitung ab einer anderen, sinnvolleren Speicheradresse initiiert (siehe Hinweis 1). Diese Programmstart-Adresse sollte eine Stelle im RAM-Speicher sein, die nach von Neumann-Architektur einen reservierten Programmspeicherbereich im gemeinsamen Programm- und Datenspeicher mittels Offset markiert. Will man Programme erstellen, prüfen, erweitern oder korrigieren, empfiehlt es sich nicht, jedes Mal sofort ein neues Programm auf den Mikrocontroller zu laden. Moderne Mikrocontroller erfordern zwar nicht mehr, dass jedes mal ein EPROM gebrannt werden muss. Stattdessen wird dies über das einfache Neubeschreiben eines FLASH realisiert. Dieser hat aber auch eine limitierte Lebensdauer, weshalb dringend anzuraten ist, den kompletten Mikrocontroller mit dem erstellten Programm vorab auf einem PC zu simulieren und dort das Programm zu testen. Erst nach einwandfreiem simuliertem(!) Verhalten, soll anschließend die Programmierung des Mikrocontrollers erfolden. Entwurfs- und Organisationsmethoden Programmstrukturen können sehr komplex werden. Deshalb ist es nötig, genau definierte Entwurfsund Organisationsmethoden anzuwenden. Eine Aufstellung der wichtigsten Vorschriften sind im Folgenden dargestellt. Assembler Controls und Directives werden zur besseren Übersicht groß geschrieben. Hinter einem Sprungziel (engl. label ) muss ein Doppelpunkt stehen. In einem Namen oder Label darf niemals ein Bindestrich verwendet werden! Es ist nur der Unterstrich erlaubt! Labels werden nie mit Zahlen begonnen. Bei Sprung- und Call-Befehlen genügt es, CALL bzw. JMP zu schreiben. Der Assembler wählt selbst den genau passenden Sprung- oder Call-Befehl aus. Jeder Befehl wird mit einem Kommentar versehen. Ein Semikolon kennzeichnet den darauffolgenden Text als Kommentar, der vom Assembler MOP_Labor_Assemblerprogrammierung.doc Seite 4 von 6 Beuth Hochschule Berlin

5 beim Übersetzen ignoriert wird. Erst ganz am Ende darf END stehen. Es folgt nun eine Mustervorlage (engl. template ) zur eigenen Assemblerprogrammierung, in die die gängigen Controls, Directives, Symboldeklarationen und Segmentdefinitionen bereits eingetragen sind. Die Ausführung ist bewusst einfach gehalten, um den Programmieranfänger nicht zu überfordern, kann aber nach Belieben sinnvoll erweitert werden, um auch Fortgeschrittenen zu dienen und sich konkreten praktischen Problemstellungen zu nähern. Nutzen Sie die Mustervorlage, um sich genau einzuprägen wie Controls, Directives, Symboldeklarationen und Segmentdefinitionen eingesetzt werden und wie insbesondere verschiedene Programmteile definiert und aufgerufen werden. Achten Sie darauf, dass nie die Stack- Reservierung in Ihrem Programm vergessen wird und dass das Label Start Ihres Assemblerprogramms stets die Stack-Adresszuweisung bzw. -korrektur vornimmt. Bei Verwendung der Directives DS und DB, sowie EQU und SET gilt besondere Vorsicht. DS (engl. für define store ; definiere einen Speicherplatz mit einem bestimmten Namen im angegebenen Memorybereich) darf trotz der Ähnlichkeit des Namens nicht mit DB (engl. für define Byte ) verwechselt werden. DB darf nur innerhalb eines Programmteiles verwendet werden und speichert einen oder mehrere vorgegebene Werte im Speicher (z. B. eine Tabelle oder einen Text). Tabelle: DB 0,1,2,3,4,5,6,7,8,9,10,20 ; diese Zahlenwerte werden als Tabelle gespeichert Tabelle: DB ; Vorsicht! Jetzt werden die ASCII-Zeichen der Zahlen ; gespeichert! Text: DB Bonbons machen froh ; auch das Bereitstellen von Text funktioniert, ; z.b. für eine Display-Anzeige Sammlung: DB 10,20,50,100, $, Das geht ja prima! ; Zahlen und Text dürfen sogar ; gemischt werden Zur Zuweisung eines Wertes oder Namens bei einem Byte kann anstelle von EQU (engl. für equate ; Übersetzung: bedeutet oder entspricht ) auch SET verwendet werden. Mit EQU gilt die Zuweisung allezeit, solange dieses Programm verwendet wird. Mit SET kann man dagegen den Namen im Nachhinein ändern. Nachdem Sie sich mit der Mustervorlage vertraut gemacht haben, können Sie diese als Vorlage für Ihre eigenen Programme verwenden. Die Mustervorlage zeigt die grundsätzliche Struktur von Assemblerprogrammen. Je nach Komplexität der Aufgabenstellung müssen Sie entscheiden wie man sie mit konkretem Inhalt zum Leben erweckt. In der Vorlage ist ein kurzes exemplarisches Hauptprogramm gezeigt, welches zu Übersichtszwecken blau markiert ist. MOP_Labor_Assemblerprogrammierung.doc Seite 5 von 6 Beuth Hochschule Berlin

6 ; Mustervorlage für ASEM-51 Assembler-Code PROG EQU 0000h ORG PROG+0000h SJMP START ; Interrupt-Vektor-Tabelle für die richtigen Stellen im Programmspeicher ORG PROG+0003h LCALL INT0_ISR I ORG PROG+000Bh LCALL T0_ISR I ORG PROG+0013h LCALL INT1_ISR I ORG PROG+001Bh LCALL T1_ISR I ORG PROG+0023h LCALL UART_ISR I ; Ende der Interrupt-Vektor-Tabelle Ausgang BIT P3.6 ; Portpin P3.6 heißt nun "Ausgang" Stack DATA 30h ; definiere symb. Datenadresse für Stack-Anfang ORG PROG+0030h ; Programmcodes werden erst ab Adresse 0030h gespeichert START: MOV ; hier fängt das eigentliche Programm an! SP, #Stack-1 ; Zuweisung der Stack-Adresse LOOP: ZEIT: DONE: CALL ZEIT ; Zeitschleife (Unterprogramm) aufrufen CPL Ausgang ; Portpin P1.0 invertieren JMP LOOP ; springe zu LOOP und wiederhole alles MOV R7, #250d ; lade Register R7 mit der Zahl 250 dezimal DJNZ R7, $ ; dekrementiere R7 bis auf Null, $ steht für aktuell. Programmzähler ; zurück aus dem Unterprogramm SJMP DONE ; Interrupt-Service-Routinen kommen hierher INT0_ISR: T0_ISR: INT1_ISR: T1_ISR: UART_ISR: ; Ende der Interrupt-Service-Routinen END ; Ende des Programms MOP_Labor_Assemblerprogrammierung.doc Seite 6 von 6 Beuth Hochschule Berlin

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

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

Mehr

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

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

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

Betriebssysteme Teil 4: Übersetzung von C-Programmen

Betriebssysteme Teil 4: Übersetzung von C-Programmen Betriebssysteme Teil 4: Übersetzung von C-Programmen 18.10.13 1 Übersicht Übersetzungsprozess gcc(i) als Steuerprogramm Assembler Binder Hauptprogramme in C In dieser Einheit werden nur die Grundprinzipien

Mehr

Maschinensprache und Assembler

Maschinensprache und Assembler 4. Befehle, die ein Digitalrechner ausführen soll, müssen binär codiert vorliegen. Diese Befehle werden als Maschinenbefehle bezeichnet. Will man z.b. beim 8051 den Inhalt des Accus in das Register R2

Mehr

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil IV: Programmieren an Beispielen Die

Mehr

Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7:

Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7: Hochschule Karlsruhe Fakultät Elektro- und Informationstechnik Studiengang Energie- und Automatisierungstechnik Skriptum Mikrocontroller-Systeme Kapitel 6: Befehlssatz des Mikrocontrollers C517 Kapitel

Mehr

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

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach

Mehr

Befehlssatz AVR RISC Controller

Befehlssatz AVR RISC Controller Befehlssatz AVR RISC Controller Design-Philosophie des AVR Befehlssatzes Assembler-Sprache AVR-Befehlssatz Philosophie RISC = Reduced Instruction Set Computing keine komplexen Befehle möglichst symmetrischer

Mehr

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

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Themen heute Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Besprechung des 3. Übungsblattes Aufgabe 3 Speicherplätze für Mikrocode-Anweisungen

Mehr

Prof. Dr. Pollakowski 19.03.2013

Prof. Dr. Pollakowski 19.03.2013 Installations- und Bedienungsanleitung für die Mikrocontroller-Entwicklungsumgebung, das Mikrocontroler-Experimentalsystem und den Mikrocontroller-Simulator 1 Begriffe: Entwicklungsumgebung = ein Programm

Mehr

Kapitel 04: Das erste Projekt Abschnitt 04: Überblick über das Programm

Kapitel 04: Das erste Projekt Abschnitt 04: Überblick über das Programm Kapitel 04: Das erste Projekt Abschnitt 04: Überblick über das Programm Beim Durchgehen des Programms will ich die verschiedenen Abschnitte zeigen, aus denen jedes ATmega-Assemblerprogramm besteht. Da

Mehr

0 C (Carry) Überlauf des 8ten Bits. 1 DC (Digit Carry) Überlauf des 4ten Bits. Mnemonic Parameter Beschreibung Status-Flags.

0 C (Carry) Überlauf des 8ten Bits. 1 DC (Digit Carry) Überlauf des 4ten Bits. Mnemonic Parameter Beschreibung Status-Flags. 3. Assembler-Programmierung Der PIC 16F84A Microcontroller kennt 35 verschiedene Befehle. Für eine ausführliche Beschreibung aller Befehle siehe PIC16F84A-Datenblatt Kapitel 7.1. 3.1 Wichtige Flaggen im

Mehr

D i g i t a l l a b o r

D i g i t a l l a b o r Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik Prof. Dr. A. Ditzinger / Dipl.-Inform. (FH) O. Gniot Prof. Dr. N. Link / Dipl.-Ing. J. Krastel D i g i t a

Mehr

Ein erstes Assembler-Projekt

Ein erstes Assembler-Projekt Das Attiny-Projekt Ein erstes Assembler-Projekt 1 Ein erstes Assembler-Projekt In diesem Kapitel wollen wir ein erstes einfaches Assembler-Programm für unsere Attiny-Platine schreiben. Worum soll es gehen?

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

Mehr

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

Programmieren in C Teil 3: Mikrocontrollerprogrammierung Programmieren in C Teil 3: Mikrocontrollerprogrammierung 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Tag 1 Hello World 08/30/10 Fachbereich Physik Institut für Kernphysik

Mehr

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7 1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

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

Ergänzungen zum Manual OS V 2.05/2.06

Ergänzungen zum Manual OS V 2.05/2.06 Ergänzungen zum Manual OS V 2.05/2.06 SYSTEMRESOURCEN - PROGRAMM DOWNLOAD - Ab der Betriebssystemversion 2.05 haben die C-Control Units M-2.0 und Station 2.0 die Möglichkeit das Anwenderprogramm von einem

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

Einführung in die Programmiersprache C und in den C166-Compiler

Einführung in die Programmiersprache C und in den C166-Compiler Einführung in die Programmiersprache C und in den C166-Compiler Die vorliegenden Unterlagen sollen einen kurzen Überblick über die Software-Entwicklung in C geben. Diese Unterlagen erheben keinen Anspruch

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Praktikum Mikrocomputertechnik

Praktikum Mikrocomputertechnik Anleitung zum Praktikum Mikrocomputertechnik Im Praktikum wird der Mikrocontroller 68332 von Motorola verwendet. Dieser Mikrocontroller besteht aus einer 32-Bit CPU und integrierten Peripheriebausteinen

Mehr

Assembler-Programmierung

Assembler-Programmierung Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

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

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

Mehr

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10.

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10. Lehrprozessor: Coldfire MCF-5272 Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10.45 Uhr Raum: Aula Bearbeitungszeit: 180 Minuten Erlaubte Hilfsmittel: Gedrucktes Vorlesungsskript von Prof. Neuschwander mit

Mehr

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

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

SOFTWAREENTWICKLUNG FÜR

SOFTWAREENTWICKLUNG FÜR MIKROPROZESSOR PROGRAMMIERUNG 7. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 SOFTWAREENTWICKLUNG FÜR µc Übersicht - Prinzipdarstellung Der Weg zu einem lauffähigen Maschinenprogramm Vergleich von Programmiersprachen

Mehr

01.04.2004 Fachbereich Informatik Microcomputer-Labor TFH Berlin MCÜ 65 1. Laborübung -Beschreibung der Hardware -Beschreibung der Aufgabe Seite 2 -Frontplatte des Zielsystems Seiten 3 -Tabellen und Timingdiagramme

Mehr

Prinzipieller Grundaufbau eines einfachen C-Programmes

Prinzipieller Grundaufbau eines einfachen C-Programmes Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller

Mehr

AVR-Mikrocontrollertechnik

AVR-Mikrocontrollertechnik 1/31 Ziele der Weiterbildung Vermitteln von Grundlagen zu den AVR Controllern Vermitteln von Assembler Grundlagen Vorstellen der benötigten Hard und Software Eigenständiges Programmieren der Controller

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

I.1 Die Parrot Assemblersprache

I.1 Die Parrot Assemblersprache I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen

Mehr

Der 80535-Übungsrechner

Der 80535-Übungsrechner 6. Für den Test kleinerer Programmodule ohne Berücksichtigung des Echtzeitverhaltens ist der Simulator das geeignete Werkzeug. Durch die Möglichkeit der Einzelschrittausführung sind erste Tests von Programmen

Mehr

UART-Kommunikation mit dem Atmel AVR

UART-Kommunikation mit dem Atmel AVR Fachbereich Elektrotechnik und Informatik Labor für Angewandte Informatik und Datenbanken Praktikum Automatisierung / Echtzeitregelung (BAU/BER) Prof.Dr.-Ing. Coersmeier UART-Kommunikation mit dem Atmel

Mehr

Die Daten (Befehle und numerische Daten) werden in Form von BIT-Folgen verarbeitet.

Die Daten (Befehle und numerische Daten) werden in Form von BIT-Folgen verarbeitet. Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-lab en sind kleine Computer, die mit externen Geräten Daten austauschen können. Sie verfügen über Speicher, um Programme und Daten zu speichern und Eingangsund

Mehr

Übungscomputer mit Prozessor 8085 - Bedienungsanleitung

Übungscomputer mit Prozessor 8085 - Bedienungsanleitung Seite 1 von 9 Pinbelegung der Steckerleisten im Übungsgerät Seite 2 von 9 Inbetriebnahme: Schalter S1, S2, und S3 in Stellung 1 (oben) schalten. Spannung 5 V anlegen. ACHTUNG auf Polarität achten. Taste

Mehr

Assembler in der Arduino-IDE: ein Einblick

Assembler in der Arduino-IDE: ein Einblick Skript Assembler in der Arduino-IDE: ein Einblick C-Code Die Arduino-IDE baut auf dem GNU-Assembler auf. Daher ist es möglich, mit der avr-gcc den µc über die ISP-Schnittstelle in Assembler programmieren.

Mehr

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Gegenüberstellung von Assembler- und C-Programmierung

Gegenüberstellung von Assembler- und C-Programmierung Gegenüberstellung von Assembler- und C-Programmierung Assembler-Version C-Version org 8000h #pragma code=0x8000 #pragma xdata=0x2000 INPUT equ 0e081h OUTPUT equ 0e082h neu: mov dptr,#input movx a,@dptr

Mehr

Technische Informatik 2 Maschinenprogrammierungskonzepte

Technische Informatik 2 Maschinenprogrammierungskonzepte Technische Informatik 2 Maschinenprogrammierungskonzepte Prof Dr Miroslaw Malek Sommersemester 2005 wwwinformatikhu-berlinde/rok/ca Thema heute Ausführung von Befehlen Ein-/Ausgabeprogrammierung Architekturen

Mehr

Technische Informatik 2 Adressierungsarten

Technische Informatik 2 Adressierungsarten Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine

Mehr

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes Erste Schritte Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Das Arduino-Board Ihr Fundino-Board Anschluss über USB Anschluss über USB Programmierumgebung Download

Mehr

9 Strukturierte Programmierung

9 Strukturierte Programmierung 9 Die "strukturierte Programmierung" ist entstanden aus dem Wunsch, die Korrektheit von Programmen beweisen zu können. Dies wäre ein ziemlich hoffnungsloses Unterfangen, wenn jede beliebige Programmstruktur

Mehr

Import SIMATIC-Variablen

Import SIMATIC-Variablen Application Note GALILEO 12/2010 MN04802062Z-DE ersetzt M001873-01, 07/2007 Import SIMATIC-Variablen Impressum Hersteller Eaton Automation AG Spinnereistrasse 8-14 CH-9008 St. Gallen Schweiz www.eaton-automation.com

Mehr

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...? Kapitel 1 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Einführung Hallo, Computer...? Aufbau eines Computers Was ist eine Programmiersprache? Der Programmierprozess Warum Java?

Mehr

Fehlerkorrektur Bild 3.190 Demoprozessor

Fehlerkorrektur Bild 3.190 Demoprozessor 7 Prozessor 3 0 Flags C V N Z A IP 0 SP AB 8 MS W/R DB 4 00h..6Fh Daten Speicher 70h..70h PA 71h..71h PB 72h..73h PC 74h..76h PD 80h..FFh Programm Speicher Fehlerkorrektur Bild 3.190 Demoprozessor Die

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

5.BMaschinensprache und Assembler

5.BMaschinensprache und Assembler Die Maschinenprogrammebene eines Rechners Jörg Roth 268 5.BMaschinensprache und Assembler Die vom Prozessor ausführbaren Befehle liegen im Binärformat vor. Nur solche Befehle sind direkt ausführbar. So

Mehr

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

Mehr

Parallel-IO. Ports am ATmega128

Parallel-IO. Ports am ATmega128 Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher

Mehr

Praktikum Mikrocontroller und Eingebettete Systeme

Praktikum Mikrocontroller und Eingebettete Systeme Institut für Informatik Professur für Eingebettete Systeme Praktikum Mikrocontroller und Eingebettete Systeme Wintersemester 2012/2013 Eingebettete Systeme Prof. Dr. Uwe Brinkschulte Dipl.-Inform. Daniel

Mehr

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Kapitel VI. Speicherverwaltung. Speicherverwaltung Kapitel VI Speicherverwaltung 1 Speicherverwaltung Computer exekutiert Programme (mit Daten) im Hauptspeicher. Hauptspeicher: Großes Array von Wörtern (1 oder mehrere Bytes) Jedes Wort hat eine eigene

Mehr

Master-Boot-Record sichern

Master-Boot-Record sichern Master-Boot-Record sichern Allgemeines Mit dem Master-Boot-Record (MBR) kommt der normale Computernutzer nur selten in Kontakt, eigentlich nur zweimal. Bei der Installation von Linux wird in der Regel

Mehr

Übung -- d001_7-segmentanzeige

Übung -- d001_7-segmentanzeige Übung -- d001_7-segmentanzeige Übersicht: Der Steuerungsablauf für die Anzeige der Ziffern 0 bis 9 mittels einer 7-Segmentanzeige soll mit einer speicherprogrammierbaren Steuerung realisiert werden. Lehrziele:

Mehr

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

Ausbildungsunterlage für die durchgängige Automatisierungslösung Totally Integrated Automation (T I A) MODUL B4 Datenbausteine

Ausbildungsunterlage für die durchgängige Automatisierungslösung Totally Integrated Automation (T I A) MODUL B4 Datenbausteine Ausbildungsunterlage für die durchgängige Automatisierungslösung Totally Integrated Automation (T I A) MODUL B4 T I A Ausbildungsunterlage Seite 1 von 18 Modul B4 Diese Unterlage wurde von Siemens A&D

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1 Programmiertechnik Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150 Oliver Haase Hochschule Konstanz 1 Organisatorisches Vorlesung: montags, 8:00 9:30h, Raum C-109 freitags, 8:00

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

3 Der Debugger. 3.1 Überblick. 3.2 Einschränkungen

3 Der Debugger. 3.1 Überblick. 3.2 Einschränkungen 3 Der Debugger 3.1 Überblick Die Funktion des Debuggers beruht darauf, dass an das Ende des zu debuggenden Programms ein Monitor mit einer Länge von knapp 1 kbyte angehängt wird. Dieser Monitor wird nach

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

Zähler- und Zeitgeber-Baugruppen

Zähler- und Zeitgeber-Baugruppen Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

Automatisierungstechnik AP1

Automatisierungstechnik AP1 Automatisierungstechnik AP1 Übersicht 1 Lernziele: Automatisierungstechnik AP1 Einführung in die Prozessorarchitektur und Maschinenprogrammierung Grundlagen des Aufbaus und der Wirkungsweise von Prozessoren

Mehr

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch 29.11.2005. für Direkt-Digital-Vario. Firmware ab 00-06-00 Hardware 01 Seriennummer ab 0003

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch 29.11.2005. für Direkt-Digital-Vario. Firmware ab 00-06-00 Hardware 01 Seriennummer ab 0003 DIGITALVARIO Anleitung Bootloader Ausgabe 0.1 deutsch 29.11.2005 für Direkt-Digital-Vario Firmware ab 00-06-00 Hardware 01 Seriennummer ab 0003 1. Funktion Der Bootloader dient dazu Updates der Variosoftware

Mehr

Mikrocontroller effektiv in C programmieren - ein noch unbekanntes Land

Mikrocontroller effektiv in C programmieren - ein noch unbekanntes Land Mikrocontroller effektiv in C programmieren- ein noch unbekanntes Land Mikrocontroller effektiv in C programmieren - ein noch unbekanntes Land HS Pforzheim Fakultät Technik Mikrocontroller-Labor Tiefenbronner

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

11. Mikrocontroller. 11.1 Einführung

11. Mikrocontroller. 11.1 Einführung 11. Mikrocontroller 11.1 Einführung Mikroprozessoren sind monolithisch integrierte Rechner-Baugruppen, die zumindest Steuerwerk und Rechenwerk umfassen. Während bei früheren Mikroprozessoren die Ein- /

Mehr

1 MAKROS AUFZEICHNEN. 1.1 EinfÄhrung

1 MAKROS AUFZEICHNEN. 1.1 EinfÄhrung Makro Aufzeichnen Makro + VBA effektiv 1 MAKROS AUFZEICHNEN 1.1 EinfÄhrung Sie kçnnen Excel sehr einfach automatisieren, indem Sie ein Makro aufzeichnen. Ühnlich wie bei einem Kassettenrecorder werden

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

Compiler und Präprozessor (1) Erstellen eines Projektes

Compiler und Präprozessor (1) Erstellen eines Projektes Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende

Mehr

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.

Mehr

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44 Aufgabe 33 a) Der Pseudobefehl move $rd,$rs wird als addu $rd,$0,$rs übersetzt. Dabei macht sich SPIM zunutze, dass das Register $0 immer Null ist. Somit wird das Register $rd ersetzt durch $rd=0+$rs=$rs,

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

SPS. Nockenschaltwerk- Software

SPS. Nockenschaltwerk- Software SPS Nockenschaltwerk- Software für S5 oder S7 Digitronic Steinbeisstraße 3 D - 72636 Frickenhausen Tel. (+49)7022/40590-0 Fax -10 Auf der Langwies 1 D - 65510 Hünstetten-Wallbach Tel.(+49)6126/9453-0 Fax

Mehr

Kapitel 1. Grundlagen

Kapitel 1. Grundlagen Grundlagen Dieses Kapitel beschreibt die nötigen Schritte zur Erstellung eines lauffähigen C- Programms. Diese Schritte können Sie auf Ihrem System anhand von einführenden Beispielen nachvollziehen. Die

Mehr

Echtzeitbetriebssysteme/ Prozessdatenverarbeitung II

Echtzeitbetriebssysteme/ Prozessdatenverarbeitung II Fachhochschule Kaiserslautern Prof. Dr. P. Liell Echtzeitbetriebssysteme/ Prozessdatenverarbeitung II SS 2012 1. Versuch Allgemeines zum Ablauf und zur Versuchsausarbeitung Es ist eine Ausarbeitung zum

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

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

Tag 9: Datenstrukturen

Tag 9: Datenstrukturen Tag 9: Datenstrukturen A) Datenstrukturen B) Cell Arrays C) Anwendungsbeispiel: Stimulation in einem psychophysikalischen Experiment A) Datenstrukturen Wenn man komplizierte Datenmengen verwalten möchte,

Mehr

Freescale 68HCS12X Aufbau eines Linker Commandfiles für den 68HCS12XDP512 (ohne XGATE)

Freescale 68HCS12X Aufbau eines Linker Commandfiles für den 68HCS12XDP512 (ohne XGATE) COSMIC Software GmbH Rohrackerstr. 68 D-70329 Stuttgart Tel. ++49 (0) 711 42040 62 Fax. ++49 (0) 711 42040 68 Email sales@cosmic-software.de Internet www.cosmic-software.com Seite 1 von 13 Tech. Note:

Mehr

Klausur Betriebssystemkonzepte sowie Architektur von Rechnersystemen und Betriebssystemkonzepte

Klausur Betriebssystemkonzepte sowie Architektur von Rechnersystemen und Betriebssystemkonzepte BSK/ARBK SS-04 Oß (Fachbereich 5, Elektrotechnik und Informationstechnik) Zuname: Vorname: Matr.-Nr.: Klausur Betriebssystemkonzepte sowie Architektur von Rechnersystemen und Betriebssystemkonzepte Fach-Nummer:

Mehr

Snippets - das Erstellen von "Code- Fragmenten" - 1

Snippets - das Erstellen von Code- Fragmenten - 1 Snippets - das Erstellen von "Code- Fragmenten" Das Erstellen von "Code- Fragmenten", welche mit dem TinyMCE ausgewählt werden können. Grundlegendes: Die Datei, welche die in Folge erklärten Daten und

Mehr

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet. U4 4. Übung U4 4. Übung Besprechung Aufgabe 2 Makros Register I/O-Ports U4.1 U4-1 Makros U4-1 Makros Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler

Mehr

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF ITS Teil 2: Rechnerarchitektur 1. Grundschaltungen der Digitaltechnik a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF b. Zähler (Bsp. 4-Bit Zähler) - Eingang count wird zum Aktivieren

Mehr

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Von-Neumann-Rechner (John von Neumann : 1903-1957) C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Quelle: http://www.cs.uakron.edu/~margush/465/01_intro.html Analytical Engine - Calculate

Mehr

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform

Mehr