Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler"

Transkript

1 Rechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler 1. Oktober 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Wiederholung / Diskussion 1. Was ist der Unterschied zw. Mikrokontroller und Mikroprozessor? 2. Welcher Teil eines statischen RAMs ist statisch? 3. Was stellt die Speicherpyramide dar? 4. Ist die Intel 0x86-Prozessorenserie little- oder big-endian? 5. Was ist der Unterschied zwischen Compiler und Assembler? c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 2/38

2 Compiler, Assembler, Linker Schema zeigt Werkzeugkette, nicht die Abstraktionsniveaus c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 3/38 Micro-Programmierung, Version (fehlt seit 2012) IUS Intel Upgrade Service im Web viel Polemik. c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 4/38

3 Uebersicht ATmega128 - ISA (instruction set architecture): Adressierungsmodi ausgewählte Instruktionen Programmierbeispiele Memory-Layout, Stack Stackmaschine, Postfix-Code Prozeduraufruf c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 5/38 ATmega128 Ressourcen Hersteller, Befehlssatz (über 150 Seiten!): AVR Studio v6.1 (vs v3.56) Version 3.56 wäre bevorzugt, funktioniert unter Wine C-Compiler: Tutorial: (veraltet?) c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 6/38

4 Wiederholung: Von Neumann-Architektur Das Programm ist im Speicher und wird wie Daten behandelt.. c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 7/38 Die sog. Harvard -Architektur für CPUs Leichte Abweichung von der Von Neumann-Architektur: Die Instruktionen sind in einem separaten Speicher- und Adressraum. AVR Microcontroller hat eine Harvard-Architektur. c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 8/38

5 Die AVR-CPU 8-Bit CPU, 32 Register Uniforme Länge der Instruktionen: 2 Bytes (und 4 Bytes) 5 Speicherzugriffsmodi Allgemeines Format der Befehle: 4 x 4Bits opcode Parameter1 Destination Parameter2 Beispiel für LDI (load immediate): 1110 KKKK dddd KKKK, d=zielregister, K=Zuweisungskonstante ldi r17, 129 c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 9/38 Adressierungsmodus 1: Immediate Siehe auch ATMEL-Dokument zum AVR-Instruktionssatz ldi Rd, const (load immediate) Register erhält Wert einer Konstante Immediate : Konstante ist Teil der Instruktion Auch register direct genannt c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 10/38

6 Adressierungsmodus 2: Data Direct lds Rd, addr sts addr, Rs (Load Direct from data Space) (Store Direct to data Space) Ziel oder Quelle ist ein Register, Quelle oder Ziel ist der Primärspeicher Dem Befehl folgt die Adresse (16 Bits) d.h. gesamter Befehl belegt 4 Bytes c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 11/38 Adressierungsmodus 3: Indirect ld Rd, X st X, Rs (Load indirect from Data space) (Store indirect to Data space) Ziel oder Quelle ist ein Register, Quelle oder Ziel ist eine Speicherzelle im Primärspeicher, deren Adresse im X-Registers definiert ist. Das X-Register ist ein Pointer Technisch: X-Register = Kombination R26:R27 c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 12/38

7 Adressierungsmodus 3 : Indirect with Displacement ldd Rd, Y+d std Y+d, Rs (Load indirect from Data space w/ Displ) (Store indirect to Data space w/ Displ) Ziel oder Quelle ist ein Register, Quelle oder Ziel ist eine Speicherzelle im Primärspeicher, deren Basis-Adresse im Y-Registers definiert ist, zu welcher noch das Displacement (Offset) addiert werden muss Das Y-Register ist ein Pointer Technisch: Y-Register = Kombination R28:R29 c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 13/38 AVR Studio und WINE Die Simulationsumgebung AVR Studio 3.56 kann mit WINE auch unter Linux betrieben werden. WINE (Wine is Not an Emulator) implementiert die Window Programmier-Schnittstelle und bildet Aufrufe auf Linux ab. 3 Varianten, um Windows-Binaries auszuführen: avrstudio.exe avrstudio.exe Windows vmware o.ä. avrstudio.exe WINE Windows Linux Linux c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 14/38

