Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7:

Größe: px
Ab Seite anzeigen:

Download "Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7:"

Transkript

1 Hochschule Karlsruhe Fakultät Elektro- und Informationstechnik Studiengang Energie- und Automatisierungstechnik Skriptum Mikrocontroller-Systeme Kapitel 6: Befehlssatz des Mikrocontrollers C517 Kapitel 7: Programmiertechnik in Assembler Inhalt: 6 Befehlssatz des Mikrocontrollers C Aufbau und Handhabung einer Befehlsliste Die Befehlsgruppen im Einzelnen Programmiertechnik in Assembler Assembler-Symbolik und Segmente Lineare Programme, Iterationen Unterprogrammtechnik Interrupts...30

2 Mikrocontroller 6.1 Aufbau und Handhabung einer Befehlsliste Seite 2 von 45 6 Befehlssatz des Mikrocontrollers C Aufbau und Handhabung einer Befehlsliste Der Befehlssatz des C517 umfasst 111 Befehle. Wie bereits in Kapitel 4.4 an den OPCODE-Beispielen für die einzelnen Adressierungsarten sichtbar wurde, stellt jede Variante eines Befehls einen eigenen Befehlscode dar, wobei die Adressierungsart zu unterschiedlich langen Befehlen führt: es gibt 49 Ein-Byte- Befehle, 45 Zwei-Byte-Befehle und 17 Drei-Byte-Befehle. Die Befehle des C517 sind vollständig kompatibel zum "Urahn", dem Prozessor. Die Befehle lassen sich nach ihrer Funktion in Befehlsklassen einteilen: Transferbefehle Verzweigungsbefehle und Unterprogrammaufrufe Logische Befehle Arithmetikbefehle Im folgenden werden die einzelnen Befehlsklassen kurz vorgestellt. Zu jeder Befehlsklasse werden jeweils alle Befehlsvarianten in einer Übersichtstabelle aufgelistet. Diese Übersichtstabellen können zum Entwurf eines Assemblerprogramms verwendet werden - wenn es z.b. darum geht, ob eine bestimmte Befehlsvariante überhaupt existiert. Zum Ausprogrammieren ("Codieren") eines Assemblerprogramms ist es jedoch empfehlenswert, grundsätzlich die Befehle in einer ausführlichen Befehlsliste (Instruction Set) nachzuschlagen. Dabei sollte nach Möglichkeit die Original-Befehlsliste des Prozessor-Herstellers verwendet werden; diese ist zwar meist in englischer Sprache, enthält aber dafür keine Übersetzungs- und Druckfehler. Die ausführliche Befehlsliste für den C517 ist über die Homepage für das Mikrocontrollerlabor erhältlich unter: Befehlsklassen Befehlsliste (Instruction Set) im Internet dort: Dokumente --> Datenblätter --> User's Manual Befehlslisten sind meist alphabetisch sortiert. Zu jeder Befehlsklasse wird in einer kurzen Übersicht beschrieben, welche gemeinsame Funktionen die Einzelbefehle besitzen; darauf folgen dann die Einzelbefehle mit folgenden Detailinformationen: Mnemonische Darstellung Pseudocode ("Operation") OPCODE ("Encoding") Anzahl der Bytes Anzahl der Maschinenzyklen ("Cycles") Aufbau der Befehlsliste

3 Mikrocontroller 6.1 Aufbau und Handhabung einer Befehlsliste Seite 3 von 45 Die Angabe "Maschinenzyklen" ermöglicht es, bei bekanntem Prozessortakt die Laufzeit eines jeden Befehls zu berechnen. Die Angabe "Bytes" gibt den Speicherplatzbedarf im Codespeicher eines jeden Befehls an. Die Angabe "Pseudocode" legt in einer allgemein verständlichen Beschreibung den sequentiellen Ablauf innerhalb eines Befehls fest. Beispiel: Handhabung der Befehlsliste Pseudocode Die folgende Abbildung zeigt zunächst die Übersicht über die Befehlsklasse DJNZ aus der Befehlsliste des C517. Aus dieser allgemeinen Beschreibung kann lediglich entnommen werden, dass der Befehl einen Operanden dekrementiert und - falls der Operand nicht den Wert "0" hat - zu einer angegebenen Adresse springt. Der darunter abgebildete Einzelbefehl "DJNZ direct, rel" zeigt jetzt im Pseudocode ("Operation"), dass z.b. zuerst der Operand dekrementiert wird, dann die Bedingung für einen Sprung geprüft wird. Ebenso wird hier sichtbar, dass auch ein "Unterlauf" als erfüllte Sprungbedingung gewertet wird. Mnemonik Pseudocode Abbildung 6-1: Beispiel aus der Befehlsliste Hinweis: Wenn man noch nicht viel Erfahrung mit der Programmierung eines Prozessors in Assembler hat, sollte man vorsichtshalber am Anfang jeden einzelnen Befehlstyp in der Befehlsliste nachschlagen; findet man ihn dort nicht, so exisiert diese Variante auch nicht!

4 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 4 von Die Befehlsgruppen im Einzelnen In den Übersichtstabellen für die einzelnen Befehlsklassen werden die folgenden symbolischen Bezeichnungen für die Operanden verwendet: Abbildung 6-2: Bedeutung der symbolischen Operanden der Befehlsliste Die Abbildung 6-3 zeigt die Klasse der Transferbefehle (MOV Ziel, Quelle). Sie ist als Beispiel für die Adressierungsarten bereits immer wieder verwendet worden, deshalb hier nur kurz zusammengefasst die Eigenschaften: Transfer- Befehle MOV MOV-Befehle kopieren von Quelloperand zu Zieloperand Der Quelloperand wird nicht verändert, der Zieloperand wird überschrieben. Es werden keine Flags beeinflusst; Ausnahme: Befehle, die als Zieloperanden den Akku haben, beeinflussen das Parity-Flag (A-Inhalt ist "odd"--> P=1) Beispiele: Annahmen: Speicherzelle 30H im DSEG enthält den Wert 40H, Speicherzelle 40H im DSEG enthält den Wert 10H Am Port P4 liegt das Bitmuster an. MOV R0, #30H ; Register R0 enthält dann 30H MOV Akku enthält dann 40H MOV R1, A, R1 enthält dann 40H MOV B enthält dann 10H P4 ; Speicherzelle 40H enthält dann 0CAH

5 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 5 von 45 Abbildung 6-3: Transferbefehle Beispiele (Forts.) Annahme: Im Externen RAM mit der Adresse 0010H ist der Wert 7FH gespeichert. MOV DPTR, #0010H ; DPTR mit 16-Bit-Wert laden MOVX ; A enthält jetzt 7FH Exchange-Befehle (XCH) vertauschen den momentanen Inhalt der beiden Operanden. Dabei muss der Akku verwendet werden. XCH-Befehle Beispiel: XCH A, R0 ; Tauscht Inhalt von Akku mit Inhalt von ; Register R0 Der Befehl XCHD vertausch das Low-Nibble (Bit 0-3) des Akku mit einem indirekt adressierten Nibble im ISEG. Beispiel: Annahme: R0 enthalte 20H, im Akku steht 36H, im ISEG, Adresse 20H steht der Inhalt: 75H XCHD ; Im ISEG bei Adresse 20H steht jetzt: 76H, ; im Akku steht jetzt 35H XCHD-Befehl

6 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 6 von 45 Für das Kopieren von Bit-Operanden stehen ebenfalls MOV-Befehle zur Verfügung. Allerdings muss einer der Operanden das Carry-Flag sein: MOV-Befehle für Bitoperanden Beispiele: Abbildung 6-4: Bit-Transferbefehle MOV P4.1, C ; Carry in Portbit 4.1 kopieren MOV C ; E0H ; Akku-Bit 0 in Carry kopieren MOV C, ACC.0 ; Akku-Bit 0 in Carry kopieren Hinweis: Die Befehle PUSH und POP werden im Kapitel 7.3, Unterprogrammtechnik, behandelt Die Abbildung 6-5 zeigt die Klasse der Arithmetikbefehle des C517. Auch hier gilt: der rechte Operand stellt die Quelle dar, die zum linken Operanden addiert, subtrahier usw. wird. Der Quelloperand wird dabei nicht verändert, der Zieloperand wird überschrieben. Hier wird der C517 zur "Akku-Maschine": Addition und Subtraktion erfordern den Akku als Ziel. Arithmetik- Befehle "Akku- Maschine" Abbildung 6-5: Arithmetikbefehle und NOP

