1 Eigenes zu Interrupts und...

Ähnliche Dokumente
TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

Zusammenfassung der Assemblerbefehle des 8051

Einführung in AVR-Assembler

Core und Speicher des ATmega16

Einführung in AVR Assembler

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

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

Der Assembler-Befehlssatz

Einführung in die Informatik

HC680 PROGRAMMER'S REFERENCE MANUAL

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

1 Assembler. 2 LED-Steuerung

Technische Informatik 2: Addressierung und Befehle

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

Assembler-Programmierung

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

Instruktionssatz-Architektur

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

B1 Stapelspeicher (stack)

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt.


Mikroprozessor als universeller digitaler Baustein

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

13 Programmierbare Speicher- und Logikbausteine

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

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

Gerhard Paulus

Die Mikroprogrammebene eines Rechners

MikroController der 8051-Familie

Arithmetische und Logische Einheit (ALU)

1. Inhaltsverzeichnis

Mikrocontroller-Programmierung

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

Daniel Betz Wintersemester 2011/12

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

Funktionaler Aufbau eines Computers Untersuchung von Delphi-Compilaten

Assembler - Einführung 1. Teil. Vorstellung der wichtigsten Grundbegriffe und Grundkenntnisse sowie der wichtigsten Hardwarekomponenten

Atmel AVR für Dummies

2. Einführung/Assembler Programmierung. 2.1 Einführung Übersicht

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

Der 8086/88 als Rechenkünstler

Teil 1: Digitale Logik

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Computer Architektur

6.6 Personal-Computer PC und Intel 80x86-Prozessoren.

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

7. Aufbau und Arbeitsweise einer mikroprogrammierten CPU

U Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer

Der Toy Rechner Ein einfacher Mikrorechner

Technische Informatik 2 Adressierungsarten

Teil 2: Rechnerorganisation

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Grundlagen der Rechnerarchitektur

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

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

MSP 430. Einführung. Was kann er? Hauptthemen. Wie sieht er aus? 64 / 100 polig. Was kann er? MSP 430 1

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

Befehlssatz AVR RISC Controller

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

Rechnerarchitektur und Betriebssysteme (CS201): Peripheriebausteine, IO, Interrupts und Timer

Klausur zur Mikroprozessortechnik

Assembler - Einleitung

Hinweise 80x86-Architektur

Der MS-DOS Standardmonitor und Debugger DEBUG

Rechnerstrukturen Winter WICHTIGE SCHALTNETZE. (c) Peter Sturm, University of Trier 1

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

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Assembler DOS (Beta 1) Copyright 2000 Thomas Peschko. Assembler II - DOS. ASSEMBLER Arbeiten mit Dateien und Daten.

1.7 Assembler Programmierung

Tag 2 Eingabe und Interrupts

3 Rechnen und Schaltnetze

Hardwareaufbau der Mikrocontroller der 51er -Familie

Programmiermanual MINILOG. Programmbeispiele. Ansteuerung über RS 232 Schnittstelle (GW-BASIC)

x86 Open Source Virtualisierungstechniken Thomas Glanzmann

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

Bitte in Druckschrift ausfüllen: Nachname: Vorname: Fachbereich: Matrikelnummer: Geheimwort: Bitte nicht ausfüllen:

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

Mikrocomputertechnik. Einadressmaschine

Betriebssysteme Teil 6: Hardware-Schicht II

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Betriebssysteme Kap B: Hardwaremechanismen

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Rechnerarchitektur und Betriebssysteme (CS201): Architektur, ALU, Flip-Flop

$NOMOD51 $INCLUDE (reg515.inc) ; Ein Zeichen auf Tastendruck S1 senden...

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Ein- Ausgabeeinheiten

Welches Register wird für was verwendet?

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung

Grundlagen der Rechnerarchitektur

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

AVR-Mikrocontrollertechnik

ARCADE IC-LISTE Stand:

Prozessor HC680 fiktiv

Shangrila. One Instruction Set Computer

Transkript:

1 Eigenes zu Interrupts und... Abfragebetrieb = polling Unterbrechungsbetrieb 1. Interrupt = Unterbrechung 2. IRQ = Interrupt-Request = Interrupt-Anforderung = Unterbrechungsanforderung 3. ISR = Interrupt-Service-Routine = Interrupt-Handler = Unterbrechungsroutine = Unterbrechungsbehandlung = Interrupt-Behandlungsprogramm = Prozedur zur Unterbrechungsbehandlung 4. Interrupt-Nummer 5. Interrupt-Vektor 6. Interrupt-Vektor-Tabelle 7. Interrupt-Quelle 8. Interrupt-Controller = Unterbrechungs-Controller 9. Eingang für Unterbrechungen an der CPU 10. Unterbrechungssignal 11. Unterbrechungswunsch 12. Rückkehr von der Unterbrechung = return from interrupt - RETI 13. mehrere Unterbrechungen 14. Unterbrechungen sperren = interrupt disabled 15. Prioritäten für jeden Unterbrechungswunsch 16. Software-Unterbrechungen (traps) 17. Fehler: Ausnahme = exception 18. Systemaufrufe = system calls ISR Interrupt-Service-Routine, Interrupt-Handler: Routine Programm Prozedur Behandlung Handler Unterbrechung Interrupt Interrupt ist hängend (pending): Pending-Bit Interruptleitung INT Quittungssignal (INTA, Interrupt-Acknowledge) 1

