Praktikumsanleitung. Rechnerorganisation. Versuch 1: Informationskodierung. (Emulator 8086)
|
|
- Lothar Waldfogel
- vor 7 Jahren
- Abrufe
Transkript
1 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Technische Informatik und Ingenieurinformatik Fachgebiet Integrierte Hard- und Softwaresysteme Praktikumsanleitung Rechnerorganisation Versuch 1: Informationskodierung (Emulator 8086) (Studiengänge IN, MA) Christian Vollmer Dr.-Ing. Karsten Henke Dr.-Ing. Klaus Debes Version 1.2 vom April 2007
2 Inhaltsverzeichnis 1 Einleitung 2 2 Ablauf 2 3 Vorbemerkungen 3 4 Aufgaben Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung Aufgabe Vorbereitung Aufgabenstellung
3 5 Anhang A - Emu8086 Kurzhandbuch Inhalt dieses Dokuments Editorfunktionen Programm emulieren Typischer Ablauf der Emulation eines Programmes Anhang B - Erklärung des Inhaltes der Datei Template.asm Inhalt dieses Dokuments Quellcode Erläuterung Ein einfaches Programm Erläuterung Einleitung Dieser Versuch im Rahmen des Praktikums "Technische Informatik" soll die Kenntnisse der systemnahen Programmierung und zum Zusammenspiel wichtiger Prozessorkomponenten vertiefen. Dazu sind mehrere Aufgaben zu bearbeiten, in denen jeweils anhand einer vorgegebenen Aufgabenstellung ein Programm in einer Assembler-Sprache zu implementieren ist. Anschließend soll das erstellte Programm in einer Simulationsumgebung, die die systemnahe Sicht eines 8086-kompatiblen PC emuliert, getestet werden. Dabei soll das Programmverhalten bezüglich der Aufgabenstellung untersucht und interpretiert werden. 2 Ablauf Zu Beginn des Praktikums bekommen Sie vom Betreuer eine Quellcodedatei "student- Template.asm", die als Basis für ihre Quelltextentwürfe dient. Des weiteren bekommen Sie für jede zu lösende Aufgabe je eine vom Betreuer erstellte, zur jeweiligen Aufgabe passende Datei, welche per "include"-direktive automatisch (diese Direktive ist schon in der vorgegebenen Quellcodedatei enthalten) in ihr Programm eingebunden wird und eine vom Betreuer definierte Speicherbelegung zum Beginn der Laufzeit ihres Programmes herstellt. Der Betreuer teilt ihnen nun mit, welche Aufgabe Sie zuerst lösen sollen. Sollten Sie in Vorbereitung auf das Praktikum diese Aufgabe bereits gelöst haben und den fertigen Quelltext in ausgedruckter Form zum Praktikum mitgebracht haben, so können Sie nun ihren Quelltext abtippen. Mit Hilfe der Emulationsfunktionen des emu8086 simulieren Sie anschließend Ihr erstelltes Programm und machen sich gegebenenfalls Notizen, sofern in der Aufgabe eine Aussage zum Programmverlauf gefordert ist. Nachdem Sie die Lösung, einschließlich der Beobachtungen des Programmverlaufes, fertig gestellt haben, melden Sie sich beim Betreuer. Der Betreuer beurteilt nun die Korrektheit ihrer Ergebnisse und stellt gegebenenfalls vertiefende Fragen. Nachdem Sie ein zufriedenstellendes Ergebnis erzielt haben, teilt der Betreuer Ihnen mit, welche Aufgabe Sie als nächstes lösen sollen. 2
4 3 Vorbemerkungen In Vorbereitung auf das Praktikum können Sie eine Demoversion der Simulationsumgebung emu8086 von der Website downloaden und mit deren Hilfe bereits Lösungen für die gegebenen Aufgaben anfertigen. Diese Lösungen können Sie in ausgedruckter Form zum Praktikumstermin mitbringen. Des Weiteren finden Sie auf den Praktikumsseiten die Quellcodedatei, welche Ihnen auch vom Betreuer während des Praktikums vorgegeben wird. Diese können Sie als Basis für eigene Experimente und zur Anfertigung Ihrer Lösungen in Vorbereitung auf das Praktikum verwenden. Anhang A dieses Dokumentes enthält eine kurze Einführung in die Bedienung der Emulationsumgebung, welche die im Rahmen des Praktikums nötigen Funktionen des Programmes darstellt und erläutert. Anhang B enthält eine Erläuterung der vorgegebenen Quellcodedatei. Um einen umfassenden Überblick über den Ablauf des Praktikums zu bekommen, sollten Sie dieses Dokument vollständig lesen, bevor Sie mit der weiteren Arbeit beginnen! 4 Aufgaben Im Folgenden sind die während des Praktikums zu lösenden Aufgaben dargestellt. 4.1 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MOV, MUL, DEC und JNZ Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: MOV AL, 1 m1: MUL BL DEC CX JNZ m1 Listing 1: Vorgegebener Assembler-Code Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie die Emulation. Führen sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step- Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags nach jedem Befehl. Leiten Sie aus Ihren Beobachtungen Vermutungen über die Funktion der Befehlsfolge ab. Ändern Sie nun die Befehlsfolge folgendermaßen: MOV AL, 1 m1: MUL DL Listing 2: Abgeänderter Assembler-Code 3
5 DEC CX JNZ m1 Führen Sie nun wiederum die Anweisungen sequenziell schrittweise mit Hilfe der "Step"- Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie auch hierbei wieder die Veränderungen der Register und der Prozessor-Status-Flags nach jedem Befehl. Welche Unterschiede beobachten Sie im Vergleich zur Abarbeitung der vorhergehenden Befehlsfolge. Was bedeuten diese Veränderungen und wo liegen ihre Ursachen? 4.2 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MOV, ADD, CMP, JNE, INC und JNZ Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: MOV SI, 0 MOV BX, BP ADD BX, DX m1: MOV CL, [BP+S I ] MOV [BX+SI ], CL INC SI CMP SI, DX JNE m1 Listing 3: Vorgegebener Assembler-Code Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie die Emulation. Führen Sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step-Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags, sowie die Speicherinhalte an den im Programm adressierten Speicherstellen nach jedem Befehl. Leiten Sie aus Ihren Beobachtungen Vermutungen über die Funktion der Befehlsfolge ab. Ändern Sie nun die Befehlsfolge folgendermaßen: MOV SI, 0 MOV DI, DX MOV BX, BP ADD BX, DX m1: MOV CL, [BP+DI 1] DEC DI MOV [BX+SI ], CL Listing 4: Abgeänderter Assembler-Code 4
6 INC SI CMP SI, DX JNE m1 Führen Sie nun wiederum die Anweisungen sequenziell schrittweise mit Hilfe der Step- Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie auch hierbei wieder die Veränderungen der Register und der Prozessor-Status-Flags, sowie die Speicherinhalte an den im Programm adressierten Speicherstellen nach jedem Befehl. Welche Unterschiede beobachten Sie im Vergleich zur Abarbeitung der vorhergehenden Befehlsfolge. Was bedeuten diese Veränderungen und wo liegen ihre Ursachen? 4.3 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MUL, ADD und MOV Aufgabenstellung Die nachfolgende Assembler-Routine soll den Zugriff auf ein Element eines zweidimensionalen Byte-Arrays demonstrieren. Dabei wird ein bestimmtes Array-Element in ein Register eingelesen. Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler- Template template.asm: MOV AX, DI MUL BX MOV DI, AX ADD DI, SI MOV CL, [BP+DI ] MOV AL, 0 MOV [BP+DI ], AL Listing 5: Vorgegebener Assembler-Code Die Inhalte der verwendeten Register haben die folgende Bedeutung: BP = Anfangsadresse des zweidimensionalen Arrays CX = Zeilenanzahl DX = Spaltenanzahl DI = Selektierte Zeile SI = Selektierte Spalte CL = Zielregister Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie die Emulation. Führen sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step- Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags, sowie die Speicherinhalte an den im 5
7 Programm adressierten Speicherstellen nach jedem Befehl. Erklären Sie die Bedeutung der einzelnen Befehle im Kontext der Array-Adressierung. 4.4 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle CMP, JMP, JE, JNE, ROL, ROR, SHL, DEC Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: Listing 6: Vorgegebener Assembler-Code m1: CMP CX, 0 ; Beginn von Block1 JNE m2 ROL BP, 1 JMP m3 m2: ROR BP, 1 m3: ; Ende von Block1 m4: CMP AX, 0 ; Beginn von Block2 JE m5 SHL BP, 1 DEC AX JMP m4 m5: ; Ende von Block2 CMP BX, 0 ; Beginn von Block3 JE m7 m6: ROR BP, 1 DEC BX JNZ m6 m7: ; Ende von Block3 m8: CMP DX, 0 ; Beginn von Block4 JNE m9 ROL BP, 1 JMP m11 m9: CMP DX, 1 JNE m10 ROR BP, 1 JMP m11 m10 : CMP DX, 2 JNE m11 SHL BP, 1 6
8 m11 : ; Ende von Block4 Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie die Emulation. Führen Sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step-Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags nach jedem Befehl. Die vier Anweisungsblöcke Block1,..., Block4 realisieren je eine typische Kontrollstruktur der strukturierten Programmierung. Ordnen Sie jedem Block jeweils einen der folgenden Begriffe zu: Schleife mit Eintrittsbedingung Schleife mit Austrittsbedingung bedingte Verzweigung Fallauswahl 4.5 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle ADD, SUB, ADC und SBB. Machen Sie sich außerdem die Bedeutung des Carry- und des Overflow-Flags klar Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: ADD AL, AH SUB BL, BH ADC CL, CH SBB DL, DH Listing 7: Vorgegebener Assembler-Code Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie die Emulation. Führen Sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step-Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags nach jedem Befehl. Achten Sie dabei besonders auf die Veränderungen im Carry- und im Overflow-Flag. Erklären Sie das Verhalten der Flags. Beziehen Sie die Werte der verwendeten Register in Ihre Überlegungen mit ein. Finden Sie eine Möglichkeit, zwei 32-bit-Zahlen mit Hilfe der 16-Bit-Register zu addieren. Dabei seien die oberen 16 Bits der ersten Zahl im Register DX, ihre unteren 16 Bits im Register AX gespeichert. Analog dazu seien die oberen 16 Bits der zweiten Zahl im Register CX, ihre unteren 16 Bits im Register BX gespeichert. Das Ergebnis soll am Ende 7
9 in analoger Weise in den Registern DX (die oberen 16 Bits) und AX (die unteren 16 Bits) stehen. Ignorieren Sie dabei Overflows, achten Sie aber auf die korrekte Behandlung von Carrys. 4.6 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die maschineninterne Darstellung einer (IEEE 754-) Float-Zahl Aufgabenstellung Lesen Sie aus dem Speicher die (IEEE 754-) Float-Zahl, deren Adresse im Register BX spezifiziert ist, mit Hilfe des Memory-Fensters des emu8086 aus. Beachten Sie dabei, wie dieser Datentyp im Speicher abgelegt wird (Bytereihenfolge). Wandeln Sie diese Zahl von ihrer maschinenlesbaren Form "per Hand" in die übliche für Menschen lesbare Darstellung um. 4.7 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MOV, CMP, JB, JBE, SUB Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: Listing 8: Vorgegebener Assembler-Code BLANK EQU 20h ; L e e r z e i c h e n NULL EQU 30h ; N u l l MOV AL, [BP] ; l e s e ASCII Z i f f e r CMP AL, 61h ; Z i f f e r a f? JB L1 ; k e i n e K l e i n b u c h s t a b e n SUB AL, BLANK ; in Grossbuchstaben L1 : SUB AL, NULL ; in Hexzahl wandeln CMP AL, 9 ; Z i f f e r > 9? JBE Ok ; JMP OK SUB AL, 07 ; k o r r i g i e r e Z i f f e r n A..F Ok: ; E x i t Die gegebene Assembler-Routine wandelt eine hexadezimale Ziffer, welche als ASCII- Zeichen im Speicher an der im Register BP gegebenen Adresse steht, in ihren numerischen Wert um und schreibt das Ergebnis der Umwandlung in das Register AL. Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie 8
10 die Emulation. Führen Sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step-Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags nach jedem Befehl. Achten Sie dabei Besonders auf die Belegung des Registers AL. Erweitern Sie nun die Routine so, dass sie einen ganzen ASCII-String, welcher eine Hexadezimalzahl darstellt, in seinen numerischen Wert umwandelt. Der String beginnt an der in BP spezifizierten Speicherstelle. Dabei steht die höchstwertige Hexadezimalziffer an der niedrigsten Speicherstelle. Die Länge des Strings ist im Register SI vorgegeben. Am Ende soll der Wert, den dieser String kodiert, in einem beliebigen Register stehen. Es reicht aus, wenn Ihre Routine Strings mit einer maximalen Länge von vier Zeichen umwandeln kann (Zur Umwandlung längerer Strings benötigt man 32-Bit-Arithmetik!). Hinweis: Überlegen Sie sich zuerst, wie man eine solche Umwandlung "per Hand" vornimmt und versuchen Sie, dieses Vorgehen mit Hilfe einer Schleife zu realisieren. 4.8 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MOV, CMP, JB, JBE, SUB Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: ADD Listing 9: Vorgegebener Assembler-Code AL, BL Die gegebene Routine führt eine Addition zweier BCD-Zahlen, gegeben in AL und BL, durch, macht dabei aber einen gravierenden Fehler. Erläutern Sie das Problem. Korrigieren Sie die Routine so, dass nach deren Abarbeitung in AL das korrekte Ergebnis in BCD-Form steht. 4.9 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MOV, JNZ und INT im Zusammenhang mit dem DOS-Interrupt-Mechanismus und den verwendeten Interrupts Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: 9
11 Listing 10: Vorgegebener Assembler-Code m1: MOV AH, 01h ; Beginn von Block1 INT 16h JZ m1 MOV AH, 00h INT 16h ; Ende von Block1 MOV AH, 01h ; Beginn von Block2 INT 21h ; Ende von Block2 Das Programm demonstriert zwei verschiedene Möglichkeiten zum Einlesen eines Zeichens von der Tastatur. Dabei werden zwei grundlegend unterschiedliche Verfahren verwendet. Erläutern Sie diese Verfahren und heben Sie dabei deren Unterschiede hervor. Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Setzen Sie dazu einen Breakpoint auf Anweisung HLT. Starten Sie die Emulation mit Hilfe der Run- Funktion. Damit der Programmlauf Block1 verlassen kann, müssen Sie auf der emulierten Konsole (ähnlich der DOS-Eingabeaufforderung) ein Zeichen über die Tastatur eingeben. Geben Sie nun ein Zeichen in die emulierte Konsole ein (Das Konsolenfenster muss dazu aktiviert sein) und beobachten Sie dabei die Veränderungen der Register. Nachdem Sie das Zeichen eingegeben haben wird Block1 verlassen und Block2 betreten. Auch hier müssen Sie ein Zeichen eingeben, damit das Programm den Block verlässt. Geben Sie also auch hier wieder ein Zeichen in die emulierte Konsole ein (Das Konsolenfenster muss dazu aktiviert sein) und beobachten Sie dabei die Veränderungen der Register. Danach kommt das Programm bei HLT durch den darauf gesetzten Breakpoint zum Stillstand Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die Syntax und Semantik der Befehle MOV, ADD und INT im Zusammenhang mit dem DOS-Interrupt-Mechanismus und den verwendeten Interrupts Aufgabenstellung Übernehmen Sie folgende Assember-Befehlsfolge in Ihr Assembler-Template template.asm: Listing 11: Vorgegebener Assembler-Code m1: MOV [BX], AL ; Die Grösse des P u f f e r s muss _ ; im e r s t e n Byte des P u f f e r s s t e h e n MOV DX, BX ; Adresse des P u f f e r s _ ; ( i n k l. Grösse,... ) muss in DX s t e h e n MOV AH, 0Ah ; S t r i n g e i n l e s e n und _ ; in P u f f e r s c h r e i b e n 10
12 INT 21h MOV DI, [BX+1] ; h i n t e r das l e t z t e Zeichen des _ ; S t r i n g s muss ein D o l l a r z e i c h e n _ AND DI, 00FFh ; g e s c h r i e b e n werden, damit DOS b e i _ ; d e r Ausgabe das Ende _ MOV BP, BX ; des S t r i n g s e r k e n n t MOV [BP+DI +2], 24h MOV DX, BX ADD DX, 2 MOV AH, 09h ; S t r i n g von S t e l l e DX auf _ ; Konsole ausgeben INT 21h Die Routine demonstriert, wie man einen String von der Konsole einliest und diesen anschließend wieder auf der Konsole ausgibt. Die beiden Register BX und AL enthalten vor dem Programmstart bereits vorgegebene Werte: BX = Zieladresse des einzulesenden Strings AL = Puffergröße Um die Dos-Interrupt-Routine 21h/0Ah zum Einlesen einer Zeichenkette von der Tastatur verwenden zu können, muss man ihr zuvor mitteilen, welchen Speicherbereich sie zur Ablage des eingelesenen Strings verwenden soll. Zur Spezifizierung dieses sogenannten Puffers muss man seine Anfangsadresse und seine Größe angeben. Um der Routine den Ort des Puffers mitzuteilen, wird seine Adresse vor dem Interrupt-Aufruf in das Register DX geschrieben. Die Größe des Puffers wird der Routine etwas "indirekter" mitgeteilt. Sie muss in das erste Byte des Puffers geschrieben werden. Nach dem Interrupt-Aufruf steht im ersten Byte des Puffers immernoch die Größe des Puffers. In das zweite Byte des Puffers hat die Routine die Länge der eingelesenen Zeichenkette geschrieben. Ab dem dritten Byte hat die Routine die eingelesene Zeichenkette abgelegt. Der Puffer hat also am Ende folgenden Inhalt: <1 Byte Puffergröße N><1 Byte Stringlänge M> <Zeichen1><Zeichen2>... <ZeichenM> <Leeres Byte1><Leeres Byte2>... <Leeres Byte(N-M-2)> Emulieren Sie den Programmlauf mit dem Assembler-Emulator emu8086. Starten Sie die Emulation. Führen Sie nun die Anweisungen sequenziell schrittweise mit Hilfe der Step-Funktion bis zum Erreichen der Anweisung HLT aus. Beobachten Sie dabei die Veränderungen der Register und der Prozessor-Status-Flags nach jedem Befehl. Leiten Sie nun aus der gegebenen Routine ein Programm ab, welches zwei Strings von der Konsole einliest, diese direkt aneinander hängt und den entstandenen String wieder auf der Konsole ausgibt. 11
13 4.11 Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die nötigen Speicherzugriffsmechanismen und DOS-Interrupts mit deren Hilfe Sie die Aufgabenstellung bewältigen können Aufgabenstellung Schreiben Sie eine Assembler-Routine, die einen Text von der Tastatur einliest, anschließend alle Zeichen in Großbuchstaben wandelt und den resultierenden Text wieder ausgibt Aufgabe Vorbereitung Informieren Sie sich zur Vorbereitung über die verschiedenen Speicherzugriffsmechanismen Aufgabenstellung Schreiben Sie ein Programm, welches einen Ringtausch von drei Speicherinhalten (jeweils zwei Bytes) vornimmt. Die Speicheradressen der drei zu tauschenden Speicherzellen stehen ebenfalls im Speicher, aufeinander folgend in Form eines Arrays(drei Einträge von je zwei Bytes). Die Anfangsadresse dieser Tabelle steht im Register BP. 12
14 5 Anhang A - Emu8086 Kurzhandbuch 5.1 Inhalt dieses Dokuments Dieses Dokument dient als kurze Einführung in die Bedienungsweise des Programmes Emu Editorfunktionen Startet man das Programm emu8086, so erscheint ein Fenster mit vier Buttons (siehe Abb. 1). Im Rahmen des Praktikums sind nur die beiden Buttons "new" und "recent files" von Abbildung 1: Dialog nach dem Start des Programms emu8086 Interesse. Mit dem Button "new" erzeugt man eine neue, leere Quellcodedatei. Mit dem Button "recent files" öffnet man bereits vorhandene Quellcodedateien. Da im Rahmen des Praktikums eigene Programme immer ausgehend von dem vorgegebenen Template erstellt werden sollten, muss man zu Beginn das Template mit Hilfe des Buttons "recent files" öffnen. Klickt man auf diesen Button, so öffnet sich eine Pull-Down-Liste, in der sich die zuletzt bearbeiteten Dateien befinden (wenn man das Programm zum ersten mal nach der Neuinstallation startet, ist die Liste natürlich leer). Außerdem befindet sich am Ende der Liste der Eintrag "other files..." (siehe Abb. 2). Wählt man diesen Eintrag Abbildung 2: Ein Klick auf den markierten Eintrag öffnet einen Dialog, in dem die zu bearbeitende Datei ausgewählt werden kann (per Mausklick) aus, so öffnet sich ein Dialogfenster, in dem man die zu bearbeitende 13
15 Datei auswählen kann. Wenn Sie mit der Bearbeitung einer Aufgabe beginnen, sollten Sie mit Hilfe dieses Dialoges das vorgegebene Template suchen und öffnen. Nachdem Sie das Template geöffnet haben, befinden Sie sich im Editormodus (siehe Abb. 3). In diesem Abbildung 3: Das vorgebene Template im Editormodus Modus können Sie den Quellcode des Templates bearbeiten und so Ihren eigenen Quellcode einfügen. Mit Hilfe des "save"-symbols kann man die Datei unter ihrem aktuellen Namen speichern, durch einen Klick auf den kleinen Pfeil rechts neben dem "save"-symbol kann man die Datei unter einem anderen Namen speichern. Um das leere Template, welches Sie auch noch als Vorlage für weitere Programme benötigen, nicht zu überschreiben, sollten Sie Ihren Quellcode unter einem anderen Dateinamen speichern. 5.3 Programm emulieren Nachdem Sie Ihren Quellcode fertig gestellt (oder zumindest der Meinung sind, er sei fertig gestellt) und gespeichert haben, können Sie die Emulatorfunktionen des Programmes dazu nutzen, Ihr Programm zu emulieren. Durch einen Klick auf das "emulate"-symbol, führt das Programm einen Syntaxcheck durch und startet, insofern der Syntaxcheck erfolgreich war, den Emulator. Schlägt der Syntaxcheck fehl, so erscheint ein Dialog, dem Sie entnehmen können, welche Stellen Ihres Quellcodes Fehler enthalten (siehe Abb. 4). Die Zahl innerhalb der Klammern gibt die fehlerhafte Quellcodezeile an. Danach folgt eine kurze Beschreibung des Fehlers. Nachdem Sie alle Fehler beseitigt haben, und wiederum das "emulate"-symbol betätigen, beginnt der Emulator mit der Emulation Ihres Programmes. Es erscheinen nun zwei neue Fenster: zum einen das Hauptfenster des Emulators (siehe Abb. 5), erkennbar am Fenstertitel "emulator:...", zum anderen ein Fenster, welches Ihren Quellcode anzeigt, erkennbar am Fenstertitel "original source code". Im Hauptfenster kann man den Emulationsvorgang steuern. In dem anderen Fenster wird parallel zur Emulation der gerade aktive Befehl markiert. Am linken Rand des Hauptfensters sind die aktuellen Inhalte der Register dargestellt. Diese ändern sich entsprechend des zuletzt ausgeführten Befehls. Im mittleren Teil des Fensters befindet sich eine Tabelle. Diese Tabelle illustriert den Inhalt des Speichers. In der linken Spalte befindet sich eine 14
16 Abbildung 4: Meldung bei Fehlerhafter Syntax Abbildung 5: Das Hauptfenster des Emulators 15
17 fünfstellige hexadezimale Zahl gefolgt von einem Doppelpunkt, welche die Speicheradresse (nicht in der Schreibweise "segment:offset", sondern als physische Speicheradresse) der entsprechenden Zeile darstellt. Nach dem Doppelpunkt folgt der Inhalt der Speicherzelle, welche durch die entsprechende Adresse in der ersten Spalte adressiert wird, als zweistellige hexadezimale Zahl. In der dritten und vierten Spalte wird ebenfalls der Inhalt der Speicherzelle dargestellt, hier aber in dezimaler Schreibweise (in der dritten Spalte) bzw. in Form von ASCII-Zeichen (in der vierten Spalte). Am rechten Rand des Hauptfensters befindet sich eine weitere Darstellung des Speichers. Hier werden alle Speicherinhalte als Maschinenbefehle interpretiert. Dabei ist zu beachten, dass es sich nicht tatsächlich auch um Maschinenbefehle handeln muss. Es wird hier einfach "blind" eine Reihe aufeinanderfolgender Bytes als Befehl interpretiert (auch, wenn Sie vom Programmierer eigentlich als Daten interpretiert werden würden), so wie es auch die CPU eines realen Rechners tun würde, falls der Befehlszeiger auf diese Speicherstelle zeigen würde. Über den beiden Tabellen befindet sich jeweils eine Box, in der jeweils die Anfangsadresse des gerade betrachteten Speicherbereichs steht. Es gibt zwei Modi, um nun das Programm ablaufen zu lassen. Mit Hilfe des Buttons "single step" kann man das Programm im Einzelschrittmodus ausführen. Dabei wird bei Betätigung des Buttons immer der sowohl in den beiden Tabellen des Hauptfensters, als auch im "original source code"-fenster markierte Befehl ausgeführt. Nach dessen Ausführung wird der Programmlauf gestoppt und der nächste Befehl markiert. Im zweiten Modus wird das Programm vom Anfang bis zum Programmende durchlaufen, so wie es auch auf einer realen CPU ablaufen würde. Dieser Modus wird mit Hilfe des Buttons "run" gestartet. Rechts neben dem "run"- Button befindet sich ein Slider, mit dem man die Geschwindigkeit des Programmlaufes einstellen kann. Der nächste Befehl wird immer mit der dort eingestellten Verzögerung ausgeführt. Auch im "run"-modus wird der aktuell ausgeführte Befehl im Hauptfenster und im "original source code"-fenster markiert (siehe Abb. 6). Um im "run"-modus den Abbildung 6: "original source code"-fenster mit aktuellem, markiertem Befehl Programmlauf an einer bestimmten Stelle des Programmes automatisch stoppen zu lassen, kann man einen sogenannten Breakpoint setzen. Im Menü des Haupfensters findet man unter "debug"->"set breakpoint" die entsprechende Funktion. Um den Programm- 16
18 lauf nun vor der Ausführung eines bestimmten Befehls zu stoppen, markiert man den Befehl im Hauptfenster oder im "original source code"-fenster durch einen Klick mit der linken Maustaste auf den Befehl und wählt dann "debug"->"set breakpoint" im Menü des Hauptfensters aus. Nachdem man den Breakpoint wie beschrieben gesetzt hat, startet man den Programmlauf mit Hilfe des "run"-buttons. Das Programm wird nun emuliert und hält vor der Ausführung des entsprechenden Befehls an. Mit Hilfe des "single step"- Buttons kann man nun den nun markierten Befehl ausführen. Betätigt man wieder den "run"-button, so wird die Emulation fortgeführt. Falls man den Breakpoint innerhalb einer Schleife setzt, so wird der Programmlauf jedesmal, wenn er den entsprechenden Befehl passiert, angehalten. Um das Programmverhalten während der Emulation genauer untersuchen zu können, stellt der Emulator weitere Werkzeuge zu Verfügung. Die wichtigsten sind das Memory-Fenster, des Flag-Fenster und das Stack-Fenster. Diese Fenster lassen sich über das "view"-menü des Hauptfensters öffnen. Das Memory-Fenster (siehe Abb. 7) kann mit Hilfe des Eintrages "view"->"memory" geöffnet werden. Dieses Fenster zeigt einen Ausschnitt des dem Programm zur Verfügung stehenden Hauptspeichers. Hier kön- Abbildung 7: Das Memory-Fenster nen die Auswirkungen von Speicheroperationen während des Programmlaufes beobachtet werden. Im oberen Teil des Fensters befindet sich eine Box, in der die Anfangsadresse des anzuzeigenden Speicherbereiches steht. Trägt man hier eine andere Adresse ein, so wird der entsprechende Speicherbereich angezeigt. Werden nun während des Programmlaufes Speicheroperationen auf dem aktuell angezeigten Speicherbereich ausgeführt, so kann man deren Auswirkungen hier beobachten. Der Speicherbereich wird in Form einer Tabelle angezeigt. Die erste Zahl in jeder Spalte gibt dabei jeweils die Anfangsadresse der in der Zeile dargestellten Byte-Folge an. Rechts davon folgen 16 Bytes, von denen jedes jeweils als zweistellige hexadezimale Zahl codiert ist. Dabei hat das erste Byte die am Anfang der Zeile angegebene Adresse, das zweite Byte die am Zeilenanfang angegebene Adresse plus eins, das dritte Byte plus zwei,..., das letzte Byte plus 15. Am rechten Rand der Tabelle wird der Speicherinhalt der entsprechenden Zeile in ASCII-codierter Form dargestellt. Mit Hilfe des Stack-Fensters (siehe Abb. 8), welches sich über den Menüeintrag "view"->"stack" öffnen lässt, kann man den als Stack verwendeten Speicherbereich inspizieren. Natürlich ist dies auch mit dem Memory-Fenster möglich (siehe Abb. 9), da es sich ja auch nur um einen Speicherbereich handelt, allerdings stellt das Stack-Fenster eine "stack-gerechtere" Ansicht zur Verfügung. Nachdem die erste Stack-Operation (üblicherweise der Befehl PUSH, da der Stack zu Beginn noch leer ist) ausgeführt wurde, springt der Pfeil im rechten Teil des Stack-Fensters auf den "obersten" Stackeintrag (also der Eintrag, der als letztes auf den Stapel gelegt wurde). Der Pfeil wird bei einem PUSH-Befehl um eine Zeile nach unten versetzt, bei einem POP-Befehl um eine Zeile 17
19 Abbildung 8: Das Stack-Fenster Abbildung 9: Der Speicherbereich des Stacks im Memory-Fenster betrachtet nach oben (Man beachte hier, wie der Stack im Speicherbereich organisiert ist. Er beginnt im hier gezeigten Beispiel am Ende des Segments, welches die Segmentadresse 0100 trägt. Mit einem PUSH-Befehl wird der Wert auf den Stack gelegt und der Stack-Zeiger um eins verringert.). Mit Hilfe des Flags-Fensters (siehe Abb. 10) kann man den aktuellen Zustand der Prozessor-Status-Flags nach jedem Befehl inspizieren. Nach der Ausführung eines Befehls werden die Inhalte der einzelnen Flags hier angezeigt. Die Flags, die sich mit der Ausführung des Befehls geändert haben, werden rot markiert, alle anderen blau. Neben den hier aufgezählten Fenstern, kann man im "view"-menü noch weitere finden, die aber weniger häufig benötigt werden. 5.4 Typischer Ablauf der Emulation eines Programmes Im Folgenden soll exemplarisch der typische Ablauf einer Emulation dargestellt werden. Typischerweise beginnt man mit der Erstellung des Quellcodes im Editor-Fenster. Nachdem man den Quellcode fertig gestellt und alle Fehler beseitigt hat, startet man die Emulation mit Hilfe des "emulate"-buttons. Im Emulator öffnet man nun mindestens das Memory-Fenster, falls nötig auch weitere, wie das Stack-Fenster und das Flags-Fenster. Will man nun die Wirkung eines bestimmten Teils des Quellcodes genauer untersuchen, setzt man den Breakpoint auf den Anfang des zu untersuchenden Bereiches und startet den Programmlauf im "run"-modus. Nachdem der Breakpoint erreicht wurde, führt man den zu untersuchenden Code-Bereich im Einzelschrittmodus aus und beobachtet dabei den Zustand des Programmes mit Hilfe der zuvor geöffneten Fenster (Memory-Fenster, 18
20 Abbildung 10: Das Flag-Fenster Stack-Fenster,...). Abbildung 11: Die typische Arbeitsumgebung während der Emulation 19
21 6 Anhang B - Erklärung des Inhaltes der Datei Template.asm 6.1 Inhalt dieses Dokuments Dieses Dokument beschreibt den Inhalt der Datei Template.asm. Diese Datei dient dem Praktikanten als Vorlage für seine eigenen Programmtexte. 6.2 Quellcode 01: name "Template" 02: 03: include "data.inc" 04: 05: org 0100H 06: 07:.MODEL TINY ;Das Speichermodell 08: 09: 10:.DATA ;Beginndes Datensegments 11: 12: #hier werden eigene Daten eingefügt 13: 14:.CODE 15: start: 16: 17: #hier wird eigener Quellcode eingefügt 18: 19: ende: HLT 6.3 Erläuterung Zeile 01: Hier wird der Name der Datei angegeben, welche entstehen würde, wenn man den Quellcode compilieren würde. Im Rahmen des Praktikums werden die Quelldateien nicht compiliert, sondern lediglich emuliert. Daher ist diese Zeile unwichtig und kann weg gelassen werden. Zeile 03: Hier wird der Quellcode der Datei "data.inc" eingebunden. Diese Direktive bewirkt, dass der Quelltext der Datei "data.inc" vor dem compilieren bzw. emulieren direkt an diese Stelle kopiert wird. Der Inhalt der Datei "data.inc" realisiert eine Speichervorbelegung. Zeile 05: Hier teilt man dem Compiler bzw. Emulator mit, dass er den Maschinencode an die Adresse 0100H im Adressraum des Programmes schreiben soll. Zeile 07: Hier teilt man dem Compiler mit, welches Speichermodell er verwenden soll. Das Speichermodell legt fest, in welcher Weise das Programm zur Ausführungszeit in den 20
22 Speicher geladen wird. Wählt man das Speichermodell TINY, so werden Daten und Code in ein einziges Segment geladen, welches auf eine Größe von 64KB begrenzt ist. Der Compiler würde in diesem Fall eine COM-Datei erzeugen. Ein anderes Speichermodell ist z. B. SMALL. Hierbei werden Daten und Code jeweils in ein eigenes Segment der Größe 64KB geladen und der Compiler würde eine EXE-Datei erzeugen. Aufgrund diverser Beschränkungen, die mit der Einbindung der Include-Datei zu Speichervorbelegung einhergehen, kann im Rahmen des Praktikums nur das Speichermodell tiny verwendet werden. Zeile 10:.DATA definiert den Anfang des Datensegments. Nach.Data werden z.b. Daten, Variablen und Puffer definiert. Zeile 14:.CODE definiert den Anfang des Codesegments. Nach.CODE folgen die Befehle. Zeile 19: HLT teilt dem Compiler mit, dass hier das Programm zu Ende ist. Während der Emulation wird der Programmlauf hier beendet. 6.4 Ein einfaches Programm Das folgende Programm wurde unter Verwendung des Templates erstellt. Es demonstriert eine einfache Konsolenaussgabe mit Hilfe von DOS-Interrupts. 01: name "Template" 02: 03: include "data.inc" 04: 05: org 0100H 06: 07:.MODEL TINY ;Das Speichermodell 08: 09: 10:.DATA ;Beginn des Datensegments 11: 12: Meld DB "Hallo Welt!$" ;Die Meldung 13: 14:.CODE 15: start:mov ;Adresse des Datensegments nach ax 16: mov ds,ax ;Datensegmentadr. in Segmentregister 17: mov dx,offset Meld ;Die Offsetadresse von Meldung nach dx 18: mov ah,09h ;Den Wert neun nach ah schieben 19: int 21h ;Interrupt 21h Funktion 09h aufrufen 20: ;= Write String. Geschrieben wird bis zum $ 21: mov ah,4ch ;DOS Funktion Programm beenden 22: int 21h ;Programm beenden 19: ende: HLT 21
23 6.5 Erläuterung Das Grundgerüst der Quellcodedatei wurde bereits weiter oben erläutert. Im Folgenden wird der Inhalt des Beispielprogramms näher erläutert. Zeile 12: Hier wird die Variable Meld angelegt. Über diese Variable kann später ein Speicherbereich angesprochen werden, der an dieser Stelle mit einer Zeichenkette vorbelegt wird. Dafür muss zuerst der Variablenname angegeben werden, dann folgt der Datentyp, in diesem Fall DB (Das B in DB steht für Byte. Es zeigt an, dass es sich bei dem Speicherbereich um eine Sequenz von Bytes handelt. Eine Alternative wäre DW, was den Speicherbereich zu einer Sequenz von Words macht hier nicht von Belang). Zuletzt folgt die Belegung des Speicherbereichs. Soll der Speicher mit einer Zeichenkette belegt werden, so muss diese in Anführungszeichen angegeben werden. Zeile 15: Hier wird die Anfangsadresse des für die Variable Meld reservierten Speicherbereiches in das Register DX geladen um den Text in Meld mit Hilfe der folgenden Interruptroutine ausgeben zu können. Mit Hilfe des Vorsatzes OFFSET kann man die Anfangsadresse einer beliebigen Variablen abrufen. Zeile 16/17: Hier wird die Dos-Interruptroutine zur Ausgabe eines Textes auf der Konsole aufgerufen um den in Meld enthaltenen Text auszugeben. Zeile 19/20: Hier wird eine Dos-Interruptroutine zum Beenden des Programmes aufgerufen. Damit wird das Programm explizit durch das simulierte Betriebssystem des emu8086- Emulators beendet. Diesen Aufruf kann man auch weg lassen, da das Programm beim Erreichen des HLT-Befehls implizit beendet wird. 22
Assembler DOS (Beta 1) Copyright 2000 Thomas Peschko. Assembler II - DOS. ASSEMBLER Arbeiten mit Dateien und Daten.
Assembler II - DOS ASSEMBLER Arbeiten mit Dateien und Daten peschko@aol.com 1 Wer nun den Eindruck hat, dass unsere Programme hauptsächlich nur Unterprogramme vor ihren Karren spannen und sich darauf beschränken
Der MS-DOS Standardmonitor und Debugger DEBUG
Einfache Assemblerprogrammierung mit DOS-DEBUG 1/7 Auf Personalcomputern kann in der Regel leicht eine einfache Umgebung zur Software-Entwicklung für die Intel Rechnerfamilie 80x86 eingerichtet werden.
GI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
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
Visual Basic Editor CATIA V5
Visual Basic Editor CATIA V5 Daniel Frauenrath Allgemein Der Visual Basic Editor ist fester Bestandteil von CATIA V5. Im Gegensatz zum internen Editor für CATScript und CATVbs hat der Visual Basic Editor
Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3
Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5
Word starten. Word Word 2010 starten. Schritt 1
Schritt 1 Word 2010 starten. 2) Klicke danach auf Microsoft Office Word 2010. Sollte Word nicht in dieser Ansicht aufscheinen, dann gehe zu Punkt 3 weiter. 1) Führe den Mauszeiger auf die Schaltfläche
Handbuch zum VivaWeb-Serienbrief-Programm
Handbuch zum VivaWeb-Serienbrief-Programm In 10 Schritten zum Serienbrief Das folgende Handbuch erläutert Ihnen die Nutzungsmöglichkeiten des ARV Serienbrief-Programms in all seinen Einzelheiten. Dieses
Assembler - Adressierungsarten
Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01
zur Verfügung gestellt durch das OpenOffice.org Dokumentations-Projekt
Serienbriefe Wie Sie einen Serienbrief mittels Calc und Writer erstellen zur Verfügung gestellt durch das OpenOffice.org Dokumentations-Projekt Inhaltsverzeichnis 1. Erzeugen einer Quelldatei 2. Erzeugung
Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi
Grundlagen der Programmierung 1 WS 2012/2013 Prof. Dr. Stefan Böttcher Aufgabenblatt 1: - Präsenzübung für die Übungen Do. 11.10.- Mi. 17.10.2012 Ausgabe Mi. 10.10.2012 1.1. Zahlen vertauschen mit wenigen
Der Serienbrief bzw. Seriendruck
Der Serienbrief bzw. Seriendruck Sie lernen einen Serienbrief zu erstellen. In Word 2010 wird der Serienbrief unter der allgemeinen Bezeichnung Seriendruck geführt. Er besteht aus einem Hauptdokument (dem
Stapelverarbeitung mit Adobe Acrobat Professional. Leibniz Universität IT Services Anja Aue
Stapelverarbeitung mit Adobe Acrobat Professional Leibniz Universität IT Services Anja Aue Stapelverarbeitung Befehlsfolgen werden automatisiert abgearbeitet. Eine Reihe von Aktionen werden manuell gestartet
Strings. Daten aus Dateien einlesen und in Dateien speichern.
Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend
Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme
Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,
Informatik für Elektrotechnik und Informationstechnik
Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,
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
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
1 Dokument hochladen Dokument verschieben Neuen Ordner einfügen Ordner verschieben Dokumente und Ordner löschen...
Die Dokumentenverwaltung von basis.kirchenweb.ch (Version 16.07.2012 / bn) Inhalt 1 Dokument hochladen... 2 2 Dokument verschieben... 2 3 Neuen Ordner einfügen... 3 4 Ordner verschieben... 3 5 Dokumente
Kurze Einführung in die C++-Entwicklungsumgebung Visual Studio 2005
Kurze Einführung in die C++-Entwicklungsumgebung Visual Studio 2005 Visual Studio 2005 downloaden und installieren Visual Studio 2005 (VS) ist eine Entwicklungsumgebung von Microsoft für mehrere Programmiersprachen,
Turbo Assembler TASM. Man findet den TASM auf meiner Homepage in folgendem Verzeichnis. Informationstechnik speziell Systemsoftware
Turbo Assembler TASM Man findet den TASM auf meiner Homepage in folgendem Verzeichnis Informationstechnik speziell Systemsoftware 1 Disk1, Disk2 und Disk3 alle in ein Verzeichnis kopieren. Dann install.exe
Übersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
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
Praktikum Mikrocomputertechnik. Anleitung
Praktikum Mikrocomputertechnik Anleitung Im Praktikum wird der Mikrocontroller 68332 von Motorola verwendet. Dieser Mikrocontroller besteht aus einer 32-Bit CPU und integrierten Peripheriebausteinen (ser.
Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016
Visualiserung des Prinzips von virtuellem Speicher
Visualiserung des Prinzips von virtuellem Speicher Benutzerhandbuch Inhaltsverzeichnis Installationsanweisung 3 Systemanforderung 3 Das Programm 3 Das Programm starten 3 Das Hauptfenster der segmentorientierten
Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:
1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address
Grundlagen der Programmentwicklung
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie
BASIC-Tiger Starter Kit. Tel: +49 (241) Fax: +49 (241)
BASIC-Tiger Starter Kit Tel: +49 (241) 918 900 Fax: +49 (241) 918 9044 Email: info@wilke.de 1 2 Wilke Technology GmbH Krefelder Str. 147 52070 Aachen Germany BASIC-Tiger Starter Kit Willkommen beim BASIC-Tiger
DAS EINSTEIGERSEMINAR
DAS EINSTEIGERSEMINAR Microsoft Office Excel 2010 Gudrun Rehn-Göstenmeier LERNEN ÜBEN ANWENDEN Teil I: Lernen L1 Dateiorganisation Bevor wir uns mit den Excel-spezifischen Befehlen und Funktionen befassen
Die Baugruppen der VIPA GmbH sind direkt im Hardwarekonfigurator verfügbar und können so vereinfacht konfiguriert werden.
1 Einleitung. WinSPS-S7 V5 ist eine moderne Programmiersoftware für S7-Steuerungen. Unterstützt werden S7- Steuerungen von SIEMENS (S7-300, S7-400) und S7-Steuerung der Firma VIPA GmbH (System100V, System200V,
Kopf-/Fußzeilen und Seitenzahlen
Dokumentvorlagen Dokumente Formatvorlagen Format Zeichen Format Absatz Datei Neu... Datei öffnen Datei schließen Beenden Suchen Suchen & Ersetzen Verknüpfungen Optionen Einfügen Inhalte einfügen Format
1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
Einführung zum MS Visual Studio
0 Visual Studio Verzeichnispfade einstellen Stellen Sie nach dem Start von Visual Studio zunächst Ihr Home-Laufwerk, d.h. den Pfad für Ihre Projektverzeichnisse und Dateien ein. Beenden Sie Visual Studio
DLR SchoolLab Lektion 1 Erste Schritte
1 Navigation Die Entwicklungsoberfläche lässt sich durch sechs Buttons am unteren Bildschirmrand bedienen. Alternativ kann man auch über die Tastatur navigieren. Hierfür gibt es folgdende Abkürzungen:
Assembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
Wie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
FAQ Kommunikation über PROFIBUS
FAQ Kommunikation über PROFIBUS S7-Kommunikation über PROFIBUS FAQ Inhaltsverzeichnis Inhaltsverzeichnis... 2 Frage... 2 Wie projektieren Sie eine S7-Verbindung für den SIMATIC NET OPC- Server über PROFIBUS
2017/01/23 15:50 1/5 Bedienung
2017/01/23 15:50 1/5 Bedienung Bedienung (J.Müller, Hilfe zu JTCEMU) Das originale 2K-System Das 2 KByte große Betriebssystem bietet die wichtigsten Funktionen zur Eingabe und Verwaltung von BASIC-Programmen.
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2
Assembler - Einführung 2. Teil
Assembler Einführung 2. Teil (Beta 2) Assembler Einführung 2. Teil Assembler Tools und Umgebung 1 Assembler Einführung 2. Teil (Beta 2) 1. Programmaufbau Wie im ersten Teil schon erwähnt wird ein Assemblerprogramm
Hierfür sind mit dem Content Management System (CMS) Joomla in Verbindung mit SIGE Pro Inhalte angelegt worden, die genau diesen Zweck erfüllen.
Tutorial / Anleitung Fotogalerie SIGE Pro v3.1.0 mit Joomla CMS 3.5.1 Klaus Große-Erwig Stand: 05/2016 Mit der Fotogalerie SIGE Pro ist ein wahlfreier Zugriff auf große Bestände an Bildmaterial möglich,
Ausbildungsziel: Erstellung eines Briefes mit Hilfe von Vorlagen
Ausbildungsziel: Erstellung eines Briefes mit Hilfe von Vorlagen 1. Grundlagen (Inhalt Menü) Einer der grundlegendsten Anwendungen des Computers ist die als Schreibmaschine! Im Gegensatz zur Schreibmaschine
Ü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
Newssystem für den eigenen Lehrstuhl einrichten
Newssystem für den eigenen Lehrstuhl einrichten Zunächst muss unterhalb des Lehrstuhlordners (im Beispiel Schulpädagogik) ein Neuer Ordner config angelegt werden: Der Dateiname des neuen Ordners sollte
Benutzerhandbuch. ce - Inspector
ce - Inspector Stand: ce -Inspector 1.0 rel 21 17.01.2007 Erstellt durch Dipl.-Ing. (FH) Helmut Eß Am Hafen 22.. Telefon (0531)310390. Fax (0531)313074. E-Mail: info@was-bs.de. http://www.was-bs.de Seite:
Beschreibung für Import der Protokolldaten nach Microsoft Excel
Beschreibung für Import der Protokolldaten nach Microsoft Excel Revision 1.0 1. Allgemeines Für die DerbyControl Messanlage gibt es Protokollierungsfunktion der Messdaten. Diese Messdaten werden im Programmverzeichnis
10. Die Adressierungsarten des MSP 430
10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung
Novell. GroupWise 2014 effizient einsetzen. Peter Wies. 1. Ausgabe, Juni 2014
Peter Wies 1. Ausgabe, Juni 2014 Novell GroupWise 2014 effizient einsetzen GW2014 1 Novell GroupWise 2014 effizient einsetzen Menüleiste Navigationsleiste Symbolleisten Kopfleiste Favoritenliste Fensterbereich
Übungspaket 12 Der Datentyp char
Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,
Grundkurs Teil 2. Senioren-Computerclub-Dulach Bienleinstorstr. 22 Dienstags von 10:00 bis 12:00 Uhr G.B.
Grundkurs 9.10.2006 Teil 2 Senioren-Computerclub-Dulach Bienleinstorstr. 22 Dienstags von 10:00 bis 12:00 Uhr DAS SCHREIBMASCHINENFELD Das Schreibmaschinenfeld besteht aus Tasten mit numerischen, alphanumerischen
Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.
Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis
Serienbrief erstellen
Um in Word 2010 einen Serienbrief zu erstellen, muss man den Seriendruck-Assistenten aufrufen. Der Seriendruck-Assistent führt dich in sechs Schritten durch diese Thematik. Dabei enthält jeder Schritt
32.4 Anpassen von Menüs und Symbolleisten 795i
32.4 Anpassen von Menüs und Symbolleisten 795i Fortsetzung der Seiten in der 8. Auflage 32.4 Anpassen von Menüs und Symbolleisten 32.4.1 Anpassen von Menüs Die Menüs können um folgende Typen von Optionen
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
Grundlagen der Informatik Vorlesungsskript
Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1
Eine Kommando-Oberfläche für.net
Institut für Systemsoftware O.Univ.-Prof. Dr. Hanspeter Mössenböck Eine Kommando-Oberfläche für.net In.NET (wie auch in vielen anderen Systemen) haben Programme nur einen einzigen Eintrittspunkt (ihre
Algorithmen und ihre Programmierung
Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines
Hinweise zum Programm Überprüfung des Betriebszustandes von Kläranlagen. Bitte prüfen Sie regelmäßig den aktuellen Stand der Software im Internet!
Hinweise zum Programm Überprüfung des Betriebszustandes von Kläranlagen Bitte prüfen Sie regelmäßig den aktuellen Stand der Software im Internet! Vor Programmstart muss die Makrosicherheit richtig eingestellt
Variablen und Datentypen
Programmieren mit Python Modul 1 Variablen und Datentypen Selbstständiger Teil Inhaltsverzeichnis 1 Überblick 3 2 Teil A: Geldautomat 3 2.1 Einführung.................................. 3 2.2 Aufgabenstellung...............................
Shooter. Weitere Anleitungen und Hilfen zur Bearbeitung im. Programm
Shooter Weitere Anleitungen und Hilfen zur Bearbeitung im Programm Manfred Alten 1 Anwendungen am Wettkampftag Nach dem Start des Shooter > Überzeugen Sie sich, dass der richtige Bereich (die richtige
FlowFact Alle Versionen
Training FlowFact Alle Versionen Stand: 29.09.2005 Brief schreiben, ablegen, ändern Die FlowFact Word-Einbindung macht es möglich, direkt von FlowFact heraus Dokumente zu erzeugen, die automatisch über
Innovator 11 excellence. Anbindung an Visual Studio. Einführung, Installation und Konfiguration. Connect. Roland Patka.
Innovator 11 excellence Anbindung an Visual Studio Einführung, Installation und Konfiguration Roland Patka Connect www.mid.de Inhaltsverzeichnis Einführung... 1 Innovator Add-in im Visual Studio registrieren...
1. Keil starten. Sollten Sie keinen leeren Bildschirm haben, löschen Sie einfach die
1 Einführung Keil uvision Bevor Sie Keil uvision starten, erstellen Sie sich einen Ordner im Verzeichnis C:/Keil/ wo Sie Ihre Projekte später ablegen. In diesem Ordner kopieren Sie die Datei 0_template.a51.
Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle
Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle Version 1.3.11 vom 22.11.2016 Haftungsausschluss Die Firma PA-Konzepte GbR übernimmt keinerlei Support, Garantie und keine Verantwortung
TYPO3 Redaktoren-Handbuch
TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste
IHK-Reutlingen SERIENDRUCK MIT WORD 2003. Y. u. J. THOMALLA, Horb
IHK-Reutlingen SERIENDRUCK MIT WORD 2003 Y. u. J. THOMALLA, Horb INHALT 1 GRUNDLAGEN...1 1.1 GRUNDAUFBAU VON SERIENBRIEFEN...1 1.2 SERIENDRUCK IM ÜBERBLICK...1 1.3 EINSTELLUNGEN ZUM SERIENDRUCK...2 2 DATENQUELLEN
Eclipse Tutorial.doc
Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik Eclipse Tutorial 2005, HTI Burgdorf R. Weber Dateiname: Eclipse
Klausur zur Mikroprozessortechnik
Prof. Dr. K. Wüst WS 2001 FH Gießen Friedberg, FB MNI Studiengang Informatik Klausur zur Mikroprozessortechnik Nachname: Vorname: Matrikelnummer: 7.3.2001 Punkteverteilung Aufgabe Punkte erreicht 1 3 2
Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
Kurzanleitung. Zitiertil-Creator. Dokumentvorlagen Dokumente Formatvorlagen Format Zeichen Format Absatz
Dokumentvorlagen Dokumente Formatvorlagen Format Zeichen Format Absatz Datei Neu... Datei öffnen Datei schließen Beenden Suchen Suchen & Ersetzen Verknüpfungen Optionen Einfügen Inhalte einfügen Format
CPK-Terminal Bedienungsanleitung
CPK-Terminal Bedienungsanleitung 1. Software Installation Führen Sie die Setup -Datei aus, die sich auf der DYNTEST-CD befindet. Wählen Sie Ihre Sprache und drücken dann den OK -Button, woraufhin die Installationsvorbereitung
Frilo.Document.Designer
Erstellt am 19. Februar 2011 Letzte Änderung am 10. Juni 2011 Version 4.2011.1.2 Seite 1 von 8 Inhalt 1 Erste Schritte...4 1.1 Arbeiten in der Verwaltung FCC und Erstellen eines Dokumentes...4 1.2 Erstellen
Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1
Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte mit Greenfoot 1 Starten Sie Greenfoot. (Wenn Sie Greenfoot das erste Mal öffnen, erscheint ein Dialogfenster,
Kurzanleitung zur Verwendung der Java-IDE NetBeans (1)
FG TECHNISCHE INFORMATIK U JV 055 01 TH 01 Kurzanleitung zur Verwendung der Java-IDE NetBeans (1) Erzeugung eines neuen Projekts Start der NetBeans-IDE Menü "Datei" Auswahl "Neues Projekt" (CTRL-Shift-N)
6. Zeiger Allgemeines Definition eines Zeigers
6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.
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
Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.
Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Wir wollen uns heute dem Thema Variablen widmen und uns damit beschäftigen, wie sich
Brainfuck Interpreter für ZX81
Brainfuck Interpreter für ZX81 Sprache Befehle Die Programmiersprache Brainfuck hat wenige, einfache Regeln. Es gibt 8 Befehle + - > < [ ],. Jeder Befehl besteht aus einem einzelnen Zeichen. Es gibt keine
b.a.b-technologie gmbh ThemeEditor Dokumentation
b.a.b-technologie gmbh ThemeEditor Dokumentation Anleitungsversion IV Stand 03/2013 Datum: 18. April 2013 DE Inhaltsverzeichnis b.a.b technologie gmbh im INHOUSE Dortmund Rosemeyerstr. 14 44139 Dortmund
3 Maps richtig ablegen und
PROJEKT MindManager 2002 Intensiv 3 Maps richtig ablegen und speichern Ihre Map ist nun fertig gestellt wenn Sie jetzt Ihre Arbeit mit MindManager beenden, ohne die aktuellen Eingaben und Formatierungen
Grundlagen der Fortran Sprache
Kapitel 1 Grundlagen der Fortran Sprache Programmieren bezeichnet das Verfahren, in einer bestimmten Sprache (Syntax) Anweisungen (sog. Quellcode) für den Computer zu schreiben. Dieser Programmcode wird
HANDBUCH. für die Arbeit auf den Portalen der SolDaCon UG. Version 1.1 Stand Handbuch SolDaCon 1.1 1
HANDBUCH für die Arbeit auf den Portalen der SolDaCon UG Version 1.1 Stand 15.02.2017 Handbuch SolDaCon 1.1 1 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis 2 2. Allgemeines 3 3. Zugangsdaten 4 4. Bearbeitung
Arabische Ornamente in OpenOffice bearbeiten
Arabische Ornamente in OpenOffice bearbeiten OpenOffice ist eine frei erhältliche professionelle Software, die unter http://www.openoffice.org heruntergeladen werden kann, wenn sie nicht bereits auf dem
Hilfe zur Dokumentenverwaltung
Hilfe zur Dokumentenverwaltung Die Dokumentenverwaltung von Coffee-CRM ist sehr mächtig und umfangreich, aber keine Angst die Bedienung ist kinderleicht. Im Gegensatz zur Foto Galeria können Dokumente
Mandatierte Eigenschaften mit Angaben in Freien Belegfeldern vergleichen.
Mandatierte Eigenschaften mit Angaben in Freien Belegfeldern vergleichen. Vorgabe: In den Freien Belegpositionsfeldern wird für einen Beleg bzw. seine Positionen eine allgemeine Vorgabe für eine mandatierte
Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software
Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software Stand. September Seite 9 Bild. Am Ausgang des Multiplexers fehlt ein D, um ihn als Datenausgang zu kennzeichnen. Seite
Von-Neumann-Architektur
Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..
TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems
Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving
Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt.
Die Befehle des Modellrechners in übersichtlichen Tabellen: Alle Opcodes sind Hexadezimal angegeben (s.u.). 1.) Die Ladebefehle zwischen den einzelnen Registern. In der oberen Zeile steht jeweils die Quelle
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100
3 Mit Programmen und Fenstern
34 MIT PROGRAMMEN UND FENSTERN ARBEITEN 3 Mit Programmen und Fenstern arbeiten In dieser Lektion lernen Sie wie Sie Programme starten und wieder beenden wie Sie mit Fenstern arbeiten Ein Programm starten
Kurzbeschreibung S&S Arbeitszeiterfassung
S&S 1. Installation 1.1 Excel konfigurieren bis Office-Version 2003 Starten Sie zuerst Excel, klicken Sie das Menü EXTRAS, MAKRO>, SICHERHEIT. Wenn nicht schon der Fall, schalten Sie die SICHERHEITSSTUFE
Daniel Betz Wintersemester 2011/12
Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register
Hannover: Lebensqualität in der Südstadt
Hannover: Lebensqualität in der Südstadt Schülerhandreichung zum Umgang mit Spatial Commander Ein Projektentwurf im Rahmen des Seminars Der PC Einsatz im Geographieunterricht der Leibniz Universität Hannover
Herausfinden der 'User' von eingegebenen Daten in ProMISe
Herausfinden der 'User' von eingegebenen Daten in ProMISe Um herauszufinden, von welchem User bestimmte Daten eines Falles eingegeben, geändert oder gelöscht wurden, braucht man zuerst einen Filter, der
Anleitung zum Download der EBMG_Datei_9_2.xls
Anleitung zum Download der EBMG_Datei_9_2.xls Die folgende Beschreibung ist für die jeweils aktuelle Download-Version, unabhängig von Dateiname oder Versionsnummer, gültig. Die aktuelle Bezeichnung lautet
Erzherzog Johann Jahr 2009
Erzherzog Johann Jahr 2009 Der Erzherzog Johann Tag an der FH JOANNEUM in Kapfenberg Was wird zur Erstellung einer Webseite benötigt? Um eine Webseite zu erstellen, sind die folgenden Dinge nötig: 1. Ein
RO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Anwenderhandbuch Online Redaktionssystem. Datenübermittlung Kirchennachrichten Stand: April 2010
Anwenderhandbuch Online Redaktionssystem Datenübermittlung Kirchennachrichten Stand: April 2010 2 15 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einführung... 3 1. Login... 4 1.1 Persönliche Daten eingeben...