7 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 7 von 45 Die Arithmetik wurde bereits im Kapitel 2.2 und 2.3 dargestellt. Die Bedeutung von Carry- und Overflow-Flag, die der Prozessor bei Addition und Subtraktion bildet, ist in diesen Kapiteln am Zahlenstrahl erläutert worden. Die im Manual des Prozessors verwendeten Definitionen (z.b. "Overflow is set if there is a carry out of bit 6 but not out of bit 7, or a carry out of bit 7 but not out of bit 6...") beschreibt zwar, wie der Prozessor in der ALU die Flags bildet, dient jedoch nicht dem Verständnis der Anwendung dieser Flags. Beispiel: Annahme: im Akku stehe der Wert 0C3H, in R0 der Wert 0AAH ADD A, R0 ; im Akku steht dann: 6DH, C=1, OV=1, ; AC=0 Versuchen Sie, das Ergebnis anhand des Zahlenstrahls zu erklären! Der Befehl "ADDC" addiert zusätzlich zum angegebenen Quelloperanden den Inhalt des Carry-Flags zum Akku: Übertrags-Rechnung ist also möglich. Der Befehl "SUBB" subtrahiert den Quelloperanden immer zusammen mit dem Carry-Inhalt (Quelloperand + Carry) vom Akku. Carry, Overflow: siehe Zahlenstrahl in Kapitel 2 ADD ADDC SUBB Hinweis: Vor einer Subtraktion sollte immer das Carry-Flag explizit gelöscht werden, da es zwangsweise mit-subtrahiert wird! Beispiel: Annahme: im Akku sei der Wert 0C9H, in R2 der Wert 54H, C=1 SUBB A, R2 ; Ergebnis der Subtraktion mit Carry: ; im Akku: 74H; C=AC=0; OV=1 Die Befehle "INC" bzw. "DEC" inkrementieren (+1) bzw. dekrementieren (-1) den angegebenen Operanden. Typische Anwendung dieser Befehle: Schleifenzähler. INC DEC Hinweis: Da INC und DEC keine Flags beeinflussen, können sollten sie nicht für Arithmetik verwendet werden (lediglich das Parity-Flag wird beeinflusst, jedoch nur dann, wenn der Akku als Operand verwendet wird). Mit INC DPTR kann der Datapointer (also ein 16-Bit-Register) verändert werden. Jedoch nur in aufsteigende Richtung, da es keinen Befehl zum Dekrementieren des DPTR gibt - hier muss man dann z.b. den Low-Teil, DPL, dekrementieren. INC DPTR Der Befehl "No Operation" (NOP) beeinflusst lediglich den Program Counter. Er wird häufig zur Bildung von kurzen Zeiten verwendet (Laufzeit des Befehls). NOP

8 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 8 von 45 Der Befehl "MUL AB" multipliziert den Akku mit dem Register B. Dabei werden beide Operanden als vorzeichenlose, ganzzahlige 8-Bit-Werte aufgefasst. Das daraus entstehende Produkt ist ein 16-Bit-Wert, dessen Low-Byte im Akku und desseh High-Byte im Register B erscheint. Als Zeichen dafür, dass das Produkt auf Akku und B verteilt ist, wird das Overflow-Flag gesetzt (Der Wert des Produktes ist also größer als FFH). Das Carry-Flag wird immer gelöscht. MUL AB Hinweis: Carry und Overflow haben bei der Multiplikation eine andere Bedeutung als bei ADD / SUBB! Beispiel: Annahme: in Akku sei der Wert 50H (80dez.), im Register B der Wert 0A0H (160dez). MUL AB ; Ergebnis ist 3200H (12800dez.), ; also Akku=00H, B=32H, OV=1, C=0 Der Befehl "DIV AB" dividiert den Akku durch das Register B. Dabei werden beide Operanden als vorzeichenlose, ganzzahlige 8-Bit-Werte aufgefasst. Der ganzzahlige Teil des Quotienten steht anschließend im Akku, der Rest steht in B. Die Flags C und OV werden immer gelöscht. DIV AB Hinweise: Carry und Overflow haben bei der Division eine andere Bedeutung als bei ADD / SUBB! Division durch "0": OV=1, C=0, Achtung: Akku- und B-Inhalt sind dann undefiniert! Der Befehl "DA A" korrigiert nach einer Addition zweier gepackter BCD-Zahlen (siehe Kapitel 2.3) das Ergebnis im Akku so, dass eine korrekte, gepackte BCD- Codierung entsteht. Beispiel: Annahme: im Akku sei die gepackte BCD-Zahl "56" (entsprechend 56H), im Register R3 sei die gepackte BCD-Zahl "67" (entsprechend 67H), das Carry-Flag sei =1. ADDC A, R3 ; Addiditon mit Carry; ; Ergebnis: im Akku ist der Wert 0BEH DA A ; Ergebnis: im Akku ist der Wert 24H, C=1 ; dies entspricht dem BCD-Ergebnis: "124" Hinweis: Der Befehl stellt keine allgemeine Dual-BCD-Wandlung dar; er ist nicht nach einer BCD-Subtraktion anwendbar Division durch "0" BCD-Korrektur DA A

9 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 9 von 45 Die Abbildung 6-6 zeigt die Klasse der Logischen Befehle. Hier zeigt sich eine für Mikrocontroller typische Eigenschaft: es gibt einen (kleinen) Befehlssatz zur Hantierung und Verknüpfung einzelner Bit-Operanden. Die Befehle "ANL C, bit", "ORL C,bit", verknüpfen das Carry-Flag mit einem Bit aus dem Bit-Adressierbaren Bereich (BSEG) entsprechend "UND" bzw. "ODER". Die Befehle "SETB" "CLR" setzen bzw. löschen ein Bit,"CPL" invertiert den Zustand eines Bitoperanden und "MOV C, bit" kopiert einen Bitoperanden in das Carry-Flag. Logische Befehle: Bitbefehle: ANL, ORL, SETB, CLR, CPL, MOV Abbildung 6-6: Logische Befehle

10 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 10 von 45 Die Befehle "ANL", "ORL", "XRL" verknüpfen die beiden Byte-Operanden bitweise nach den bekannten Funktionen "UND", "ODER", "EXKLUSIV-ODER" miteinander; dabei bleibt der Quelloperand unverändert, der Zieloperand wird überschrieben. Flags werden keine beeinflusst. Diese Befehle existieren auch bei den Standard-Mikroprozessoren; dort ist man dann für die Beeinflussung einzelner Bits auf die "Maskentechnik" angewiesen. Beispiel zur "Maskentechnik": Befehle zur logischen Verknüpfung von Bytes: ANL, ORL, XRL "Maskieren" Wenn die Bits 7, 3, und 2 eines Ausgangsports P4 gelöscht werden sollen, jedoch die anderen Bits unverändert bleiben sollen, definiert man eine sogenannte "Maske", hier: # entspr. 73H, die mit dem Operanden UND-Verknüpft wird: ANL P4, #73H ; Ergebnis: P4.7=P4.3=P4.2=0, ; P4.6, P4.5, P4.4, P4.1, P4.0: sind ; unverändert Die Befehle "CLR A" bzw. "CPL A" setzen den kompletten Akku auf "0" bzw. invertieren den Akku-Inhalt bitweise Die "Rotate-Befehle" verschieben das Bitmuster des Akku bei jedem Aufruf um eine Position nach links (RL) oder nach rechts (RR). Dabei kann das Carry-Flag miteinbezogen werden (RRC, RLC). Weitere Flags werden nicht beeinflusst. Hinweis: Neben der bitweisen Ausgabe eines Byte-Operanden z.b. über eine serielle Schnittstelle können die Rotate-Befehle zum Multiplizieren mit Faktor 2 bzw. Dividieren durch 2 verwendet werden. CLR A CPL A Rotate-Befehle Abbildung 6-7: Rotate-Befehle Der Befehl "SWAP" vertauscht die beiden Nibbles (Halbbytes) im Akku SWAP

11 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 11 von 45 Die Abbildung 6-8 zeigt die Klasse der Verzweigungsbefehle (Sprungbefehle und Unterprogramm-Aufrufe) des C517. Sprungbefehle ("JUMP") bewirken, dass der Program Counter mit einer neuen Adresse geladen wird: an dieser Adresse wird also das Programm fortgesetzt. Hinweise: Die Befehle ACALL, LCALL, RET und RETI werden im Kapitel 7, Unterprogrammtechnik, behandelt Diese neue Adresse kann entweder absolut angegeben werden ("springe zu Adresse 7A40H im Programm") oder relativ zur momentanen Stelle im Programm ("springe um 25 Adressen zurück"). In letzterem Fall zählt der Prozessor zur momentanen Befehlsadresse zunächst die Anzahl Bytes des Sprungbefehls selbst dazu, bevor er die Sprungdistanz (z.b. -25) dazuaddiert und damit diejenige Adresse erhält, an der das Programm forzusetzen ist. Die Sprungdistanz ist entsprechend kurz bei den relativen Sprüngen:-128 bis Mit Sprungbefehlen reagiert man programmtechnisch auf Ereignisse wie z.b. Rechenergebnisse, Vergleichsergebnisse, Zustände von Signalen usw. Dafür werden bedingte Sprünge benötigt, die abhängig vom Zustand eines Flag oder auch dem Zustand eines Bitoperanden ausgeführt werden (oder nicht ausgeführt werden). Bedingte Sprünge gibt es bei dem C517 nur als relative Sprungbefehle. Sprünge und Unterprogr.- Aufrufe absolute Sprünge relative Sprünge bedingte Sprünge Abbildung 6-8: Verzweigungsbefehle und Unterprogrammaufrufe