Controller = Gerätesteuerung Geräte Gerätetreiber, Treiber Gerätetreiber, Controller und Gerät = virtuelles Gerät Datenausgangsregister (data-out) Dateneingangsregister (data-in) Statusregister (status) Kontrollregister (control) Interrupts = Unterbrechungen/Polling Interrupt-Controller Interrupt-Controller 8259 oder PIC 8259A Eingänge: 8 Eingänge IR0 bis IR7 An jedem Eingang hängt ein Gerät IR0 höchste Priorität, IR7, niedrigste Ausgängen: INT angeschlossen an INTR der CPU INTA von CPU und Controller, verbunden D0 bis D7 mit den acht niederwertigsten Leiterbahnen des Datenbusses PIO (Programmed IO = Programmierter I/O = Prozessorgesteuerte I/O) Memory Mapped I/O = MMIO = Speicherbezogene Adressierung Port Mapped I/O = I/O-Mapping = Port-Maped I/O = Isolated I/O IN OUT Intel Speicherraum mit max. 64 KByte I/O-Bereich = E/A-Bereich (im Gerätemanager) I/O-Ports in Hexadezimaler Schreibweise Parallel: 0x378-0x37F VGA: 0x3B0 Tastatur; 0x60 und 0x64 DMA (Direct Memory Access) DMA Single-Word DMA = Einzelwort-DMA(-Modus) Multi-Word DMA = Multiwort-DMA(-Modus) Ultra DMA DMA-Controller 2

2 Assembler-Befehle des 8086 1. Transportbefehle 2. Mathematische Befehle 3. Schiebebefehle 4. Stringbefehle 5. Sprünge und Schleifen 6. Verschiedene Befehle 1. Transportbefehle MOV LEA XCHG 2. Mathematische Befehle ADD ADC SUB SBB DIV MUL DEC INC NEG IDIV IMUL Logische Befehle AND OR XOR NOT 3. Schiebebefehle SHL = SAL SHR 4. Stringbefehle LODS, LODSB, LODSW, LODS STOS, STOSB, STOSW, STOSD MOVS, MOVSB, MOVSW, MOVSD 3

REP 5. Sprünge und Schleifen JMP Jxx: (a) JE (Jump if Equal) (b) JNE (Jump if Not Equal) (c) JZ (Jump if Zero) (d) JNZ (Jump if Not Zero) (e) JG (Jump if Greater) (f) JNG (Jump if Not Greater) (g) JGE (Jump if Greater or Equal) (h) JNGE (Jump if Not Greater or Equal) (i) JL (Jump if Less) (j) JNL (Jump if Not Less) (k) JLE (Jump if Less or Equal) (l) JNLE (Jump if Not Less or Equal) (m) JC (Jump if Carry) (n) JNC (Jump if Not Carry) (o) JB (Jump if Below) (p) JNB (Jump if Not Below) (q) JBE (Jump if Below or Equal) (r) JNBE (Jump if Not Below or Equal) (s) JA (Jump if Above) (t) JNA (Jump if Not Above) (u) JAE (Jump if Above or Equal) (v) JNAE (Jump if Not Above or Equal) (w) JCXZ (Jump if CX is Zero) (x) JO (Jump if Overflow) (y) JNO (Jump if Not Overflow) CMP CALL RET LOOP 6. Verschiedene Befehle BSWAP CLC und STC CLI und STI IN OUT INT 4

TEST PUSH POP PUSHA und POPA PUSHF und POPF 3 Register des 8086 1. Allzweckregister (a) AX, AH, AL, Akkumulator (b) BX, BH, BL, Basisregister (c) CX, CH, CL, Zählregister (Count Register) (d) DX, DH, DL, Datenregister 2. SP, Stapelzeiger (Stack Pointer) 3. BP, Basiszeiger (Base Pointer) 4. SI, Quellindex (Source Index) 5. DI, Zielindex (Destination Index) 6. Segmentregister (a) CS, Code-Segment (b) DS, Daten-Segment (c) SS, Stack-Segment (d) ES, Extra-Segment 7. Flagregister (Kennzeichen) Flagregister, Bits: 1. CF, Übertrags-Flag, Carry-Flag 2. PF, Paritäts-Flag, Parity-Flag 3. AF, Hilfsübertrag-Flag, Auxiliary Carry-Flag 4. ZF, Null-Flag, Zero-Flag 5. SF, Vorzeichen-Flag, Sign-Flag 6. TF, Einzelschritt-Flag, Trap-Flag 7. IF, Unterbrechungs-Flag, Interrupt-Enable-Flag 8. DF, Richtungsf-Flag, Direction-Flag 9. OF, Überlauf-Flag, Owerflow-Flag 5