8 Programmierbeispiel 1: Vorzeichen wechseln Input: in Register 16 Output: Register 16 ldi r16, 15 ; Konstante 15 an Register 16 ldi r17, 255 ; Konstante 255 an Register 17 eor r16, r17 inc r16 ; xor von r16 ; r16 um 1 erhöhen Zuerste müssen die Register geladen werden, dann das 2er-Komplement berechnen. Beachte die Bit-Negation mit XOR. c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 15/38 Implementierung von IF...ELSE in C: if (r1 < r2), if (r1 <= r2), if (r1 == r2) etc AVR hat ca ein Dutzend Vergleichsoperationen (Seite 10): BR{LT, GE} branch if less than, if greater or equal BR{EQ, NE} branch if equal, if not equal BRCS und BRCC branch if carry set, if carry clear BRLO branch if lower (unsigned) BRSH branch if same or higher (unsigned) BR{MI, PL} branch if minus, if plus BR{VC, VS} branch if overflow clear, if set sowie weitere Abfragen auf anderen Bits und Flags c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 16/38

9 Bedingte Ausführung von Code C: if (r1 < r2) { statement; } Realisierung in zwei Schritte: zuerst Register vergleichen, dann auf Grund von Nebeneffekten (Flags) bedingter Sprung Umsetzung: cp r1, r2 brge L1... statement... ; vergleiche (compare) r1 mit r2 L1: nop ; hier geht s weiter ; verzweige falls r1 >= r2 (mit Vorzeichen!) c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 17/38 Ausführung von Code-Alternativen C: if (r1 < r2) { stmt1; } else { stmt2; } Umsetzung: cp r1, r2 ; vergleiche (compare) r1 mit r2 brge L1 ; verzweige falls r1 >= r2 (mit Vorzeichen!)... stmt1... rjmp L2 L1:... stmt2... L2:... ; hier geht s weiter c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 18/38

10 WHILE Schleife C: while (r1 < r2) { statement; } Umsetzung: L1: cp r1, r2 ; vergleiche (compare) r1 mit r2 brge L2 ; springe hinaus falls r1 >= r2 (mit Vorzeichen!)... statement... rjmp L1 L2:... ; hier geht s weiter c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 19/38 REPEAT-UNTIL bzw DO-WHILE Schleife C: do { statement; } while (r1 < r2); Umsetzung: L1:... statement... cp r1, r2 ; vergleiche (compare) r1 mit r2 brlt L1 ; springe zurück falls r1 < r2 (mit Vorzeichen!)... ; hier geht s weiter c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 20/38

11 FOR Schleife C: for (stmt1; r1 < r2; stmt2) { stmt3; } Umsetzung: stmt1 L1: cp r1, r2 ; vergleiche (compare) r1 mit r2 brge L2 ; springe hinaus falls r1 >= r2 (mit Vorzeichen!)... stmt stmt2... rjmp L1 L2:... ; hier geht s weiter c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 21/38 Programmierbeispiel 2: Reihe Zahlen von 1 bis N addieren. clr r0 ; Register auf 0 setzen ldi r16, 1 ; Konstante 1 (erste Zahl N) an Register 16 ldi r17, 4 ; Konstante 4 als Zähler-Variable in Register 17 L1: ; Label (logische Adresse) add r0, r16 ; addiere Inhalt von r16 zu r0 inc r16 ; N erhöhen dec r17 ; Zähler verkleinern (setzt Zero-Flag) brne L1 ; zurück zu L1, falls ungleich 0 end: nop ; no-operation BRNE = branch if not equal c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 22/38