12 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 12 von 45 Sprungziele werden im Allgemeinen nicht als (absolute oder relative) Adresswerte im Assemblerprogramm eingegeben, sondern in symbolischer Form als sogenannte "Marken" ("Label"). Der Assembler (zusammen mit dem Linker/Locater) ersetzt dann diese Symbolik durch die Adresswerte (siehe nachfolendes Beispiel). Hinweis: Syntaxregeln zur Assemblersprache sind im Kapitel 7.1 ausführlich beschrieben. Der Befehl "LJMP" springt unbedingt zu einer 16-Bit-Adresse, kann also im gesamten Adressraum des CSEG verwendet werden. Beispiel: MOV A, R1 AJMP weiter ; "weiter" ist die symbolische ; Sprungmarke im Programm weiter: MOV R4, A ; hier wird das Programm ; fortgesetzt Der Befehl "SJMP" springt ebenfalls unbedingt, jedoch zu einer relativen Adresse; damit darf die Sprungmarke nicht mehr als +127 oder -128 Byte von der momentanen Adresse entfernt liegen. Beispiel für eine "Endlos-Schleife": - loop: SMP loop ; Sprung auf sich selbst ; (Sprungdistanz ist dann: FEH) symbolische Sprungziele LJMP SJMP Der Befehl ermöglicht die Konstruktion eines "Sprungverteilers" (ähnlich wie in C die "switch...case"-konstruktion). Eine Variable (Größe: 8 Bit, unsigned, muss im Akku sein), die im Programm vor dem JMP berechnet wurde, steuert die Fortsetzung des Programms. Dazu wird diese Variable im JMP-Befehl zum DPTR addiert, die Summe ergibt dann diejenige Adresse, an der das Programm fortgesetzt wird. Der DPTR muss also zuvor auf den Anfang einer Tabelle eingestellt werden; in dieser Tabelle stehen dann die "Weitersprünge" zu den eigentlich zu bearbeitenden Einzelprogrammen. Wenn die Variable Werte von z.b. 0, 1, 2 usw. annimmt, würde der JMP-Befehl damit zu der Anfangsadresse der Tabelle +0, bzw. +1 bzw. +2 springen. Da die Befehle in der Tabelle aber meist aus AJMP-Befehlen bestehen, die eine Länge von 2 Byte haben, muss die Variable zuvor mit 2 multipliziert werde (siehe Beispiel auf der folgenden Seite). Sprungverteiler mit JMP@A+DPTR

13 Mikrocontroller 6.2 Die Befehlsgruppen im Einzelnen Seite 13 von 45 Beispiel für Sprungverteiler: Annahme: case_variable (symbolische Bezeichnung einer Variablen im DSEG, siehe Kapitel 7.1) wird im Programm berechnet und kann dabei Werte von 0 bis 3 annehmen. Abhängig von dieser case_variablen soll das Programm an den Adressen case_0 oder case_1 oder case_2 oder case_3 fortgesetzt werden. MOV DPTR, #sprungtabelle MOV A, case_variable RL A ; Multipl. mit sprungtabelle: AJMP case_0 ; AJMP case_1 AJMP case_2 AJMP case_3 - - case_0: MOV... ; hier beginnt das Programm zur, Reaktion auf case_variable=0 - - case_1: usw. ; hier beginnt das Programm zur, Reaktion auf case_variable=1 Sprungverteiler Hinweis: Dynamische Sprungverteiler sind gefährliche Konstruktionen: wenn die case_variable im obigen Beispiel falsche Werte annimmt, z.b. größer 4 wird, werden Sprünge fehlgeleitet! Solche Konstruktionen sind deshalb grundsätzlich programmtechnisch gegen falsche Werte abzusichern und im Einzelschrittverfahren auszutesten! Mit den bedingten Sprungbefehlen kann auf vielfältige Weise auf Vergleichsergebnisse oder Rechenergebnisse reagiert werden. Sind die Sprungziele zu weit entfernt, müssen "Stützstellen" mit LMP-Befehlen eingeführt werden. Auf die genaue Funktion des Befehls "DJNZ" wurde in Abbildung 6-3 bereits verwiesen.

