Einführung in AVR Assembler
|
|
- Hermann Hauer
- vor 7 Jahren
- Abrufe
Transkript
1 Einführung in AVR Assembler Dennis Fassbender Institut für Technik Autonomer Systeme (LRT8) Universität der Bundeswehr München
2 Was ist Assembler? Low-level-Programmiersprache Erlaubt direkten Zugriff auf Ressourcen wie Register, Speicher und Ports Instruktionen lassen sich direkt in (bei AVR 16 Bit breite) Machinenbefehle übersetzen, die vom Prozessor aus dem Speicher gelesen und ausgeführt werden Bsp: add r0, r
3 Register: Eigenschaften Allgemein spezielle, idr 8 Bit breite Speicher sehr schneller Zugriff durch CPU möglich können zb im Gegensatz zu Speicherzellen im Hauptspeicher direkt in Assembler-Instruktionen verwendet werden insgesamt 32 Register (r0 bis r31) verfügbar r0 bis r15 jedoch nur eingeschränkt nutzbar
4 Register: Verwendung ldi r16, 0 (Konstante 0 in r16 laden) ldi r16, 30 (Konstante 0 in r16 laden) ldi r16, 0xff (Hexadezimale Konstante 0xff, also 255, in r16 laden) mov r17, r16 (Wert in r16 nach r17 kopieren) add r16, r17 (Wert in r17 zu Wert in r16 addieren) addi r16, 10 (Konstante 10 zu Wert in r16 addieren) andi r16, 0b (UND-Verknüpfung von Wert in r16 mit Binärwert , also 15) lsl r16 (Bits in r16 um eine Position nach links schieben) cpi r16, 37 (Wert in r16 mit Konstante 37 vergleichen)
5 Register: Eigenschaften Lange Register Registerpaare r25:24, r27:r26, r29:r28 und r31:30 bilden 16-Bit-Register ( lange Register ) r27:r26, r29:r28 und r31:30 auch als X, Y und Z adressierbar bestehen aus high byte und low byte XL (r26) steht bspw für niederes Byte in X, XH (r27) für höheres Um bspw konstanten Wert in 16-Bit-Register zu laden, sind zwei ldi-instruktionen nötig (zb ldi r25, 1 und ldi r24, 255 r25:r24 enthält Wert 511) X, Y und Z können als Zeiger in Speicher verwendet werden
6 Lange Register: Verwendung adiw ZH:ZL, 1 (Konstante 1 zu 16-Bit-Wert in langem Register Z addieren) adiw r25:r24, 90 (Konstante 90 zu 16-Bit-Wert in langem Register r25:r24 addieren) sbiw ZH:ZL, 1 (Konstante 1 von 16-Bit-Wert in langem Register Z subtrahieren) sbiw r25:r24, 90 (Konstante 90 von 16-Bit-Wert in langem Register r25:r24 subtrahieren) ld r16, Z (lade Wert, der an Speicherstelle Z steht, in r16) st Z, r16 (schreibe Wert in r16 in Speicherstelle Z)
7 Ports: Eigenschaften Allgemein dienen meist der Kommunikation mit internen oder externen Geräten AVRs haben bis zu 64 direkt addressierbare Ports Addressierung über vordefinierte Konstanten, zb PORTB Statusregister bestimmte Operationen manipulieren Bits im Statusregister Bsp: dec r16 setzt Zero-Flag, falls Ergebnis 0 ist Bsp: cpi r16, 10 setzt Zero-Flag, falls r16 Wert 10 enthält nützlich für Steuerung des Programmablaufs (mehr dazu später)
8 Ports: Verwendung I/O-Ports müssen vor Verwendung explizit als Ein-/Ausgabe-Port konfiguriert werden PORTx bzw PINx wird mittels DDRx (data direction register) konfiguriert (x ist Platzhalter): ldi r16, 0xff out DDRA, r16 ldi r16, 0 out DDRB, r16 ; alle Bits in r16 auf 1 setzen ; Wert in DDRA schreiben ; PORTA ist nun Ausgabe-Port, ; zb fuer LEDs ; alle Bits in r16 auf 0 setzen ; Wert in DDRB schreiben ; PINB ist nun Eingabe-Port, ; zb fuer Schalter
9 Ports: Verwendung out PORTB, r16 (Wert in r16 auf Port B ausgeben) in r17, PIND (Wert an Port D in Register r17 einlesen) sbi PORTB, 0 (Bit 0 von Port B setzen) cbi PORTB, 0 (Bit 0 von Port B löschen)
10 Sprungbefehle und Labels Kontrollstrukturen in Hochsprachen Verzweigungen: if ( ) { } Schleifen: while ( ) { }, for ( ) { } Wie in Assembler realisiert? Labels Markieren Speicherstellen, an denen Daten oder Programmcode stehen können Sprungbefehle Springen zu Labels, dh die Programmausführung wird an der durch das Label markierten Speicherstelle fortgesetzt
11 Sprungbefehle und Labels: Beispiele Endlosschleife durch unbedingten Sprung main: rjmp main for-schleife mit 100 Iterationen ldi r16, 0 ; Zählvariable initialisieren schleife: ; Sprung-Label inc r16 ; Zählvariable um eins erhöhen cpi r16, 100 ; und mit Konstante 100 vergleichen brlo schleife ; brlo = branch if lower ; also Schleife erneut starten, ; solange r16 < 100
12 Sprungbefehle und Labels: Beispiele if-verzweigung cpi r16, 100 ; Vergeich mit Konstante 100 brne ungleich ; brne = branch if not equal ; falls r16 den Wert 100 enthält, ; wird die Ausführung hier ganz ; normal fortgesetzt und der rjmp if_ende ; ungleich -Zweig übersprungen ungleich: ; Ausführung hier fortsetzen, falls ; r16 nicht 100 enthält if_ende:
13 Sprungbefehle und das Statusregister Operationen mit Auswirkung auf Statusregister Mathematische Operationen: add, sub, inc, dec, Bit-Operatoren: and, or, com, lsl, lsr, setzen zb Zero-Flag, wenn Ergebnis 0 ist add speichert Übertrag im Carry-Flag lsl und lsr speichern dort das rausgeschobene Bit Vergleichsoperationen: cp, cpi, setzen ebenfalls Zero-Flag, wenn verglichene Werte identisch sind
14 Sprungbefehle und das Statusregister Von Bits im Statusregister beeinflusste Operationen breq: branch if equal, dh wenn Zero-Flag gesetzt ist brne: branch if not equal brcs: branch if carry set, dh wenn Carry-Flag gesetzt ist brcc: branch if carry cleared brsh: branch if same or higher brlo: branch if lower
15 Stack dt: Stapel dient der Speicherung von Daten im Arbeitsspeicher LIFO-Prinzip: last in, first out zuletzt auf Stack abgelegtes Byte wird als erstes gelesen Operationen: push (legt Byte auf Stack ab) pop (entfernt zuletzt abgelegtes Byte vom Stack)
16 Stack: Beispiel PC: program counter, zeigt auf nächsten Befehl SP: stack pointer, zeigt auf höchste freie SRAM-Adresse Die Hexadezimalzahlen stellen Speicheradressen dar PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r18??? SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
17 Stack: Beispiel Konstante 16 wurde in Register r16 geladen PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r18 16?? SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
18 Stack: Beispiel Konstante 17 wurde in Register r17 geladen PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r ? SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
19 Stack: Beispiel Konstante 18 wurde in Register r18 geladen PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
20 Stack: Beispiel Wert in r16 wurde auf Stack gelegt, Stackpointer dekrementiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF? 0x1FFE? 0x1FFD?
21 Stack: Beispiel Wert in r17 wurde auf Stack gelegt, Stackpointer dekrementiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF 17 0x1FFE? 0x1FFD?
22 Stack: Beispiel Wert in r18 wurde auf Stack gelegt, Stackpointer dekrementiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF 17 0x1FFE 18 0x1FFD?
23 Stack: Beispiel Oberster Wert wurde von Stack genommen und in r17 gespeichert, Stackpointer inkrementiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF 17 0x1FFE 18 0x1FFD?
24 Stack: Beispiel Oberster Wert wurde von Stack genommen und in r18 gespeichert, Stackpointer inkrementiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF 17 0x1FFE 18 0x1FFD?
25 Stack: Beispiel Konstante 15 wurde zu Wert in r16 addiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF 17 0x1FFE 18 0x1FFD?
26 Stack: Beispiel Oberster Wert wurde von Stack genommen und in r16 gespeichert, Stackpointer inkrementiert PC Flash-Speicher 0x80 ldi r16, 16 0x82 ldi r17, 17 0x84 ldi r18, 18 0x86 push r16 0x88 push r17 0x90 push r18 0x92 pop r17 0x94 pop r18 0x96 addi r16, 15 0x98 pop r16 r16 r17 r SP SRAM 0x x1FFF 17 0x1FFE 18 0x1FFD?
27 Stack: Initialisierung Um den Stack eines AVR-Mikrocontrollers nutzen zu können, muss zunächst der Stack-Pointer über den Port SP initialisiert werden: ldi r16, low(ramend) out SPL, r16 ldi r16, high(ramend) out SPH, r16 Die 16-Bit-Konstante RAMEND enthält die höchste gültige SRAM-Adresse low liefert deren niederes Byte, high das höhere Anschließend können push und pop wie im Beispiel verwendet werden
28 Subroutinen Beispiel in C++ void swap ( int& a, int& b ) { int temp = a; a = b; b = temp; }
29 Subroutinen Äquivalent in Assembler (Werte in r16 und r17 vertauschen) swap: push r18 mov r18, r16 mov r16, r17 mov r17, r18 pop r18 ret rcall swap ; Beginn der Subroutine ; Wert von r18 sichern ; Werte in r16 und r17 mit ; Umweg über r18 vertauschen ; alten Wert von r18 wiederherstellen ; Rücksprungadresse vom Stack holen ; und dorthin springen ; Rücksprungadresse (dh Adresse der ; nachfolgenden Instruktion) auf Stack ; ablegen und zum Label swap springen
30 Subroutinen & Stack: Beispiel Informationen zum folgenden Beispiel Subroutine (mit Label swap) beginnt an Adresse 0x80 im Flash-Speicher Warum ausgerechnet bei 0x80? Dazu später mehr Dahinter folgt ab Adresse 0x92 das Hauptprogramm (Label main) Programmausführung beginnt bei AVR-Mikrocontrollern immer an Adresse 0x00 Dort steht Sprungbefehl zum Label main, dh Subroutine wird zunächst übersprungen und Hauptprogramm wird ausgeführt
31 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r18?? 18 SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
32 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r18?? 18 SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
33 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r18 5? 18 SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
34 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000? 0x1FFF? 0x1FFE? 0x1FFD?
35 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF? 0x1FFE? 0x1FFD?
36 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF 18 0x1FFE? 0x1FFD?
37 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF 18 0x1FFE? 0x1FFD?
38 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF 18 0x1FFE? 0x1FFD?
39 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF 18 0x1FFE? 0x1FFD?
40 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF 18 0x1FFE? 0x1FFD?
41 Subroutinen & Stack: Beispiel Labels: main = 0x92, swap = 0x80 PC Flash-Speicher 0x00 rjmp main 0x80 push r18 0x82 mov r18, r16 0x84 mov r16, r17 0x86 mov r17, r18 0x88 pop r18 0x90 ret 0x92 ldi r16, 5 0x94 ldi r17, 10 0x96 rcall swap 0x98 rjmp main r16 r17 r SP SRAM 0x2000 0x98 0x1FFF 18 0x1FFE? 0x1FFD?
42 Subroutinen Zu beachtende Regeln vor Aufruf von Subroutinen Stack-Pointer initialisieren, da rcall dort die Rücksprungadresse ablegt benutzte Register zu Beginn der Subroutine ggf auf Stack sichern und am Ende wiederherstellen, damit Werte nicht verloren gehen sicherstellen, dass Stackpointer vor ret wirklich dieselbe Adresse enthält wie zu Beginn der Subroutine; sonst erfolgt Sprung an falsche Adresse!
43 Interrupts Unterbrechungen des Programmablaufs ausgelöst zb durch Timer-Überlauf oder wechselnden Pegel an Port ATmega-Datenblätter enthalten Liste der auf jeweiligen MCUs verfügbaren Interrupts Vorteil: Man muss nicht ständig selber prüfen, ob das auslösende Ereignis eingetreten ist Interruts aktivieren: sei Interruts deaktivieren: cli Interrupt-Service-Routine (ISR), die durch Interrupt ausgelöst wird, wird über Interrupt-Vektor festgelegt
44 Interrupts Interrupt-Vektor beginnt an Adresse 0x00 im Flash-Speicher Adressen enthalten rjmp-befehle, die Sprung an Startadresse der entsprechenden ISR veranlassen bei Eintreten eines Interrupts: Interrupts werden deaktiviert aktueller Befehl wird abgearbeitet, Programmzähler erhöht Wert des Programmzählers wird auf Stack gesichert Sprung an fest definierte Adresse im Interrupt-Vektor Ausführung des dortigen Sprungbefehls ISR muss idr mit Befehl reti enden reti lädt Rücksprungadresse von Stack in Programmzähler und aktiviert anschließend Interrupts (dh Stackpointer muss vor Ausführung von reti denselben Wert enthalten wie zu Beginn der ISR!)
45 Interrupts Interrupt-Vektor: Beispiel org 0x00 rjmp MAIN_LOOP ; wird bei Programmstart ausgeführt org OVF0addr rjmp TIMER0_OVERFLOW ; Timer-0-Überlauf TIMER0_OVERFLOW: [Interrupt-Behandlung] reti MAIN_LOOP: [Hauptprogramm, hier muss zb sei ausgeführt werden]
46 Interrupts Interrupt-Vektor: Anmerkungen Im Beispiel wird davon ausgegangen, dass nur der Timer-0-Interrupt aktiviert wurde Wurden andere Interrupts aktiviert, ohne entsprechende rjmp-befehle im Interrupt-Vektor einzutragen, treten Fehler auf Zur Sicherheit kann man an jeder Adresse im Interrupt-Vektor, die noch keinen rjmp-befehl enthält, den Befehl reti eintragen Wenn dann der zugehörige Interrupt ausgelöst wird, hat er keine Auswirkung
Sprungbefehle und Kontroll-Strukturen
Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrAssembler-Unterprogramme
Assembler-Unterprogramme Rolle des Stack Prinzipieller Ablauf Prinzipieller Aufbau Unterprogramme void main(void) int sub(int i) { { int i,k; return i*2; i = sub(13); } k = sub(14); } Wie macht man das
MehrEinfü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
MehrAtmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös
Atmega Interrupts Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Inhaltsverzeichnis Vorbereitung Was Sind Interrupts Interruptvektoren Software Interrupts Hardware Interrupts Quellen 2 Vorbereitung Rechner
MehrCore 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
MehrB1 Stapelspeicher (stack)
B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen
MehrTeil 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?
MehrSchritt Aktion Erläuterung 1 UBRR auf 25 setzen Baudrate auf 9600 TXEN-Bit von UCSRB auf 1 setzen
Das Attiny-Projekt Unterprogramme in Assembler 1 Unterprogramme Unterprogramme haben wir schon im Zusammenhang mit BASCOM kennen gelernt. Auch Assemblerprogramme können durch Unterprogramme strukturiert
MehrAtmel AVR für Dummies
Atmel AVR für Dummies fd0@koeln.ccc.de 29.12.2005 Übersicht 1 Hardware Kurzvorstellung Atmega8 Programmierkabel (Eigenbau vs. Kommerzlösung) Alternative: Bootloader (Programmieren via rs232) Software Speicher
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrGrundlegende 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
MehrAufbau eines Assembler-Programms
Aufbau eines Assembler-Programms. Assembler-Anweisungen (Direktiven) Einbindung von include-files Definition von Konstanten, Reservierung von Speicherplatz im RAM, 2. Was tun, wenn C Reset-Signal erhält
MehrName : Klasse : Punkte : Note :
ESI Semesterendprüfung 15.6.2009 Name : Klasse : Punkte : Note : Zeit: 12.50 bis 13.35 Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf die Rückseite
MehrRechnerarchitektur und Betriebssysteme (CS201): AVR-CPU und -Assembler
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.
Mehr1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige
1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige 1.9.1 Idee Bei der Programmentwicklung braucht man es ab und zu, dass man sich an bestimmten Stellen des Programms Variablenwerte anzeigen lässt. Bei
Mehr1.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen
.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen.7. Aufgabe Die beiden LEDs sollen abwechselnd blinken. Mit der bisherigen Lösung flackern sie nur (Beispiel: blink0.asm):. include /usr/share/avra/m8def.
MehrProcessorsTechnik 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
MehrDas Attiny-Projekt Der Bootloader 1
Das Attiny-Projekt Der Bootloader 1 Der Bootloader Bei unserer Attiny-Platine werden die Programme über die serielle Schnittstelle übertragen. Grundsätzlich wäre es möglich, hierzu auf die im Attiny-Mikrocontroller
MehrStack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET
Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET Stack, Stackpointer, UP Stack (Stapel, FIFO) wird benötigt UP-Ruf:
MehrZusammenfassung der Assemblerbefehle des 8051
Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach
MehrU5-2 Register beim AVR-µC
U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts
MehrTechnische Informatik I - HS 18
Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das
MehrTechnische 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
MehrUse 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
MehrPraktikum Automatisierungstechnik AP1
Praktikum Automatisierungstechnik AP 1 1 Versuch 1 Praktikum Automatisierungstechnik AP1 Einführung in die Prozessorarchitektur und Maschinenprogrammierung Einführung. Bekanntmachen mit einem neuen Mikrocontroller.
Mehr2.1 Atmega-Peripherie/Interrupts
2.1 Atmega-Peripherie/Interrupts 2.1.1 Situation Während LED2 fortlaufend blinkt, soll LED2 jederzeit sofort durch Tastendruck von T1 eingeschaltet werden können. Dazu muss man im Programm regelmäÿig nachsehen,
MehrÜbung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung
MehrKap.2 Befehlsschnittstelle. Prozessoren, externe Sicht
Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen
MehrComputersysteme. Stacks Anwendung in der Assembler-Programmierung
Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart
MehrMikrocomputertechnik. Unterprogramm
Unterprogramm Ein Teilproblem wird entweder zur mehrmaligen Verwendung oder zur Programmstrukturierung als Unterprogramm codiert. Ein Unterprogramm wird von einem übergeordneten Programm (Hauptprogramm)
MehrTECHNISCHE 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
MehrWer 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
MehrGdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm
U4 4. Übungsaufgabe U4 4. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-µC Register I/O Ports Interrupts AVR-Umgebung U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit
MehrSMP Übung 8 - Lösungsvorschlag
1. Aufgabe: A/D-Wandlermethode auswählen Eine analoge Eingangsgröße, die Temperatur, soll in dieser Aufgabe in ein digitales Ausgangssignal umgewandelt werden. Aus Rechnertechnologie 2 sind folgende Methoden
MehrMultitasking / 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
MehrMOP: Befehlsliste für den Mikrocontroller 8051
Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Befehlsliste für den Mikrocontroller 8051 Erläuterung der Operanden Operand A addr11 addr16 bit /bit C #data #data16 direct DPTR PC Ri Rn rel
MehrBefehlssatz 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
MehrRechnerarchitektur 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.
Mehr2
TINF Interrupts EDT-Referat Jürgen Schwarzbauer 2ANB 1995/96 Inhalt : Was ist ein Interrupt? Zweck von Interrupts Maskierbare und nicht maskierbare Interrupts Aufruf eines Interrupts Anwendung von Interrupts
MehrParallel-IO. Ports am ATmega128
Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher
MehrTechnische Informatik II Rechnerarchitektur
Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php
Mehr8. Beschreibung des Prozessors MSP 430
8. Beschreibung des Prozessors MSP 430 8.1 Die Eigenschaften des MSP 430 8.2 Die Register des MSP 430 8.3 Der Aufbau des Speichers 8.4 Interrupts 8.5 Der Watchdog Programmierkurs II Wolfgang Effelsberg
MehrDer Compiler von MikroForth
Das Attiny-Projekt Der Compiler von MikroForth 1 Der Compiler von MikroForth FORTH ist von der Struktur her eine einfache Sprache; deswegen ist es auch nicht schwer, die Funktionsweise unseres Forth-Compilers
MehrÜbungen zu Systemnahe Programmierung in C (SPiC)
Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Aufgabe4 Led Modul Wiederholung Konfiguration der Pins Hinweise zur Aufgabe
MehrAutomatisierungstechnik AP1. Aufgaben
AUTOMATISIERUNGSTECHNIK AP1 KLAUSUR VOM 29. 1. 2007 AUFGABEN SEITE 1 VON 3 Name: FH Dortmund Matr.-Nr.: FB Informations- und Elektrotechnik Automatisierungstechnik AP1 Klausur vom 29. 1. 2007 Aufgaben
MehrGerhard Paulus gp@gnomsoft.de
-------------------------------------------------------------- Assembler ab 0 und 1 8.10.2002 -------------------------------------------------------------- Gerhard Paulus gp@gnomsoft.de Copyright (c)
MehrForth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort
Vokabular für Attiny2313-Forth - 1 - Forth.voc Forth-Vokabular Stand: 01.11.2012 A: Assembler-Wort F: Forth-Wort C: Compiler-Wort. A gibt TOS auf Port B aus; (Datenrichtungsbits von Port B werden alle
MehrDas Attiny-Projekt Assemblieren 1
Das Attiny-Projekt Assemblieren 1 Assemblieren Um die Funktionsweise eines Assemblers besser verstehen zu können, wollen wir ein kleines Assemblerprogramm einmal von Hand assemblieren. Als Beispiel wählen
MehrBetriebssysteme Kap B: Hardwaremechanismen
1 Betriebssysteme Kap B: Hardwaremechanismen 2 Beispielprozessor Ein- / Ausgabe p[ ] ir Leitwerk pc Register a f sp Rechenwerk Speicher m[ ] Spezielle Register Flagregister f f.i: Interrupt-Enable-Flag
MehrUKW-Schatzkisterl Schöpfer: Alexander "Electronicfox" Fuchs
UKW-Schatzkisterl Schöpfer: Alexander "Electronicfox" Fuchs Mein Aufbau besteht aus folgenden Bauteilen: UKW-Radiomodul vom Conrad-Adventskalender 2012 mit TDA7088 Audioendstufe LM386N Mikrocontroller
MehrUnterprogramme mittels Stack (Forts.)
Unterprogramme mittels Stack (Forts.) gleiches Beispiel mit direkter Übergabe aller Parameter (8-Bit Wert a, 16-Bit Wert b, 16-Bit Ergebnis) durch call by value auf Stack: LDB a * Lade 8-Bit Wert a PSHS
Mehr1 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...
MehrWelche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt?
6.5 MMIX Befehle 291 Aufrufkonventionen Eine Aufrufkonvention (engl. calling convention) legt fest, wie einer Funktion Parameter übergeben werden und wie der Rückgabewert zurückgegeben wird. Damit spezifiziert
MehrMakros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.
U4 4. Übung U4 4. Übung Besprechung Aufgabe 2 Makros Register I/O-Ports U4.1 U4-1 Makros U4-1 Makros Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler
MehrDaniel 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
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 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach
MehrAdressierungsarten des 6809 (Forts.)
Adressierungsarten des 6809 (Forts.) Zusammenfassung zur indizierten Adressierung: 19 Beispiel-Programm 1 für 6809 6809-Assemblerprogramm zur Suche nach Leerzeichen (space, tab, return) in einem String:
MehrGrundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme
Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester 2016 Lorenz Schauer Mobile & Verteilte Systeme 12. Juli 2016 Agenda heute Grundlagen: Unterprogramme I Call-by-Value (CBV) vs. Call-by-Reference
MehrU23 2008 Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer
Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer Alexander Neumann e.v. http://koeln.ccc.de Köln, 1.9.2008 1 Musterlösungen Aufgabe 1 & 2 2 Taster entprellen
MehrNTB Druckdatum: InI II. Ausführung auf kleine Rechenleistung
MICROCONTROLLER Einführung Eigenschaften Steuer- und Regelungsaufgaben Simulation Emulation Vielfältige Peripheriemodule Ausführung auf Ausführung auf kleine Rechenleistung dem Host dem Zielsystem Kein
MehrTechnische Informatik I Übung 3: Assembler
Technische Informatik I Übung 3: Assembler Roman Trüb Computer Engineering Group, ETH Zürich 1 Lernziele Übung 3 Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Assembler Codeanalyse Aufgabe 2
MehrHeute nur MIPS-Praxis (4 Aufgaben)
Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen
MehrMikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -
Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen
MehrMICROCONTROLLER - BEISPIELE
MICROCONTROLLER - BEISPIELE Übung 1 - Das erste Assembler Programm Aufgabe 2 - Register setzen und subtrahieren /* * U1A2.asm * * Created: 22.02.2012 17:06:54 * Author: mmeschenmoser, kilkow */.INCLUDE
Mehr05. 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
MehrLösungen zum Kurs "Mikrocontroller Hard- und Software
Lösungen zum Kurs "Mikrocontroller Hard- und Software Gerhard Schmidt Kastanienallee 20 64289 Darmstadt http://www.avr-asm-tutorial.net Lösung Aufgabe 2 Aufgabe 2 sbi DDRB,PB0 2 Takte sbi PORTB,PB0 2 Takte
MehrTechnische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
MehrDie 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.
MehrOffenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
MehrRechnerarchitektur, Einführung in die Laborübungen
G. Kemnitz Institut für Informatik, TU Clausthal (RA-LabEinf.pdf) 20. Dezember 2017 1/18 Rechnerarchitektur, Einführung in die Laborübungen G. Kemnitz Institut für Informatik, TU Clausthal (RA-LabEinf.pdf)
MehrRechnerorganisation. Überblick über den Teil 13
Rechnerorganisation Teil 3 9. Juni 2 KC Posch Überblick über den Teil 3 Arbiter: Wie können sich 2 aktive Partner vertragen? Direkter Speicherzugriff: Ein Ko Prozessor zum Daten Schaufeln Die Verbesserung
MehrVorlesung Rechnerarchitektur
Vorlesung Rechnerarchitektur Sommersemester 2017 Carsten Hahn 8. Juni 2017 Agenda Grundlagen: Wiederholung Kontroll-Strukturen Stack-Speicher Unterprogramme I Unterprogramme II Call-by-Value (CBV) vs.
MehrU2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren
U Fortgeschrittene AVR-Programmierung U Fortgeschrittene AVR-Programmierung U-1 Externe Interrupts des AVR-μC Aufgabe Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi
MehrARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge
MehrRechnerarchitektur, Einführung in die Laborübungen
Rechnerarchitektur, Einführung in die Laborübungen G. Kemnitz 24. November 2016 Inbetriebnahme der Mikrorechnerbaudruppe 1. Anschluss 5V-Netzteil 2. Anschluss Programmer 3. Einschalter 4. Eingabeschalter
MehrU5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung. Synchronisation mit Unterbrechungsbehandlungen
U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung Interrupts volatile-variablen Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi des AVR U5.1 U5-1 Externe Interrupts
MehrU5 Fortgeschrittene AVR-Programmierung
U5 Fortgeschrittene AVR-Programmierung U5 Fortgeschrittene AVR-Programmierung Interrupts Synchronisation mit Unterbrechungsbehandlungen Stromsparmodi des AVR U5.1 U5-1 Externe Interrupts des AVR-μC U5-1
Mehr9. Die Adressierungsarten des MSP 430
9. Die Adressierungsarten 9.1 Übersicht über die Adressierungsarten 9.2 -Operanden 9.3 Indexregister mit Distanz 9.4 Symbolische (relativ zum ) 9.5 Absolute 9.6 Indirekte 9.7 Indirekte Adressierung mit
Mehr10. 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
MehrKontrollpfad der hypothetischen CPU
Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten
MehrEinführung Microcontroller
18. Januar 2011 Inhaltsverzeichnis 1 Einleitung 2 3 4 5 Was ist eigentlich ein Microcontroller? Microcontroller - Was ist das? Microcontroller enthalten: integrierte und gleichzeitig programmierbare Schaltungen,
MehrRechnerarchitektur 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
MehrKontrollpfad der hypothetischen CPU
Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten
Mehrx86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013
x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle
Mehr4 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
MehrRechnerarchitektur 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
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrDer von Neumann Computer
Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$
MehrProgrammierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13
Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13 Eine Einführung in Aufbau, Funktionsweise, Programmierung und Nutzen von Mikroprozessoren Teil II: Wat iss ene Bit, Byte un Word?
MehrAVR-Mikrocontroller in BASCOM programmieren, Teil 2
jean-claude.feltes@education.lu 1 AVR-Mikrocontroller in BASCOM programmieren, Teil 2 13. Interrupts 13.1 Externe Interrupts durch Taster Wenn Taster mittels Polling abgefragt werden, wie in Teil 1 beschrieben,
MehrTeil 2: Rechnerorganisation
Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung
MehrInstitut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.
Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.
MehrVon-Neumann-Architektur
Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..
MehrPIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
MehrE Mikrocontroller-Programmierung
E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden
MehrU3 3. Übung U3 3. Übung. Systemnahe Programmierung in C Übungen Moritz Strübe Universität Erlangen-Nürnberg Informatik 4, 2009 U3.fm
U3 3. Übung U3 3. Übung Besprechung Aufgabe 1 Pointer Register und Ports U3.1 U3-1 Zeiger U3-1 Zeiger 1 Einordnung Konstante: a 0110 0001 Variable: a Zeiger-Variable (Pointer): a char *p = &a; p U3.2 2
MehrBesprechung Aufgabe 1. Pointer. Register und Ports. SPiC - Ü U3.1
U3 3. Übung U3 3. Übung Besprechung Aufgabe 1 Pointer Register und Ports U3.1 U3-1 Zeiger U3-1 Zeiger 1 Einordnung Konstante: a 0110 0001 Variable: a Zeiger-Variable (Pointer): a char *p = &a; p U3.2 2
Mehr