12 Programmierbeispiel 3: Länge eines Strings berechnen ASCIIZ: String wird durch das Zeichen 0x00 abgeschlossen. (in C) Neue Befehle: rjmp relative jump.db Assembler-Anweisung für Datenablage cpi compare immediate, Vergleich mit einer Konstant Z Pseudoregister Zugriff auf Programmspeicherbereich (Z = R31:r30) adiw add immediate to word Bearbeitung von Z lpm load from program memory c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 23/38 Programmierbeispiel 3: Fortsetzung rjmp main str:.db "hello", 0 main: clr r16 ; Register auf 0 setzen ldi r30, LOW(str*2) ; Programmspeicher hat Wort-Adressen ldi r31, HIGH(str*2) L1: lpm r17, Z ; lese Byte cpi r17, 0 ; schon 0? breq L2 ; falls ja gehe zu L2 inc r16 ; erhöhe Zähler r16 adiw r30, 1 ; erhöhe Z Pointer rjmp L1 ; Schleife weiter bei L1 L2: c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 24/38

13 Speicheradressen des Datensegments (Memory Map) 0x0100 0x10ff Stack 4096 Hauptspeicher Zellen (SRAM) 0x0060 0x00ff 0x0020 0x005f 0x0000 0x001f 8 Bits 160 "extended IO" Registers 64 "Input/Output" Register 32 "general purpose" Register c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 25/38 Stack Stapel, Kellerspeicher etc Zwei Operationen: push (neues Element drauf -legen) pop (oberstes Element wegnehmen) Stack pointer (SP): zeigt auf erste freie Stelle Bei AVR (und meisten CPUs): Stack wächst nach unten d.h. ein PUSH verkleinert den Wert des Stack Pointer c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 26/38

14 Stack im AVR-Chip Stack liegt im Datensegment (SRAM) SP ist ein Spezialregister, 16-bit weit. Alle Register sind memory-mapped, auch SP: 0x5d (low byte) 0x5e (high byte) Initialisierung: ldi r16, LOW(4352-1) sts 0x005d, r16 ldi r16, HIGH(4352-1) sts 0x005e, r16 ; Bem: wäre kompakter zu kodieren mit port -Befehlen c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 27/38 Stack-Verwendung Dynamischer Speicher anlegen: Bytes ablegen (und holen) Gegensatz: statisch allozierte Variablen: üblicherweise im unteren Speicherbereich (0x ) (Konstanten: im code -Segment / read-only memory) Beispiel: Register temporär freimachen push r12 ; Inhalt von r12 auf Stack... ; beliebige Verwendung von r12 pop r12 ; r12 erhält wieder den alten Wert Wiederholung: Stackpointer zeigt auf erste freie Position c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 28/38

15 Stack-Maschinen Operationen meist nur im Register wegen Geschwindigkeit (Speicherzugriff) Stack wird aber als Zwischenablage verwendet Beispiel: 3 * ( fct(4) + fct(5) ) sei zu berechnen Umsetzung: push 3 call fct(4) (Resultat auf dem Stack) call fct(5) (Resultat auf dem Stack) pop r1 / pop r2 / add r1,r2 / pop r2 / mult r1,r2 Heutige CPUs sind keine reinen Stackmaschinen, aber beinahe c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 29/38 Infix, Postfix und Prefix-Notation Arithmetische Ausdrücke in verschiedenen Darstellungen: Normale (Infix-) Notation: 3 mult (4 plus 5) Postfix Notation: plus mult reine Stackmaschine keine Register nötig keine Klammern auch bekannt als RPN reverse polnish notation Grundlage von PostScript, Forth Prefix Notation: (mult 3 (plus 4 5)) z.b. in LISP, Tcl c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 30/38

16 Exkurs: Postfix-Notation funktioniert auch für Code C: if ( test(a) ) { stmt1; } else { stmt2; } Umsetzung in Postfixnotation (PostScript) a % push a test % call: Funktion wird Resultat auf dem Stack lassen { stmt1 } % dies setzt einen Codeblock auf den Stack { stmt2 } % dies setzt einen Codeblock auf den Stack ifelse % erwartet 3 Argumente auf dem Stack, führt einen % der Codeblocks aus gemäss 3. Wert auf Stack Vorteil: keine Labels nötig c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 31/38 Postfix-Order abarbeiten (mit Register) infix: a + b * c + (d * e + f) * g postfix: a b c * + d e * f + g * + Initialisiere Stack DO Lese Postfix-Ausdruck Symbol für Symbol IF nächstes Symbol ein Operand THEN push Operand IF nächstes Symbol ein Operator THEN pop von zwei Operanden vom Stack (z.b. in Register) wende Operator an push des Resultats FI OD Schlussresultat auf dem Stack c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 32/38