4 Adressierungsarten beim 8086 1. Direktwertadressierung: MOV AX, 0xff 2. Registeradressierung: MOV AX, BX 3. Direkte Adressierung:.DATA Var1 DB? Var2 DW? mov bl, Var1 mov ax, var2 4. Indirekte Adressierung: mov [bx], r 5. Indizierte Adressierung: cmp dl, [bx+si] 6

5 Assembler-Befehle des AVR-Mikrocontrollers Transportbefehle: ld: Load Indirect from Data Space to Register using Index X ldi: Load Immediate ldi r31, 0x0f lds: Load from Data Space mov: Copy Register st: Store Indirect From Register to Data Space using Index X sts: Store Direct to Data Space Mathematische Befehle: adc: Add with Carry add sbc: Subtract with Carry sub: Subtract without Carry mul dec: Decrement inc: Increment neg: Two s Complement and or: Logical Or eor: Exclusive OR Sprungbefehle breq: Branch if Equal brne: Branch if Not Equal brge: Branch if Greater or Equal brlo: Branch if Lower brlt: Branch if Less Than brsh: Branch if Same or Higher brmi: Branch if Minus brpl: Branch if Plus brvc: Branch if Overflow is cleard brcc: Branch if Carry Cleared brcs: Branch if Carry Set brhc: Branch if Half Carry is Set call: cp: Compare 7

jmp: Jump rcall: Relative Call to Subroutine ret: Return from Subroutine reti: Return from Interrupt rjmp: Relative Jump Schiebebefehle: Verschiedene Befehle clr r31 clc: Clear Carry Flag clh: Clear Half Carry Flag in: Load an I/O Location to Register in r31, PIND out: Store Register to I/O Location out PORTD, r31 pop: Pop Register from Stack push: Push Register on Stack swap: Swapp Nibbles nop: No Operation 6 Register SREG: Statusregister C: Carry Flag Z: Zero Flag N: Negative Flag... H: Half Carry Flag 8

7 Speicher-Typen Liste: 1. Halbleiter-Speicher (a) Festwertspeicher ROM i. einmal programmierbar: A. ROM, PROM ii. mehrfach programmierbar, PROM A. mit UV-Licht löschbar (EPROM) B. elektrisch löschbar (EEPROM) (b) Schreib-Lesespeicher RAM RAM SRAM DRAM ROM PROM EPROM EEPROM EAPROM i. statisches RAM ii. dynamisches RAM Flash-EPROM 8 Programmierbare Logik-Bausteine PAL (Programmable Array Logic, programmierbare Logik-Matrix) GAL (Gate Array Logic) 9 TTL-Schaltkreise 1. 74ALS: Advanced-Low-Power-Schottky 2. 74F: Fast-TTL 3. 74LS: Low-Power-Schottky-TTL 4. 74AS: Advanced-Schottky-TTL 5. 74L: Low-Power-TTL 6. 74S: Schottky-TTL 7. 74: TTL (Standard-TTL) 9

10 Liste der TTL-Schaltkreise NAND-Gatter: 7400, 4 NAND-Gatter mit 2 Eingängen 7410, 3 NAND-Gatter mit 3 Eingängen 7420, 2 NAND-Gatter mit 4 Eingängen 7430, 1 NAND-Gatter mit 8 Eingängen 74133, 1 NAND-Gatter mit 13 Eingängen NOR-Gatter: 7402, 4 NOR-Gatter mit 2 Eingängen 7427, 3 NOR-Gatter mit 3 Eingängen 7428, 4 NOR-Gatter mit 2 Eingängen UND-Gatter 7408, 4 UND-Gatter mit 2 Eingängen 7411, 3 UND-Gatter mit 3 Eingängen 7421, 2 UND-Gatter mit 4 Eingängen ODER-Gatter: 7432, 4 ODER-Gatter mit 2 Eingängen Antivalenz-Gatter (XOR) 7486, 4 XOR-Gatter mit 2 Eingängen Inverter (Negation) 7404, 6 Inverter Arithmetik-Funktion: 7483, 4-bit-Volladdierer 7485, 4-bit-Komperator 74181, 4-bit-Arithmetik-Logikeinheit (ALU) 74182, 4-bit-Parallel-Übertragungseinheit 74183, Zwei 1-bit-Volladdierer Multiplexer: 74151, 1-zu-8-Multiplexer 74153, Zwei 1-zu-4-Multiplexer 74157, Vier 2-zu-1-Multiplexer 74158, Vier 2-zu-1-Multiplexer mit invertierenden Ausgängen Decoder/Demultiplexer: 7442, BCD-zu-Dezimal-Decoder 10

11 Anschluss Anschluss der Taster (Input) Anschluss der LED s (Output) 11