14 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 14 von 45 7 Programmiertechnik in Assembler 7.1 Assembler-Symbolik und Segmente In den Programmbeispielen wurde bisher - ausser der mnemonischen Darstellung von Befehlen und Registeroperanden (z.b. MOV A, R1) - nur die absolute Angabe von Adressen (z.b. 0AC71H) und Konstanten (z.b. #0E0H) verwendet. Dies macht ein Assemblerprogramm natürlich schwer lesbar. Ein moderner Assembler bietet darüber hinaus weitere Möglichkeiten, ein Programm lesbarer zu gestalten durch: frei definierbare Symbole für Adressen und Konstanten Verwaltung von Daten in Segmenten Unterstützung von Registerbänken Unterstützung von verteilter Programmerstellung Im Folgenden werden einige Elemente des "Assembler A51" kurz vorgestellt. Hinweis: Eine Assembler-Programmiersprache ist in ihren Sprachelementen nicht nur zugeschnitten auf den jeweiligen Prozessor, sondern - anders als Hochsprachen, die international genormt sein können - immer auch im Detail von dem jeweiligen Hersteller des Asssemblers abhängig (hier: Assembler A51 der Fa. Hitex, Karlsruhe). Die Elemente eines Assemblerprogramms sind: Befehlszeile (instruction line) Kommentar (comment) Assembler-Direktive (directive) Assembler-Steuerzeichen (control) Allgemeiner Aufbau einer Befehlszeile (Angaben in [ ] sind optional): [label:] mnemonic [operand] [,operand] [,operand] [;Kommentar] Elemente des Assembler- Programms: Befehlszeile Ein label ist der symbolische Namen derjenigen Adresse, an der der Befehl im Programmspeicher steht ("Marke"). Zur Bildung des symbolischen Namens: siehe Abbildung 7-1. Eine Marke muß im ersten Teil einer Zeile stehen; führende Leerzeichen und Tabulatorzeichen sind erlaubt. Eine Marke muß mit ":" abgeschlossen werden; in einer Zeile ist nur eine Marke erlaubt. Der numerische Wert einer Marke ist der momentane Stand des Adreßzählers im gerade aktiven Segment. Vor einer ORG-Anweisung ist keine Marke zulässig. Mnemonic: Name des Befehls; symbolische Bezeichnung für das Bitmuster seines Maschinencodes im Programmspeicher Der Operand ist die Größe, auf die sich die Befehlsfunktion bezieht Kommentar: Erläuterung zur Befehlszeile, geht vom Semikolon bis zum Zeilenende (nächstes Carriage Return (CR)). label (Marke) Mnemonik Operand Kommentar

15 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 15 von 45 Beispiel: Marke: MOV A, R0 ; Register R0 in Akku laden ; z.b.: weiterer Kommentar als Zeile JMP Marke Symbole dienen in der Assemblersprache zur Darstellung von: Zahlen Adressen Registern Symbole werden mit "Assembler-Direktiven" vereinbart. Dies sind Anweisungen, die lediglich den Assemblierungsvorgang steuern; sie erzeugen also keinen Maschinencode für den Mikroprozessor Die einfachste Form, ein Symbol zu vereinfachen, ist die Equate-Direktive: Symbole Assembler- Direktiven: EQU Symbolname EQU Ausdruck Symbolname EQU Registersymbol "Symbolname" stellt dabei eine frei wählbare Bezeichnung dar (Konventionen zur Bildung: siehe Abbildung 7-1). Sie wird bei jedem Auftreten im Programm vom Assembler ersetzt durch Ausdruck/Register. "Ausdruck" kann ein numerischer Ausdruck oder auch ein Symbol sein. Es darf keine Vorwärts-Referenz darin enthalten sein. Hinweis: Ein einmal definiertes Symbol darf im weiteren Verlauf nicht umdefiniert werden (Ausnahme: wenn das Symbol mit der Direktive SET definiert wurde, siehe Assembler-Handbuch). Abbildung 7-1: Symbolik in Assembler

16 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 16 von 45 Beispiele für Symbole mit EQU-Direktive: LIMIT EQU 120 VALUE EQU LIMIT 40 BUCHSTABE EQU 'A' AKKU EQU A PORT_4 EQU 0E8H MOV MOV AKKU, #LIMIT PORT_4, BUCHSTABE Will man Symbole für die einzelnen Speicherklassen des C517 definieren, stehen hierfür die folgenden Direktiven zur Verfügung: Symbolname BIT Adresse eines Bit im BIT-Bereich 20H 2FH oder SFR-Adr. 80H 0FFH Symbolname DATA Adresse im DATA-Bereich 0 7FH oder SFR-Adr. 80H 0FFH Symbolname IDATA Adresse im IDATA-Bereich 0 0FFH Symbolname XDATA Adresse im XDATA-Bereich 0 0FFFFH Symbolname CODE Adresse im Programmspeicher 0 0FFFFH Beispiele: EIN BIT 24H.2 ; Bitadresse AUS BIT 24H.3 ; Bitadresse SCHALTER BIT 0EAH ; Port 4.2 als neues ; Symbol im SFR-Bereich Symbole, die mit diesen Direktiven definiert werden, können anschließend nicht umdefiniert werden. Mit den bis jetzt beschriebenen Direktiven (EQU, BIT, DATA, IDATA, XDATA, CODE) werden lediglich symbolische Bezeichnungen für Objekte festgelegt, die genausogut mit den absoluten Zahlen, Adressen, Registernamen im Programm erscheinen könnten. Beim Übersetzen ersetzt der Assembler hier lediglich die Symbole durch die Absolutwerte; der Programmierer muß die Adressen selbst verwalten; wenn man also wie im obigen Beispiel z.b. Bitoperanden symbolisch verwendet, muss man selbst eine Liste führen (oder sie sich als "MAP-file" vom Assembler ausgeben lassen): welche Bitadressen denn schon bereits belegt sind. Die folgenden Direktiven reservieren bei der Definition von Symbolen gleichzeitig den entsprechenden Speicherplatz ; dies entspricht der Variablendeklaration bei höheren Sprachen (z.b. in der Sprache C: int ANNA; ). Der Assembler verwaltet hier die Zuordnung zwischen Symbol und Adressen selbst. Symbole für Speicherklassen Symbole mit Speicherplatz- Reservierung [label:] DBIT Audruck ; für Bits in einem BIT-Segment [label:] DS Audruck ; für Bytes im Code- oder int./ext. ; Datensegment Dabei ist "label" die symbolische Bezeichnung für diejenige Adresse, bei der der reservierte Speicherplatz beginnt, "Ausdruck" die Anzahl der zu reservierenden Bits (bei DBIT) bzw. der zu reservierenden Bytes (DS).

17 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 17 von 45 Diese symbolischen Operanden werden mit den Direktiven DBIT / DS vom Assembler in den jeweils aktuellen Segmenten automatisch an freien Plätzen einsortiert (zum Segmentbegriff: siehe weiter unten). Beispiel: EIN: DBIT 1 ; Bit-Reservierung im ; Bitsegment AUS: DBIT 1 ; reserviert das nächste Bit im ; Bitsegment PUFFER: DS 20 ; reserviert 20 Byte z.b. als ; Pufferspeicher NIBBLE: DBIT 4 ; Symbole mit Speicherplatzreservierung im Segment CSEG MOV C, EIN ; öffnet das Codesegment ; (siehe unten) Die folgenden Direktiven reservieren und initialisieren den entsprechenden Speicherplatz. Sie können nur für den Programmspeicher verwendet werden. Dies entspricht der kombinierten Variablendeklaration mit Initialisierung bei höheren Sprachen (z.b. in der Sprache C: int ANNA=0; ). [ label:] DB Ausdruck [,Ausdruck,...] ; initialisiert eine Folge von ; Bytes im Progr.-Speicher [ label:] DW Ausdruck [,Ausdruck,...] ; initialisiert eine. Folge von ; Worten im Progr.-Speich. Beispiele: Die folgende Zeile legt einen Textstring+Carriage Return+Line Feed im Programmspeicher ab: Symbole mit Speicherplatz- Reservierung und -Initialisierung MELDE_TEXT_1: DB 'Bitte Taste x betätigen', 0DH, 0AH weiterer Teststring: MELDE_TEXT_2: DB 'Allgemeine Schutzrechtsverletzung!' Ablage von wortgroßen Sprungadressen: SPRUNGADRESSEN: DW 0ABCDH, 0100H, 01070H Wenn mit den Direktiven zur Definition von Symbolen (DBIT, DS, DB, DW) Speicherplatz reserviert wird, ist damit nicht sofort eine Belegung des physikalischen Speichers im µcontroller-system verbunden; vielmehr sammelt der Assembler diese Elemente zunächst einmal in mehreren "Behältern", den Segmenten. Beim Erstellen eines Programms (genau: eines Moduls eines Gesamt- Programms) verwaltet der Assembler gleichzeitig fünf dieser "Behälter", für jede Speicherklasse des µcontrollers jeweils ein Segment (ein sechstes Segment ist für den Stack reserviert, s. später). Segmente

18 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 18 von 45 Diese "Behälter" (Segmente) muss man vor der Definition von Symbolen, die darin einsortiert werden sollen, öffnen; dies geschieht mit der Angabe einer Segment- Direktiven, die auch gleichzeitig die Anfangsadresse dieses Segmentes festlegt: absolute Segmente öffnen Abbildung 7-2: Definition absoluter Segmente Hinweis: Die optionale Direktive "AT address" legt fest, dass das nachfolgende Segment später im Speicher des Mikrocontrollers ab dieser Adresse angelegt wird. Beispiele: BSEG AT 20H ; Eröffnet ein Bit-Segment ab Adresse 20H EIN: DBIT 1 ; reserviert ein Bit mit dem symb. Namen EIN ; im Bitsegment AUS: DBIT 1 ; reserviert ein weiteres Bit mit Namen AUS CSEG AT 100H ; Code-Segment ab Adresse 100 H öffnen START: MOV C, EIN ; Dieser Befehl wird im Codesegment ab Adr. ; 100H abgelegt. Symbol START ist identisch ; mit Adr. 100H. MOV AUS, C ; Dieser Befehl liegt im Codesegment ab Adr. ; 102H DSEG AT 40H ; Daten-Segment ab Adresse 40H öffnen PUFFER: DS 20 ; reserviert 20 Byte für symb. Variable ; PUFFER ab 40H CSEG ; obiges Code-Segment wird fortgesetzt MOV A, #100H ; dieser Befehl wird im Codesegment nach dem ; Befehl "MOV AUS,C" eingetragen Der Assembler führt für jedes Segment einen eigenen Adreßzähler. Mit der Angabe "AT" wird das zuletzt eingestellte Segment geschlossen und ein neues Segment mit dem angegebenen Adreßzählerstand eröffnet. Fehlt diese AT-Angabe, so wird ein früher definiertes Segment gleichen Typs fortgesetzt, d.h. der Adreßzähler wird weitergezählt.

19 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 19 von 45 Der Vorteil der Segment-Verwendung liegt darin, daß der Programmierer sich nicht um die absoluten Adressen der einzelnen Operanden kümmern muß: nach der Festlegung einer Segment-Anfangsadresse können die Operanden fortlaufend definiert werden; die Zuordnung der µcontroller-speicheradressen zu den einzelnen Operanden übernimmt der Assembler mit Hilfe seines Segmentspezifischen Adreßzählers. Die oben beschriebenen Direktiven (CSEG, DSEG, XSEG, ISEG, BSEG) erzeugen absolute Segmente, deren Anfangsadresse im Speicher des µcontroller- Systems bereits bei der Programmierung (mit der Direktive AT) festgelegt wird. Absolute Segmente sind allerdings nur für kleinere Programme sinnvoll. Bei komplexen Programmieraufgaben wird die Gesamtaufgabe in voneinander möglichst unabhängige Teilaufgaben zerlegt, und diese Teilaufgaben dann in entsprechenden Programm-Modulen ausprogrammiert. Jedes Modul, das oft auch von einem eigenen Programmierer realisiert werden soll, benötigt also eigene Speicherbereiche im Code- Bit- Daten- usw.-speicher. Würde man hier jedem Modul einen eigenen Satz von absoluten Segmenten zuteilen, müßten dabei bereits die Segment-Anfangsadressen im Speicher des µcontrollers auf alle Module verteilt werden. Falls man dabei z.b. den Speicherbedarf für das Datensegment eines Moduls unterschätzt, müssen später die Datensegment-Anfangsadressen der anderen Module geändert werden. Dieses Problem löst man durch die Verwendung von relokatiblen Segmenten. Jedes relokatible Segment erhält bei der Definition einen Namen und die Angabe, welchen Speichertyp es repräsentiert ( BIT, IDATA, DATA, XDATA, CODE). Von da an können in diesen Segmenten die alle mit dem Segment-Adreßzähler 0 beginnen beliebig Befehle und symbolische Operanden angelegt werden. Die absoluten Speicheradressen werden erst später, beim Zusammenbinden festgelegt (LINK, LOCATE). Die folgende Direktive definiert ein relokatibles Segment: Segmentname SEGMENT Segment-Typ [Reloc-Typ] Dabei ist der Segmentname der Name des Segments; er kann beliebig festgelegt werden Mit diesem Namen kann das Segment später jederzeit wieder geöffnet werden (Direktive: RSEG). Der Locater kann Segmente gleichen Namens (und verträglichen Speichertyps) aus verschiedenen Programm-Modulen zu einem Segment kombinieren. Der Segment-Typ ist der Speichertyp, in dem das Segment angelegt werden soll: Nachteil von absoluten Segmenten bei modularen Programmen Relokatible Segmente Definition eines relokatiblen Segments: SEGMENT RSEG Abbildung 7-3: Segmenttypen für relokatible Segmente [Reloc-Typ] (Siehe Handbuch Assembler A51)

20 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 20 von 45 Beispiel für relokatible Segmente: ; ein relokatibles Codesegment und ein relok. Datensegment definieren: MAIN SEGMENT CODE ALLE_DATEN SEGMENT DATA Forts. Relok. Segmente ; das relokatible Datensegment auswählen: RSEG ALLE_DATEN SUMME DS 1 ; reserviert 1 Byte im Segment ; ALLE_DATEN ANZAHL DS 2 ; das relokatible Codesegment auswählen: RSEG MAIN MAIN: MOV A, SUMME ; Befehle werden im Codesegment ; ab der relativen ADD A, ANZAHL ; Adresse MAIN abgelegt MOV usw. Jedes Programm, das die Befehle CALL, PUSH, POP verwendet oder Interrupts benutzt, benötigt einen Stack (dieser Begriff wird im Kapitel 7 näher erläutert). Für diesen RAM-Bereich ist ein eigenes Stack-Segment vorgesehen, jedoch kein eigener Speicherbereich des Als Speichertyp für das Stacksegment kann deshalb ein beliebiger DATA- oder IDATA-Bereich verwendet werden. Beispiel: STACK SEGMENT IDATA ; Relokatible Definition des ;Stacksegments RSEG STACK ; Segment auswählen DS 10H ; 16 Byte für den Stack ;reservieren Stacksegment CSEG AT 0H ; Absolutes Codesegment ab ; Adresse 0000H JMP START ; Sprung zum ; Programmstart CSEG AT 100H ; Programmbeginn START: MOV SP, #STACK-1 ; Stackpointer initialisieren

21 Mikrocontroller 7.1 Assembler-Symbolik und Segmente Seite 21 von 45 Einige weitere Direktiven, die für die Arbeit im Mikrocontroller-Labor benötigt werden: NAME Modulname Direktive für Modulname Modulname Name für das Objektmodul, max. 40 Zeichen, falls im Quellcode nicht vorhanden, wird der Dateiname der Quelldatei (ohne Namenserweiterung) verwendet. Ausdruck ORG Audruck Absoluter oder einfach-relokatibler Wert, der vom Assembler berechnet wird. Wirkung in absoluten Segmenten: der Adreßzähler wird auf den errechneten Wert eingestellt Wirkung in relokatiblen Segmenten: der errechnete Wert wird als Offset zum momentanen Adreßzähler dieses Segments addiert (vorzeichengerecht). Mit ORG wird lediglich der Adreßstand verändert, es wird kein neues Segment erzeugt. Eine mögliche Adreßlücke wird Teil des aktuellen Segmentes. In absoluten Segmenten kann der Adreßzähler nicht unter die Segmentbasisadresse gelegt werden. Eine Zeile mit ORG-Direktive darf nicht mit einer MARKE: versehen werden! ORG USING Ausdruck USING Audruck Nummer der mit USING auszuwählenden Registerbank (0 3). Ab der mit USING gewählten Registerbank berechnet der Assembler aus den symbolischen Angaben für die Register R0 bis R7 die absoluten Adressen. ACHTUNG: die Registerbank selbst wird dadurch nicht umgeschaltet,dies muß per Befehl ausprogrammiert werden! END END Die END-Direktive muß in der letzten Zeile eines jeden Quellprogramms stehen und zeigt dem Assembler das Ende des zu übersetzenden Moduls an. Fehlt sie, ist das ein "fataler Fehler"; steht sie zu früh im Quelltext, wird alles nach der END-Direktive ignoriert.

22 Mikrocontroller 7.2 Lineare Programme, Iterationen Seite 22 von 45 Hinweis: Informationen zu den Mehr-Modul-Direktiven PUBLIC EXTRN sowie zu den Assembler-Steueranweisungen (Controls) $ XREF $ DEBUG $ NOMOD51 $ EJECT u.s.w. finden sich im Assembler-Handbuch A51 / HITEX 7.2 Lineare Programme, Iterationen Lineare Programme bestehen aus Befehlen, die in der Reihenfolge, wie sie im Programmspeicher stehen, abgearbeitet werden. Als Gesamtstruktur eines Mikrocontrollerprogramms dürfte dies wohl eher selten auftreten; z.b. bei einem Transponder, der nach dem Einschalten lediglich eine kurze Signalsequenz sendet und sich dann ausschaltet. In Kombination mit Verzweigungen sind lineare Programmstrukturen jedoch gerade im Bereich von Steuerungen relativ häufig anzutreffen. Iterationen (Bildung von Programm-"Schleifen") ermöglichen als Programmkonstrukt die wiederholte Bearbeitung eines Programmabschnittes das "beschäftigte Warten" auf ein äußeres Ereignis Beispiel für eine Iteration zur Zeitbildung: Es soll das Ausgangs-Portbit 4.7 mit einer bestimmten Frequenz ein/aus getaktet werden: SETB C MOV 20H.0, C blink: MOV R2, #0FFh loop_2: MOV R1, #0FFh loop_1: DJNZ R1, loop_1 DJNZ R2, loop_2 CPL 20H.0 MOV C, 20H.0 MOV P4.7, C AJMP blink Frage: mit welcher Frequenz wechsel P4.7 seinen Zustand, wenn ein Maschinenzyklus 1 Mikrosekunde dauert?

23 Mikrocontroller 7.2 Lineare Programme, Iterationen Seite 23 von 45 Beispiel für beschäftiges Warten: Solange das Eingangs-Portbit P4.0 = 0 ist, soll die Taktung von P4.7 angehalten werden: SETB C MOV 20H.0, C blink: MOV R2, #0FFh loop_2: MOV R1, #0FFh loop_1: DJNZ R1, loop_1 DJNZ R2, loop_2 CPL 20H.0 MOV C, 20H.0 MOV P4.7, C wait: JNB P4.0, wait AJMP blink Diese Schleifenkonstruktion, in der auf ein Ereignis dadurch gewartet wird, dass man das Ereignis immer wieder abfrägt (engl.: polling), nennt man deshalb "beschäftiges Warten", weil die gesamte Rechenleistung des Prozessors auf dieses "Polling" verwendet wird. Prinzipiell kann man die obige "wait"-schleife, die ja nur aus einem JNB-Befehl besteht, natürliche erweitern, indem man zusätzlich zur eigentlichen Abfrage des Signals noch andere Tätigkeiten ausprogrammiert. Dies geht dann jedoch auf Kosten des Echtzeitverhaltens: je länger die Poll-Schleife wird, umso seltener wird das Ereignis abgefragt, um so langsamer ist die Reaktion darauf. Will man eine einmal ausprogrammierte und getestete Funktion - wie im ersten Beispiel die Taktung eines Ausgangssignals - mehrfach verwenden, gibt es zwei Möglichkeiten: 1. die Makrotechnik 2. die Unterprogrammtechnik: siehe nächstes Kapitel Zu 1.: Die Makrotechnik ist - vereinfacht dargestellt - die Möglichkeit, beliebige Assembler-Befehlssequenzen zusammenzufassen als "Makrobefehl". Dieser Makrobefehl kann dann einfach oder mehrfach in ein Assemblerprogramm eingestreut werden. Vorausgesetzt, der Assembler unterstützt diese Technik (z.b. der im Labor verwendete "Keil A51-Assembler" ist ein sog. "Makroassembler"), dann kann der Anwender sich ganze Bibliotheken mit solchen Makros aufbauen. Damit werden die Programme entsprechend besser lesbar. Makros werden beim Assemblieren "expandiert" - im eigentlichen Maschinenprogramm sind sie also nicht mehr sichtbar. Diese Übersetzung kann durch zusätzliche Direktiven (z.b. für bedingte Übersetzung) gesteuert werden. Dabei ist allerdings zu berücksichtigen, dass diese Bedingungen zum Übersetzungszeitpunkt ausgewertet werden, also nicht im späteren Ablauf des Programms im Mikrocontroller. Vor- und Nachteil der Nutzung der Makrotechnik zur Mehrfachverwendung von Programmteilen: Laufzeitoptimal, da keine Aufrufbefehle / Rücksprungbefehle benötigt (siehe Unterprogrammtechnik) Mehrfache Expansion eines Makros verlängert jedesmal den Programmcode entsprechend Polling Makro

24 Mikrocontroller 7.3 Unterprogrammtechnik Seite 24 von Unterprogrammtechnik Ein mehrfach zu verwendentes Programm kann mit einem spezielle Befehl, dem CALL-Befehl, mehrfach aufgerufen werden. Dieses Unterprogramm steht also nur einmal als Codesequenz im Codespeicher; seine Anfangsadresse wird bei dem CALL-Befehl als Sprungzieladresse angegeben. Der CALL-Befehl entspricht dem Aufruf einer Function / Procedure in einer höheren Programmiersprache. Während man sich dort nicht darum kümmern musste, wie der Prozessor am Ende einer aufgerufenen Function wieder zurückfand in das aufrufende Programm, das ja fortgesetzt werden soll, muss dieses Verfahren in der Mikroprozessorwelt näher erläutert werden. Bei jedem CALL-Befehl schreibt der Prozessor über einen Stackpointer SP die Rückkehr-Adresse, also die Adresse des nach dem Rücksprung auszuführenden, nächsten Befehls, in den Stack. Dann wird in den Program Counter PC die Anfangsadresse des Unterprogramms eingetragen. Ein Unterprogramm wird immer beendet durch den RETURN-Befehl "RET". Dieser holt über den Stackpointer die Rückkehradresse aus dem Stack und schreibt sie in den Program Counter. Der Stack ist ein vom Anwender festzulegender RAM-Speicherbereich (Festlegen durch Initialisierung des Stackpointers). Der Stack (auch "Stapelspeicher" bzw. "Kellerspeicher" genannt) wird vom Prozessor selbständig über den Stackpointer verwaltet. Sein Speicherprinzip ist das "LIFO"-Prinzip: last in - first out. Die genaue Arbeitsweise des vom Prozessor selbst verwalteten Stack zeigt die folgende Abbildung. Jedes Unterprogramm muss mit RETURN beendet werden; CALL- und RETURN- Befehl müssen immer zusammen verwendet werden! Würde man ein Unterprogramm durch einen direkten Rücksprung in das aufrufende Programm verlassen, bliebe im Stack ein nichtgenutzten Eintrag übrig! Unterprogramme sind schachtelbar. Die Verschachtelungstiefe ist nur durch die Größe des Stack-Speicherbereichs begrenzt. Hinweis: Der Befehl "CALL" existiert in der Befehlsliste nicht; der Assembler versteht ihn trotzdem ("generic call") und wählt - je nach Abstand des Sprungzieles - den Befehl "ACALL addr11" oder den Befehl "LCALL add16" aus. In der nachfolgenden Abbildung ist ein LCALL als Beispiel verwendet worden. CALL-Befehl Stackpointer SP Return-Befehl: RET Stack LIFO-Prinzip Unterprogramm: Unterprogr.- Schachtelung CALL, ACALLaddr11 LCALLaddr16

25 Mikrocontroller 7.3 Unterprogrammtechnik Seite 25 von 45 Hauptprogramm Unterprogr. 1 MOV A,20h 0100h MOV R1,21h ADD A,R1 MOV R2,A 0102h 0103h ADD A,R1 MOV R2,A CALL 0100h 0104h CALL 0200h SUBB A,R0 0107h 0108h MOV R2,A RETURN 0200h 0202h 0203h 0204h Unterprogr. 2 MOV A,B ADD A,R1 MOV R2,A RETURN 0Bh 01h SP 0Ah 07h 09h 07h SP 09h 07h 07h xxh SP 08h 07h E2h xxh 08h 07h E2h xxh Stack vor Ausführung des CALL-Befehls Stack vor Ausführung des CALL-Befehls Stack vor Ausführung des Return-Befehls Abbildung 7-4: Call- / Return-Befehle und Stackaufbau Erklärung: Der SP zeigt vor dem ersten CALL-Befehl auf einen irrelevanten Eintrag (Grundstellung). Durch einen CALL-Befehl wird zuerst der SP weitergezählt, dann die Rücksprungadresse eingetragen. Ein RETURN-Befehl holt zuerst die Rücksprungadresse aus dem Stack, dann wird der SP zurückgezählt. Betrachtet man Unterprogramme als Ersatz für "function" oder "procedure" einer höheren Programmiersprache, kommen zusätzlich zu dem Aufrufverfahren mittels CALL-RETURN-Befehlen weitere Anforderungen an Unterprogramme hinzu: Datenneutralität Parameterübergabe Lokale Variable Datenneutralität: Variable, die das aufrufende Programm (im Folgenden als "Hauptprogramm" bezeichnet) verwendet, dürfen durch den Aufruf des Unterprogramms nicht verändert werden - das Unterprogramm muss also völlig neutral gegenüber dem Hauptprogramm sein. Diese Aufgabe muss grundsätzlich im Unterprogramm gelöst werden. Dazu bieten die Mikroprozessoren die Befehlskombination "PUSH" - "POP" (siehe Abbildung 6-3, Transferbefehle). PUSH direct kopiert die per direkter Adressierung angegebene Speicherstelle aus dem DSEG über den Stackpointer in den Stack. POP direct holt über den momentanen Stackpointerstand ein Byte aus dem Stack und kopiert es in die per direkter Adressierung angegebene Speicherstelle im DSEG. Anforderung an Unterprogramme: Datenneutralität mit PUSH POP

26 Mikrocontroller 7.3 Unterprogrammtechnik Seite 26 von 45 Zur Datenneutralität muss also zu Beginn des Unterprogramms jede Variable, die das Unterprogramm benützt, mit PUSH in den Stack gerettet werden. Dann erst darf sie im UP verändert werden. Am Ende des Unterprogramms müssen die in den Stack geretteten Variablen wieder restauriert werden mittels POP. Wegen des LIFO-Prinzips des Stack muss die Reihenfolge beim Restaurieren umgekehrt sein gegenüber der Reihenfolge beim Retten der Variablen. Beispiel: In der folgenden Abbildung werden der DPTR, der Akku und das Register R0 gerettet / restauriert. Hauptprogramm Unterprogr. 1 MOV A,20h 0100h PUSH DPH ADD A,R1 PUSH DPL MOV R2,A PUSH ACC CALL 0100h PUSH 00h 07E2h 07h SUBB A,R0 xxh SP Beginn des eigentl. UP POP 00h POP ACC POP DPL POP DPH RETURN 0Dh 0Ch 0Bh 0Ah 09h 08h 07h (R0) (Akku) (DPL) (DPH) 07h E2h xxh SP Stack im HP vor Ausführung des CALL- Befehls Stack im UP1 vor Ausführung des Return- Befehls Abbildung 7-5: PUSH- und POP-Befehle zur Datenneutralität Hinweise: 1.) Wegen der direkten Adressierung bei PUSH und POP muss anstelle der Register die direkten Adressen verwendet werden, also ACC anstelle von A für Akku 00h anstelle von R0 (oder entsprechender Symbolname) DPH, DPL anstelle von DPTR 2.) Zu jedem PUSH-Befehl muss ein POP-Befehl existieren! Ansonsten trifft der Stackpointer beim Return-Befehl nicht auf die Rücksprungadresse. 3.) Für die richtige LIFO-Reihenfolge ist der Programmierer verantwortlich!