17 Postfix-Order erzeugen Compiler-Arbeit infix: a + b * c + (d * e + f) * g postfix: a b c * + d e * f + g * + + Syntaxbaum des (Infix-) Ausdrucks erzeugen + + * Baum depth first traversieren (siehe Algo&Daten) * * a b c d e f g dabei Operator (eines Knotens) am Schluss ausgeben. c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 33/38 Subroutinen s1: call s1 nop ret Code an Adresse s1 soll mehrfach verwendet werden können. c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 34/38

18 (r)call und ret: Stack für Rücksprung-Adresse nutzen call: legt das Wort PC + 1 auf den Stack, SP (Stack-Ptr) wird um 2 verkleinert (post-decrement) setzt PC (Prog-Counter) auf die Adresse der Subroutine ret: erhöhe SP um 2 (pre-increment) ersetzt PC mit Stackwort, auf den SP zeigt rcall S1... S1:... Code von S1... ret c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 35/38 Prozedur-Aufruf Beispiel mit max() C: void max() { if (r1 > r2) r3 = r1; else r3 = r2; } max: cp r2, r1 ; Prozedur max() brge L1 mov r3, r1 rjmp L2 L1: mov r3, r2 L2: ret... main: rcall max ; Prozeduraufruf c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 36/38

19 Prozedur-Aufruf ohne Stackpointer! Rücksprung-Adresse muss nicht im Stack abgelegt werden. Statt rcall max (mit impliziter Benutzung des Stacks) Rücksprungadresse in Reg (oder Hauptspeicher) ablegen. Beispiel mit Register Z (r30:r31) max: cp r2, r1... L2: ijmp ; indirect Jump: benutzt Inhalt von Reg Z main: ldi r30, LOW(next) ldi r31, HIGH(next) rjmp max next:... ; statt rcall c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 37/38 Prozedur-Aufruf ohne Stackpointer! (Forts) Problem: Nur 1 Register Z vorhanden: was, falls max() eine zweite Prozedur aufrufen muss? Für jeden Aufruf (!) einen separaten Speicherplatz, um Rücksprung abzulegen Damit ist aber keine Rekursion möglich. ( frühes Fortran) Man könnte die separaten Speicherplätze wie einen Stapel verwalten (Rekursion auch ohne CPU- Stackpointer ist möglich) c Christian Tschudin CS201 Rechnerarchitektur und Betriebssysteme , 38/38

Rechnerarchitektur und Betriebssysteme (CS201): Asm-Programmierung, Stack, Compiler

Rechnerarchitektur und Betriebssysteme (CS201): Asm-Programmierung, Stack, Compiler Rechnerarchitektur und Betriebssysteme (CS201): Asm-Programmierung, Stack, Compiler 11. November 2005 Prof. Dr. Christian Tschudin Departement Informatik, Universität Basel Wiederholung / Diskussion 1.

Mehr

Teil Rechnerarchitekturen M05. AVR-CPU und Assembler, Memory Map, Stack, Prozeduraufruf, Calling Convention

Teil Rechnerarchitekturen M05. AVR-CPU und Assembler, Memory Map, Stack, Prozeduraufruf, Calling Convention Teil Rechnerarchitekturen M05 AVR-CPU und Assembler, Memory Map, Stack, Prozeduraufruf, Calling Convention Corinna Schmitt corinna.schmitt@unibas.ch AVR-CPU und -Assembler 2015 Corinna Schmitt Teil Rechnerarchitekturen

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Memory Map, Stack, Prozeduraufruf, Calling Convent.

Rechnerarchitektur und Betriebssysteme (CS201): Memory Map, Stack, Prozeduraufruf, Calling Convent. Rechnerarchitektur und Betriebssysteme (CS201): Memory Map, Stack, Prozeduraufruf, Calling Convent. 19. Oktober 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel

Mehr

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

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

Mehr

B1 Stapelspeicher (stack)

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

Mehr

Einführung in AVR Assembler

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

Mehr

Die Mikroprogrammebene eines Rechners

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

Mehr

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur 0. Assembler-Programmierung Datenstrukturen des ATMega32 Literatur mikrocontroller.net avr-asm-tutorial.net asm Alles über AVR AVR-Assembler-Einführung Assembler AVR-Aufbau, Register, Befehle 2008: ouravr.com/attachment/microschematic/index.swf

Mehr

Use of the LPM (Load Program Memory)

Use of the LPM (Load Program Memory) Use of the LPM (Load Program Memory) Use of the LPM (Load Program Memory) Instruction with the AVR Assembler Load Constants from Program Memory Use of Lookup Tables The LPM instruction is included in the

Mehr

Instruktionssatz-Architektur

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

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

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

Mehr

Technische Informatik 2: Addressierung und Befehle

Technische Informatik 2: Addressierung und Befehle Technische Informatik 2: Addressierung und Befehle Memory Map Programm Speicher: Adresse $000-$FFF max. 4096 Byte für kompiliertes Programm Data Memory: Adresse $0000-$FFFF 32 8Bit Register 64 I/O Register

Mehr

Atmel AVR für Dummies

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

Mehr

Teil III: Wat macht ene Mikrokontroller?

Teil III: Wat macht ene Mikrokontroller? Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil III: Wat macht ene Mikrokontroller?

Mehr

Theorie der Informatik (CS206) Kellerautomat, Postfix-Notation, Turing-Maschine, Busy Beaver

Theorie der Informatik (CS206) Kellerautomat, Postfix-Notation, Turing-Maschine, Busy Beaver Theorie der Informatik (CS206) Kellerautomat, Postfix-Notation, Turing-Maschine, Busy Beaver 20. März 2013 Proff Malte Helmert und Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Wer in der Grundschule ein wenig aufgepasst hat, sollte in der Lage sein schriftlich eine Zahl durch eine zweite zu teilen.

Wer in der Grundschule ein wenig aufgepasst hat, sollte in der Lage sein schriftlich eine Zahl durch eine zweite zu teilen. Teilen binär Teil 1 - Vorzeichenlose Ganzzahlen ============ Irgendwann steht jeder Programmieren vor diesem Problem. Wie teile ich eine Binärzahl durch eine zweite? Wer in der Grundschule ein wenig aufgepasst

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid)

Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid) VM/AVR SIMPLE & STUPID 1 Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid) Stand: 26. 1. 2010 Zweck: Elementare Demonstration der Mehrprogrammausführung auf Grundlage

Mehr

Einführung in AVR-Assembler

Einführung in AVR-Assembler Einführung in AVR-Assembler Easterhack 2008 Chaos Computer Club Cologne Stefan Schürmans, BlinkenArea stefan@blinkenarea.org Version 1.0.4 Easterhack 2008 Einführung in AVR-Assembler 1 Inhalt Vorstellung

Mehr

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

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

Mehr

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

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

Befehlssatz AVR RISC Controller

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

Mehr

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

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

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

Mehr

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

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

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Assembler-Programmierung

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

Mehr

Technische Informatik 1

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

Mehr

Assembler (NASM) Crashkurs von Sönke Schmidt

Assembler (NASM) Crashkurs von Sönke Schmidt Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher

Mehr

Betriebssysteme Teil 3: Laufzeitsystem für Programme

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

Mehr

Technische Informatik 2 Maschinenprogrammierungskonzepte

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

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Assembler am Beispiel der MIPS Architektur

Assembler am Beispiel der MIPS Architektur Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.

Mehr

10. Die Adressierungsarten des MSP 430

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

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

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

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

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

Mehr

RISC-Prozessoren (1)

RISC-Prozessoren (1) RISC-Prozessoren (1) 1) 8 Befehlsklassen und ihre mittlere Ausführungshäufigkeit (Fairclough): Zuweisung bzw. Datenbewegung 45,28% Programmablauf 28,73% Arithmetik 10,75% Vergleich 5,92% Logik 3,91% Shift

Mehr

Core und Speicher des ATmega16