27 Mikrocontroller 7.3 Unterprogrammtechnik Seite 27 von 45 Parameterübergabe: Will das aufrufende Programm (Hauptprogramm HP) dem Unterprogramm Werte übergeben, die dort bearbeitet werden, kann dies über die folgenden Verfahren geschehen: Übergabe über Register Übergabe über Speichervariable Übergabe über den Stack Bei der Übergabe von Parametern über Register schreibt das HP die Werte in Register, aus denen sie das Unterprogramm dann ausliest. Vorteile: schnell Parameter sind statische Variable Nachteile: Anzahl der Parameter durch geringe Registerzahl begrenzt Parameter sind globale Variable Bei der Übergabe von Parametern über Speichervariable schreibt das HP die Werte in Externe RAM-Speicherzellen, aus denen sie das Unterprogramm dann ausliest. Vorteile: Anzahl der Parameter nur durch ext. Speicher begrenzt Parameter sind statische Variable (zu jedem Zeitpunkt vorhanden, auch wenn das UP nicht in Arbeit ist) Nachteile: Wegen DPTR-Zugriffe extrem langsam Parameter sind globale Variable (können von anderen Programmteilen verändert werden). Bei der Übergabe von Parametern über den Stack schreibt das HP mittels PUSH- Befehlen die Parameter über den Stackpointer in den Stack. Das Unterprogramm liest sie über Pointerzugriffe, die am momentanen Stackpointer orientiert sind, dort wieder aus. Vorteile: Anzahl der Parameter ist nur durch Stack-Größe begrenzt Parameter sind temporäre Variable (benötigen nur Speicherplatz, solange das UP in Bearbeitung ist). Parameter sind lokale Variable (sind nur im UP sichtbar, da sie nach Beendigung des UP nicht mehr vorhanden sind, können sie von anderen Programmteilen auch nicht mehr verändert werden). Parameter an Unterprogr. übergeben: über Register über Ext. RAM über den Stack Nachteile: langsam wegen Pointer-Zugriffen Parameter sind nicht beobachtbar (da temporär)