Core und Speicher des ATmega16 Ausarbeitung Core und Speicher des ATmega16 Verfasst von: Daniel Dünker Quellen: http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf Inhaltsverzeichnis 1.Allgemeines (S. 3) 2.Die Alu (S. 4) 3.Das

Mehr

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE D - CA - IV - AA - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 4 DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE Sommersemester 2003 Leitung:

Mehr

4 Assembler für die 8051-Controller-Familie

4 Assembler für die 8051-Controller-Familie 4 Assembler für die 8051-Controller-Familie Tabelle 4.1 Wichtige Schreibweisen und Bedeutungen für die Befehle Abkürzung #data data addr Rr @Rr code addr Bedeutung Daten sind in der Instruktion codiert

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

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

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.

Mehr

Technische Informatik II Rechnerarchitektur

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

Mehr

Der Intel 8086 Reto Gurtner 2005

Der Intel 8086 Reto Gurtner 2005 Der Intel 8086 Reto Gurtner 2005 1 1. DIE INTERNEN REGISTER... 3 1.1 ALLGEMEINE REGISTER AX, BX, CX UND DX... 3 DAS AX-REGISTER... 4 DAS BX-REGISTER... 4 DAS CX-REGISTER... 5 DAS DX-REGISTER... 5 1.2 DIE

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

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

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

Mehr

Technische Informatik 2 Adressierungsarten

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

Mehr

Assembler - Adressierungsarten

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

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

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

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

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

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

Mehr

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

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

Mehr

8. Beschreibung des Prozessors MSP 430

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

Mehr

Zwischencodeerzeugung Compiler II

Zwischencodeerzeugung Compiler II Zwishenodeerzeugung Compiler II Prof. Dr. Ursula Goltz 14.09.2012 Einleitung Front-End... Parser Sem. Analys Zwishenodegenerator Bak-End Codegenerator... Zwishendarstellung (Zwishenode) evtl. mashinennunabh.

Mehr

Mikrocontroller-Programmierung

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

Mehr

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung: Syntaxbaum Ausgabeprogramm Starte mit Syntaxbaum: Darstellung des eingegebenen Programms Wähle Zielarchitektur Wähle abstrakte

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

Grundlegende Programmiertechniken

Grundlegende Programmiertechniken Das Attiny-Projekt Grundlegende Programmiertechniken 1 Grundlegende Programmiertechniken Es gibt zwei Aspekte der Assemblerprogrammiertechnik, die als grundlegend angesehen werden können: Zum Einem der

Mehr

Shangrila. One Instruction Set Computer

Shangrila. One Instruction Set Computer Shangrila One Instruction Set Computer Outline One Instruction Set Computer Die Idee Funktion Die Machine Shangrila VM Interfaces Tools Implementation Status & Zukunft OISC >> Die Idee CPU mit nur einer

Mehr

Gerhard Paulus gp@gnomsoft.de

Gerhard Paulus gp@gnomsoft.de -------------------------------------------------------------- Assembler ab 0 und 1 8.10.2002 -------------------------------------------------------------- Gerhard Paulus gp@gnomsoft.de Copyright (c)

Mehr

ProcessorsTechnik Labor LCD-Uhr

ProcessorsTechnik Labor LCD-Uhr ProcessorsTechnik Labor LCD-Uhr Xu,Zhen 20465719 Aufgabe Beschreibung:LCD-Uhr HardWare :LCD161A. (4B.8B Dataverarbeiten ). Clock Chip:KS0066U Programmieren Sprache :Assemble LCD1602 PIN definieren : Pin

Mehr

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

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

Mehr

Unterprogramme. Unterprogramme

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

Mehr

HC680 PROGRAMMER'S REFERENCE MANUAL

HC680 PROGRAMMER'S REFERENCE MANUAL HC680 PROGRAMMER'S REFERENCE MANUAL Programmieranleitung Mnemonic Assembler Maschinenbefehl Wirkung /Bedeutung Register (0 bis 3 allg. Reg.) Ope- Opcode/Binärcode - Adressierungsart - Nr Bez. xx Bin Art

Mehr

Übung 3: VHDL Darstellungen (Blockdiagramme)