28 Mikrocontroller 7.3 Unterprogrammtechnik Seite 28 von 45 Parameter über Stack übergeben Abbildung 7-6: Beispiel für die Parameterübergabe über den Stack Hinweis: Von Hochsprachen-Compilern (wie"c") wird meist nur diese Parameterübergabe über den Stack verwendet Grund: jeder Prozessor besitzt einen Stack, der über den Stackpointer adressiert werden kann: damit benötigt der Compiler sonst weiter keine Kenntnis über die Speicher bzw. Registerwelt des Zielprozessors.

29 Mikrocontroller 7.3 Unterprogrammtechnik Seite 29 von 45 Dieses Verfahren, sich im Stack dort, wo gerade der SP steht, Speicher über einen am SP angehängten Zeiger zu reservieren, wird von Compilern auch für allgemeine Speicher-"Allokierung" verwendet. So kann z.b. der SP nach Einrichten des "Parameter-Zeigers" nach oben, also in Richtung steigender Adressen verschoben werden. Damit wird auf dem Stack Platz allokiert; in diesem kann das Unterprogramm lokale, temporäre Variable anlegen. Für die Zugriffe auf diese Variable muss ein zweiter Zeiger eingerichtet werden, der zunächst auf dieselbe Position wie der Zeiger für Parameter-Zugriffe gesetzt wird und mit dem man "nach oben" (also in Richtung steigender Adressen) auf lokale Variable zugreifen kann. Vorteile: Stack-Variable benötigen nur Speicherplatz, wenn das Unterprogramm bearbeitet wird (temporäre Variable). Stack-Variable sind lokal Lokale Variable im Stack Nachteile: langsam wegen Pointerzugriff Stack "atmet", je nach Verschachtelung der Unterprogramme wird mehr oder weniger Stack benötigt; Gefahr des "Stack- Überlaufs"