Übung 3: VHDL Darstellungen (Blockdiagramme) Übung 3: VHDL Darstellungen (Blockdiagramme) Aufgabe 1 Multiplexer in VHDL. (a) Analysieren Sie den VHDL Code und zeichnen Sie den entsprechenden Schaltplan (mit Multiplexer). (b) Beschreiben Sie zwei

Mehr

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache Assembler Programmierung Motivation Informatik II SS 2004 Teil 4: Assembler Programmierung Was ist ein Programm? Eine Reihe von Befehlen, die der Ausführung einer Aufgabe dient Dazu wird das Programm sequentiell

Mehr

Neues vom STRIP Forth-Prozessor

Neues vom STRIP Forth-Prozessor Neues vom STRIP Forth-Prozessor Tagung der Forth-Gesellschaft März 2014 Bad Vöslau/Österreich Willi Stricker -Prozessor Inhalt 1. STRIP-Befehlssatz Bisher: minimaler Befehlssatz neu: erweiterter Befehlssatz

Mehr

PC/XT/AT ASSEMBLER-BUCH

PC/XT/AT ASSEMBLER-BUCH PC/XT/AT ASSEMBLER-BUCH Alle Befehle + Makro-Assembler KLAUS-DIETER THIES t

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

Übungsblatt 10 (Block C 2) (16 Punkte)

Übungsblatt 10 (Block C 2) (16 Punkte) georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16

Mehr

1 Assembler. 2 LED-Steuerung

1 Assembler. 2 LED-Steuerung Inhaltsverzeichnis Inhaltsverzeichnis... 1 1 Assembler... 2 2 LED-Steuerung... 2 3 Taster Abfrage ( Port I/O)... 3 3.1 Zahlensysteme... 3 3.2 Ausgabe... 4 3.2.1 Assembler-Sourcecode... 4 3.2.2 Assemblieren...

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

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

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

Mehr

Zuse-Computer: Z1. erster Rechner mit binären Zahlen. Entwicklung der computergerechten. (Grundlage für IEEE-754) funktionierte leider nie zuverlässig

Zuse-Computer: Z1. erster Rechner mit binären Zahlen. Entwicklung der computergerechten. (Grundlage für IEEE-754) funktionierte leider nie zuverlässig Überblick Grundlagen: Spannung, Strom, Widerstand, IV-Kennlinien Elektronische Messgeräte im Elektronikpraktikum Passive Filter Signaltransport im Kabel Transistor Operationsverstärker PID-Regler Sensorik

Mehr

Aufbau eines Assembler-Programms

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

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Teil Rechnerarchitekturen. Repetitorium. Corinna Schmitt

Teil Rechnerarchitekturen. Repetitorium. Corinna Schmitt Teil Rechnerarchitekturen Repetitorium Corinna Schmitt corinna.schmitt@unibas.ch Vorlesungsinhalt Rechnerarchitekturen M01: Architektur, ALU, Flip-Flop M02: Einführung in die Sprache C M03: 2er-Komplement,

Mehr

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes

Assembler-Programme. Systemprogrammierung (37-023) Elementare Komponenten eines Assembler-Programmes Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozent: Prof. Thomas Stricker krankheitshalber vertreten durch: Felix Rauch WebSite: http://www.cs.inf.ethz.ch/37-023/

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

"Organisation und Technologie von Rechensystemen 4"

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

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Zentralübung

Mehr

Rechner- organisa-on 2 TOY. Karl C. Posch.

Rechner- organisa-on 2 TOY. Karl C. Posch. Rechner- Technische Universität Graz Ins-tut für Angewandte Informa-onsverarbeitung und Kommunika-onstechnologie organisa-on 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2012. Ausblick. Erste HälEe

Mehr

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

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

Mehr

Befehle zur Verarbeitung von Daten ( data processing ):

Befehle zur Verarbeitung von Daten ( data processing ): ARM: Befehlssatz Befehle zur Verarbeitung von Daten ( data processing ): Register/Register-Befehle: ,, (Achtung! Andere Interpretation: ) Transport-Befehl: MOV ,

Mehr

Teil 1: Prozessorstrukturen

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

Mehr