30 Mikrocontroller 7.4 Interrupts Seite 30 von Interrupts Die folgenden Betrachtungen zum Interrupt-Verfahren gelten zunächst allgemein für alle Mikroprozessor-Systeme; also nicht nur für den C517. Anschließend wird dann speziell auf das Interrupt-System des C517 eingegangen. Soll ein Mikrocontrollersystem auf externe Ereignisse (Signale) reagieren, gibt es dazu zwei Verfahren: Polling Interrupt Polling (siehe Kap. 7.3) bedeutet, das externe Ereignis im Programmablauf immer wieder abzufragen und bei Auftreten des Ereignisses in das entsprechende Programmteil bzw. Unterprogramm zu verzweigen. Polling führt zu zyklischen Programm-Architekturen. Vorteil: Polling kann deterministisch ausgelegt werden; die Reaktionszeiten für den "best case" und den "worst case" sind berechenbar. Polling- Verfahren Nachteile: Polling bedeutet immer auch: "beschäftigtes Warten"; jede Abfrage eines nicht eintretenden Ereignisses kostet unnötige Rechenzeit: ungünstig besonders dort, wo Ereignisse selten auftreten. Die Reaktionszeit auf ein Ereignis wird bestimmt von der Summe der Programmlaufzeiten, die zwischen zwei Abfragen dieses Ereignisses auftreten können: langsam besonders dann, wenn um Rechenzeit zu sparen, selten gepollt wird. Interrupt bedeutet, dass das externe Ereignis über ein eigenes Signal sich bei dem Mikroprozessor meldet, dieser daraufhin das gerade in Arbeit befindliche Programm unterbricht und ein dem Signal zugeordnetes Unterprogramm aufruft. In diesem Unterprogramm ("Interrupt-Service-Routine") ist dann die Reaktion auf das Interrupt-Signal ausprogrammiert. Am Ende der Interrupt-Routine wird das unterbrochene Programm weiterbearbeitet. Wenn das externe Ereignis nicht auftritt, verursacht es somit keinerlei Programmlaufzeit. Vorteile: Laufzeit-optimal: Ereignisse, die nicht auftreten, verursachen keine Laufzeit. Minimale Reaktionszeit: die Reaktionszeit ist im "best case" gleich der Laufzeit des kürzesten Befehls eines Prozessors (Befehle selbst sind nicht unterbrechbar durch Interrupt); im "worst case" ist sie bestimmt durch den längsten Befehl eines Prozessors (oder durch die längeste Interrupt-Sperrzeit, siehe folgende Betrachtungen). Mehrere Ereignisse, die selten auftreten, können per Interrupt bearbeitet werden Interrupts können per Befehl / Steuerbit gesperrt werden, um kritische Programmteile zu schützen. Interrupt- Verfahren, Übersicht

31 Mikrocontroller 7.4 Interrupts Seite 31 von 45 Nachteile des Interruptverfahrens: für jedes Ereignis wird ein eigenes Signal benötigt. Die Datenneutralität (siehe Kapitel 7.3) muss vollständig gewährleistet sein: wo das Interrupt-Unterprogramm das laufende Programm unterbricht, also eingeschachtelt wird, ist nicht vorhersehbar! Seiteneffekte sind auch bei vollständiger Datenneutralität nicht vermeidbar: z.b. ändert ein Programm je nachdem, wo es durch eine Interrupt-Bearbeitung unterbrochen wird, seine Laufzeit! Wird mehr als ein Interrupt verwendet, benötigt man zusätzliche Mechanismen, um die gegenseitige Unterbrechung zu steuern (wird im Folgenden vorgestellt). Die Testbarkeit eines Programmsystems nimmt ab: ein 100-%-Test müsste die Einschachtelung eines Interrupt- Unterprogramms an jedem Befehl des Hauptprogramms einmal testen! Diesen Aufwand kann man als Programmierer in der Praxis nicht treiben; ein laufendes Mikrocontrollersystem hat aber den ganzen Tag Zeit, diese Einschachtelungen "zu testen" und findet - manchmal nach Jahren erst - diejenige Stelle, an der ein Seiteneffekt zu einem Fehler führt! Je mehr Interrupts verwendet werden, umso unkalkulierbarer wird das Zeitverhalten des Systems (z.b. bei gleichzeitigem Auftreten aller Interrupts): die Deterministik nimmt ab. Eine Interrupt-Service-Routine (ISR) stellt also nichts anderes dar, als ein Unterprogramm, das ohne einen Call-Befehl, lediglich durch ein Hardware-Signal gesteuert, in ein laufendes Programm (im Folgenden wieder "Hauptprogramm HP" genannt) eingeschachtelt wird. Dabei verwaltet der Prozessor die Rückkehr- Adresse wie üblich über einen Stackpointer im Stack. Eine ISR wird - wie ein Unterprogramm - mit PUSH-POP-Befehlen datenneutral ausprogrammiert. Auch wenn es keinen Call-Befehl zum Aufruf gibt: am Ende der ISR muss ein RETURN-Befehl die Rückkehr in das HP ermöglichen. Je nach Prozessor ist dies der RET-Befehl oder z.b. bei dem C517, ein spezieller Return- Befehl "RETI" (Return from Interrupt). Während Unterprogramme an beliebigen Stellen im Codespeicherbereich liegen können (die Anfangsadresse eines Unterprogramms wird ja bei dem CALL-Befehl mitangegeben), muss der Prozessor die Anfangsadressen aller ISR kennen. Anfangsadressen von Interrupt-Service-Routinen werden als "Interrupt-Vektoren" bezeichnet. Von den möglichen Verfahren, wie ein Prozessor von einem bestimmten Interrupt-Signal zu der zugeordneten Interrupt-Einsprungadresse (also zum Interruptvektor) findet, werden nur die folgenden zwei Verfahren betrachtet: 1. Feste Interrupt-Vektoren 2. Interrupt-Vektortabelle Interrupt- Service- Routine ISR Ende der ISR: RETI Interrupt- Vektor Verfahren zur Ermittlung der Interrupt- Einsprung- Adressen

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

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

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

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

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

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

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR

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

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40 CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Mitgliederbereich (Version 1.0) Bitte loggen Sie sich in den Mitgliederbereich mit den Ihnen bekannten Zugangsdaten

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

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

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

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten.

Auf der linken Seite wählen Sie nun den Punkt Personen bearbeiten. Personenverzeichnis Ab dem Wintersemester 2009/2010 wird das Personenverzeichnis für jeden Mitarbeiter / jede Mitarbeiterin mit einer Kennung zur Nutzung zentraler Dienste über das LSF-Portal druckbar

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Anleitung E Mail Thurcom E Mail Anleitung Version 4.0 8.2014

Anleitung E Mail Thurcom E Mail Anleitung Version 4.0 8.2014 Anleitung E Mail Inhalt 1. Beschreibung 1.1. POP3 oder IMAP? 1.1.1. POP3 1.1.2. IMAP 1.2. Allgemeine Einstellungen 2. E Mail Programme 3 3 3 3 3 4 2.1. Thunderbird 4 2.2. Windows Live Mail 6 2.3. Outlook

Mehr

Dokument Lob erstellen

Dokument Lob erstellen Dokument Lob erstellen Vorbemerkung Ein Lob wird immer mit einem Abschlusszeugnis ausgestellt und auch mit diesem Verteilt. Um ein Lob zu dokumentieren müssen folgende Bausteine definiert und eingerichtet

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

E Mail Versand mit der Schild NRW Formularverwaltung

E Mail Versand mit der Schild NRW Formularverwaltung -Seite 1- E Mail Versand mit der Schild NRW Formularverwaltung Seit der Version 1.12.3.97 der Reportverwaltung ist die Möglichkeit integriert, E Mails direkt, d.h. ohne Umweg über einen externen Mailclient

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,

Mehr

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...

Mehr

Der neue persönliche Bereich/die CommSy-Leiste

Der neue persönliche Bereich/die CommSy-Leiste Der neue persönliche Bereich/die CommSy-Leiste Mit der neue CommSy-Version wurde auch der persönliche Bereich umstrukturiert. Sie finden all Ihre persönlichen Dokumente jetzt in Ihrer CommSy-Leiste. Ein

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42 7DVWH.HOOQHU Sie befinden sich im Dialog 5DXP%LOG Sie Tippen auf die Taste.HOOQHU Sie gelangen danach in den Dialog.HOOQHU/RJLQ. Alle Handlungen, die YRQ,KQHQ durchgeführt werden können sind schwarz dargestellt.

Mehr

Eigene Dokumente, Fotos, Bilder etc. sichern

Eigene Dokumente, Fotos, Bilder etc. sichern Eigene Dokumente, Fotos, Bilder etc. sichern Solange alles am PC rund läuft, macht man sich keine Gedanken darüber, dass bei einem Computer auch mal ein technischer Defekt auftreten könnte. Aber Grundsätzliches

Mehr

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...

Mehr

Stammdatenanlage über den Einrichtungsassistenten

Stammdatenanlage über den Einrichtungsassistenten Stammdatenanlage über den Einrichtungsassistenten Schritt für Schritt zur fertig eingerichteten Hotelverwaltung mit dem Einrichtungsassistenten Bitte bereiten Sie sich, bevor Sie starten, mit der Checkliste

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

Kontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Kontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Kontakte Kontakte Seite 1 Kontakte Seite 2 Inhaltsverzeichnis 1. ALLGEMEINE INFORMATIONEN ZU DEN KONTAKTEN 4 2. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 3. STAMMDATEN FÜR DIE KONTAKTE 4 4. ARBEITEN

Mehr

Jederzeit Ordnung halten

Jederzeit Ordnung halten Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das

Mehr

3.14 Die Programmieroberfläche Programmierung

3.14 Die Programmieroberfläche Programmierung 121 3.14 Die Programmieroberfläche Programmierung Besonderheiten Die Oberflächen der einzelnen Quellen (3S, KW-Software, Siemens-TIA-Portal, logi.cad 3, PAS4000) sind in sich unterschiedlich. Aber auch

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Zahlensysteme Seite -1- Zahlensysteme

Zahlensysteme Seite -1- Zahlensysteme Zahlensysteme Seite -- Zahlensysteme Inhaltsverzeichnis Dezimalsystem... Binärsystem... Umrechnen Bin Dez...2 Umrechnung Dez Bin...2 Rechnen im Binärsystem Addition...3 Die negativen ganzen Zahlen im Binärsystem...4

Mehr

Produktschulung WinDachJournal

Produktschulung WinDachJournal Produktschulung WinDachJournal Codex GmbH Stand 2009 Inhaltsverzeichnis Einleitung... 3 Starten des Programms... 4 Erfassen von Notizen in WinJournal... 6 Einfügen von vorgefertigten Objekten in WinJournal...

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Dokumentenverwaltung

Dokumentenverwaltung Aktivieren der Dokumentenverwaltung Dokumentenverwaltung Die Dokumentenverwaltung ist ein Modul und wird über Ihre Lizenzdatei freigeschaltet. Ist die Dokumentenverwaltung in der Lizenzdatei nicht aktiviert,

Mehr

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Handbuch und Dokumentation Beschreibung ab Vers. 1.13.5 Am Güterbahnhof 15 D-31303 Burgdorf Tel: +49 5136 802421 Fax: +49 5136 9776368 Seite 1

Mehr

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2) Kurzbeschreibung: Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2) Beim HSI-88-USB handelt es sich um ein Interface vom s88-rückmeldebus zum Universal Serial Bus

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

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

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen. Bildergalerie einfügen Wenn Sie eine Vielzahl an Bildern zu einem Thema auf Ihre Homepage stellen möchten, steht Ihnen bei Schmetterling Quadra das Modul Bildergalerie zur Verfügung. Ihre Kunden können

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Zinsrechner. Bedienungsanleitung

Zinsrechner. Bedienungsanleitung Zinsrechner Bedienungsanleitung Medcontroller Dragonerstraße 35 30163 Hannover Telefon: 0511 397 0990 kundenservice@medcontroller.de www.medcontroller.de Inhaltsverzeichnis Hintergrund... 2 Nutzungsbedingungen

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

Mehr

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken Upload- / Download-Arbeitsbereich Stand: 27.11.2013 Eine immer wieder gestellte Frage ist die, wie man große Dateien austauschen

Mehr

Software-Beschreibung Elektronische Identifikations-Systeme BIS Softwarekopplung PROFIBUS DP mit BIS C-60_2-...an S7

Software-Beschreibung Elektronische Identifikations-Systeme BIS Softwarekopplung PROFIBUS DP mit BIS C-60_2-...an S7 Software-Beschreibung Elektronische Identifikations-Systeme BIS Softwarekopplung PROFIBUS DP mit BIS C-60_2-...an S7 Dieser Funktionsbaustein ermöglicht eine Kommunikation zwischen einer Balluff- Auswerteeinheit

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten bedingten Wahrscheinlichkeit. Mathematik- Unterrichts- Einheiten- Datei e. V. Klasse 9 12 04/2015 Diabetes-Test Infos: www.mued.de Blutspenden werden auf Diabetes untersucht, das mit 8 % in der Bevölkerung verbreitet ist. Dabei werden

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

Anleitung zur Erstellung einer Gefährdungsbeurteilung

Anleitung zur Erstellung einer Gefährdungsbeurteilung Anleitung zur Erstellung einer Gefährdungsbeurteilung 1 Vorbereiten der Gefährdungsbeurteilung 1.1 Richten Sie mit Hilfe des Windows-Explorers (oder des Windows-Arbeitsplatzes) einen neuen Ordner ein,

Mehr

Password Depot für ios

Password Depot für ios Password Depot für ios Inhaltsverzeichnis Erste Schritte... 1 Kennwörterdatei erstellen... 1 Neue Einträge erstellen... 3 Einträge / Gruppen hinzufügen... 3 Einträge / Gruppen kopieren oder verschieben...

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und E-Mail-Adresse für den Fall, dass die Diskette nicht lesbar ist.

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und E-Mail-Adresse für den Fall, dass die Diskette nicht lesbar ist. Matrizenrechner Schreiben Sie ein CProgramm, das einen Matrizenrechner für quadratische Matrizen nachbildet. Der Matrizenrechner soll mindestens folgende Berechnungen beherrschen: Transponieren, Matrizenaddition,

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

V o r w o r t. A n l e i t u n g

V o r w o r t. A n l e i t u n g V o r w o r t In diesem Dokument wird erklärt, wie man mit Hilfe des Logitech Profiler Tastaturbefehle, welche von einem PC Spiel benutzt werden, auf die Tasten eines Eingabegeräts der Firma Logitech belegt.

Mehr

Abschluss Version 1.0

Abschluss Version 1.0 Beschreibung Der Abschluss wird normalerweise nur einmal jährlich durchgeführt. Dieses Tech-Note soll helfen, diesen doch seltenen aber periodisch notwendigen Vorgang problemlos durchzuführen. Abschlussvarianten

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

1. So beginnen Sie eine Kalkulation

1. So beginnen Sie eine Kalkulation KASSE Eine iphone Apps von a-mass Dieses kleine Programm kann zur Buchführung, als Haushalts- oder Registrierkasse verwendet werden Es können laufende Kosten genauso wie jegliche Ausgaben oder Einnahmen

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7 Tutorial: Wie kann ich Kontakte erfassen In myfactory können Sie Kontakte erfassen. Unter einem Kontakt versteht man einen Datensatz, der sich auf eine Tätigkeit im Zusammenhang mit einer Adresse bezieht.

Mehr

1 Die Bado Schleswig-Holstein

1 Die Bado Schleswig-Holstein Basisdokumentation Schleswig-Holstein Seite 1 1 Die Bado Schleswig-Holstein Für die Bado SH werden in Patfak Light folgende Bereiche verwendet: - Erfassung der Bado-SH Items (Betreuungsbezogene Daten/Diagnosen/Biografiedaten)

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Mandant in den einzelnen Anwendungen löschen

Mandant in den einzelnen Anwendungen löschen Mandant in den einzelnen Anwendungen löschen Bereich: ALLGEMEIN - Info für Anwender Nr. 6056 Inhaltsverzeichnis 1. Allgemein 2. FIBU/ANLAG/ZAHLUNG/BILANZ/LOHN/BELEGTRANSFER 3. DMS 4. STEUERN 5. FRISTEN

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

STRATO Mail Einrichtung Mozilla Thunderbird

STRATO Mail Einrichtung Mozilla Thunderbird STRATO Mail Einrichtung Mozilla Thunderbird Einrichtung Ihrer E-Mail Adresse bei STRATO Willkommen bei STRATO! Wir freuen uns, Sie als Kunden begrüßen zu dürfen. Mit der folgenden Anleitung möchten wir

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr