Sprungbefehle und Kontroll-Strukturen

Größe: px
Ab Seite anzeigen:

Download "Sprungbefehle und Kontroll-Strukturen"

Transkript

1 Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1

2 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter (PC) 16 Bit Stack Pointer (SP) R16..R31 I T H S V N Z C X = R27:R26 Y = R29:R28 Z = R31:R30 Status- oder Flag- Register (8Bit, SREG) Doppel-Register für indirekte Adressierung (16Bit) Die Flags im Statusregister C Z N V S H T I Global Interrupt Enable: erlaubt, dass der C Interrupts erhält Bit Copy Storage: Flag zum Austausch von Bits zwischen Registern Half Carry Flag: zeigt übertrag zwischen Bit3 und Bit4 an Sign Bit, S = N V: zeigt negatives Vorzeichen an Two s Complement Overflow Flag: MSB beider Operanden war vor der Operation gleich und MSB Ergebnis ist anders Negative Flag: zeigt an, dass Ergebnis einer Operation negativ sein könnte (MSB ist 1) Zero Flag: zeigt an, dass Ergebnis einer Operation Null ist Carry Flag: zeigt an, dass bei einer Operation ein Überlauf oder ein Borrow in der höchsten Stelle (MSB) aufgetreten ist 2

3 Zweck des Statusregisters wird vom C automatisch verändert und zeigt den Zustand des Ergebnisses der letzten Operation an, die die Flags beeinflusst hat, z.b.: - Operation ergab 0 -> Z-Flag wird gesetzt - Operation ergab einen Überlauf im höchstwertigen Bit -> C- Flag wird gesetzt einzelne Bits im Statusregister können zu bestimmten Zwecken auch durch den Programmierer gesetzt oder zurückgesetzt t werden - Interrupts sollen erlaubt werden -> Programmierer setzt das Interrupt-Flag (Befehl sei set enable interrupt) Befehls-Dokumentation und Flags Bedeutung Beispiel AND Flag wird durch Befehl beeinflusst S, N, Z 0 Flag wird durch Befehl zurückgesetzt V 1 Flag wird durch Befehl gesetzt - Flag wird durch Befehl nicht beeinflusst I,T,H,C 3

4 Sprünge unbedingte bedingte Flag 1 oder 0? Vergleich jmp rjmp brcs/brcc (C) brmi/brpl (N) brvs/brvc (V) breq/brne (Z) brge/brlt brsh/brlo unbedingte Sprünge jmp k rjmp k k absoluter Sprung über gesamten adressierbaren Bereich des Codesegment (4M Befehlsworte) PC <- k (Befehlszähler mit neuer Adresse k laden) -> nicht für alle Controller verfügbar relativer Sprung im Bereich 2048 Befehlsworte zurück (-2K) bzw. 2K Befehlsworte vorwärts PC <- PC + k + 1 (-2K<= k < 2K) (Befehlszähler um k verändern) Sprungmarke statt direkter Adressangabe verwenden (flexibel bei Programmänderungen) 4

5 unbedingte Sprünge Beispiel.cseg.org 0 jmp main ;Was tun bei Reset? (reset vector). ; evtl. weitere Befehle main: ;Anwendungs-Code (summe = 1+1) ldi R16,1 ;summand 1 ldi R17,1 ;summand 2 add R16,R17 ;addieren catch: jmp catch ; Was tun, wenn Programm fertig? ;(Prozessor einfangen) jmp und rjmp sind im Beispiel austauschbar Bedingte Sprünge Relative Sprünge abhängig vom Zustand der Flags Syntax: sprungbefehl k ; k wohin Sprungweite: -64 <= k <= +63 Befehle - wenn wahr: PC PC+k+1 - wenn falsch: PC PC +1 Beispiel: ldi r17, 8 nochmal: dec r17 brne weiter ;springe, wenn r17 nicht 0 rjmp nochmal ;sonst dekrementiere r17 nochmal weiter: nop 5

6 Bedingte Sprünge Flag 1 oder 0? Flag 1 (set) 0 (cleared) Carry brcs brcc branch if carry set/cleared Negative brmi brpl branch if minus/plus Overflow brvs brvc branch if overflow set/cleared Zero breq brne branch if equal/not equal zero Bedingte Sprünge (Vergleiche) Ergebnis Vergleichsoperation (relevantes Flag): signed Rd >= Rr (S=0) brge branch if greater or equal Rd < Rr (S=1) brlt branch if less than unsigned Rd >= Rr (C=0) Rd < Rr (C=1) für beide Rd == Rr (Z=1) Rd!= Rr (Z=0) brsh (brcc) brlo (brcs) breq brne branch if same or higher branch hifl lower branch if equal branch if not equal Achtung! Für <= und > gibt es keine Befehle! 6

7 Bedingte Sprünge (Vergleich) Beispiel1: ldi r17, 16 ldi r18, 8 nochmal: lsr r17 ;r17=r17/2 cmp r17, r18 ;Vergleich r17-r18 setzt die Flags brsh nochmal ;springe, wenn r17>=r18 nop Beispiel2: Tausche Vergleichsoperanden bei <= ldi r17, 1 ldi r18, 8 nochmal: lsl r17 ;r17=r17/2 r17/2 cmp r18, r17 ;Vergleich r18-r17 setzt die Flags brsh nochmal ;springe, wenn r17<=r18 nop Bedingte Sprünge aus AVR_instruction_set.pdf Um die Vergleiche Rd > Rs bzw. Rd <= Rs mit den vorhandenen Befehlen (< bzw. >=) realisieren zu können, müssen die Operanden in der vorhergehenden Vergleichsoperation vertauscht werden. 7

8 Kontrollstrukturen Sprünge Schleifen unbedingte bedingte goto switch if while do-while for if then Vergleich r16==0 unsigned char r16=10; if( r16 == 0) aktion1(); aktion1 endif endif: ldi r16,10 cpi r16,0 brne endif call aktion1 nop 8

9 if then else Vergleich r16==0 unsigned char r16=1; if( r16 == 0) aktion1(); else aktion2(); aktion1 not_null aktion2 endif not_null: endif: ldi r16,1 cpi r16,0 brne not_null call aktion1 jmp endif call aktion2 nop if else if else Vergleich r16==10 Vergleich r16<10 aktion3 lower10 aktion2 is10 aktion1 endif unsigned char r16=9; if( r16 == 10) aktion1(); else if(r16 < 10) aktion2(); else aktion3(); ldi r16, 9 cpi r16, 10 breq is10 brlo lower10 call aktion3 jmp endif lower10: call aktion2 rjmp endif is10: call aktion1 endif: nop 9

10 switch-case Vergleich r16==10 Vergleich r16==9 aktion3 case9 aktion2 case10 aktion1 endswc unsigned char r16=9; switch(r16){ case 10: aktion1(); case 9: aktion2(); default: aktion3(); ldi r16, 9 } cpi r16, 10 breq case10 cpi r16, 9 breq case9 call aktion3 rjmp endswc case9: call aktion2 rjmp endswc case10: call aktion1 endswc: nop for-schleife r16=0 loop Vergleich r16<10 aktion0 r16++ endfor unsigned char r16; for(r1=0; r16<10; r1++) aktion(); ldi r16,0 loop: cpi r16,10 brsh endfor call aktion0 inc r16 jmp loop endfor: nop 10

11 r16 =10 Vergleich r16>=0 while (kopfgesteuerte Schleife) loop signed char r16=10; while( r16 >= 0) r16-=3; ldi r16,10 cpi r16, 0 loop: brlt endwhile r16-=3 subi r16,3 jmp loop endwhile endwhile: nop weiter subi beeinflusst die Flags, jmp beeinflusst sie nicht, darum kann Vergleich entfallen Vergleich vor der Schleife dient dazu, die Flags vor dem 1. Schleifendurchlauf richtig zu setzen do while (fußgesteuerte Schleife) r16=10 loop r16-=3 Vergleich r16>=0 signed char r16=10; do{ r16-=3; }while(r16 >= 0) ldi r16,10 loop: subi r16,3 brge loop nop weiter *Subtraktion beeinflusst die Flags, darum kann Vergleich entfallen 11

Assembler-Unterprogramme

Assembler-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

Mehr

1.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen

1.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.

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

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

Assembler Kontrollstrukturen

Assembler Kontrollstrukturen Assembler Kontrollstrukturen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Kontrollstrukturen 1/21 2008-04-03 Kontrollstrukturen

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

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

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

Rechnerarchitektur 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.

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

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

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

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

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

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

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

1 Eigenes zu Interrupts und...

1 Eigenes zu Interrupts und... 1 Eigenes zu Interrupts und... Abfragebetrieb = polling Unterbrechungsbetrieb 1. Interrupt = Unterbrechung 2. IRQ = Interrupt-Request = Interrupt-Anforderung = Unterbrechungsanforderung 3. ISR = Interrupt-Service-Routine

Mehr

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

Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt

Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt Informatik Rechnerinterne Vorgänge: Programmstrukt. (Lsg.) Gierhardt 1. Die Zahlen von 1 bis 10 sollen ausgegeben werden (a) absteigend mit einer do while-schleife 3 zehn DEF 10 ; int zehn = 10 4 Anfang

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

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

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

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

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

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

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

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

Unterprogramme mittels Stack (Forts.)

Unterprogramme 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

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Übung Simon Wacker Karlsruher Institut für Technologie Wintersemester 2015/2016 GBI Grundbegriffe der Informatik Karlsruher Institut für Technologie 1 / 13 Programmiersprachen

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

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

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Offenbar 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

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient. Für Menschen hingegen ist Binärformat schwierig

Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient. Für Menschen hingegen ist Binärformat schwierig 2.1 Einleitung Kodieren von Anweisungen im Binärformat für Maschinen quasi natürlich, zumindest effizient Hinsichtlich Zuverlässigkeit (digital vorteilhafter als analog) Für Menschen hingegen ist Binärformat

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

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 3. Vorlesung Inhalt Zahlensysteme Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag Binary Offset 1er-Komplement 2er-Komplement Addition und Subtraktion binär dargestellter

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

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

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

10. Der Befehlssatz des MSP 430

10. Der Befehlssatz des MSP 430 1. Der Befehlssatz des MSP 43 1.1 Befehlsformate 1.2 Zweiadressbefehle 1.3 Einadressbefehle 1.4 Sprungbefehle 1.5 Emulierte Befehle Programmierkurs II Wolfgang Effelsberg 1. Befehlssatz des MSP 43 1 1

Mehr

5. Programmierung in Maschinensprache

5. Programmierung in Maschinensprache 5. Programmierung in Maschinensprache (Assembler) 5.1 Beschreibung des Prozessors M 68000 5.2 Adressierungsarten des M 68000 5.3 Maschinenbefehle des M 68000 5.4 Unterprogrammtechnik 5. Maschinensprache

Mehr

PIC16 Programmierung in HITECH-C

PIC16 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

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

8. Intel IA-32 Prozessoren: Befehlsübersicht

8. Intel IA-32 Prozessoren: Befehlsübersicht 8. Intel IA-32 Prozessoren: Befehlsübersicht Ganzzahlarithmetik Kontrollstrukturen Bitmanipulation Schieben und Rotieren 20.10.2007 Meisel 1 8.1 Ganzzahl-Arithmetik 8.1.1 Übersicht add adc sub sbb imul

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

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

4 Formelsammlung C/C++

4 Formelsammlung C/C++ 4 Formelsammlung C/C++ 4.1 Datentypen Datentyp stdint.h type Bits Sign Wertebereich (unsigned) char uint8_t 8 Unsigned 0.. 255 signed char int8_t 8 Signed -128.. 127 unsigned short uint16_t 16 Unsigned

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

"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

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Sequenz (Aneinanderreihung von Anweisungen)

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

1.9 Atmega-Programmierung in ASM/LED-Ziffernanzeige

1.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

Mehr

KOP / FBS - Programmierung

KOP / FBS - Programmierung KOP / FBS - Programmierung Programmieren in Anweisungsliste Programmieren in strukturierten Text Programmieren in Kontaktplan Programmieren in Funktionsbausteinsprache KOP Programmierung (1) 2 1 Neues

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

Systemprogrammierung (37-023)

Systemprogrammierung (37-023) Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozenten: Thomas Stricker Roman Geus WebSite: www.cs.inf.ethz.ch/37-023 Begleit-/Textbuch: R. Paul: SPARC

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

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 5. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

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

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 27 4. Vorlesung Inhalt Binäre Darstellung von Integer-Zahlen Vorzeichen-Betrag 2er-Komplement BCD Addition und Subtraktion binär dargestellter Zahlen Carry und Overflow Little Endian

Mehr

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78 32 Bit Konstanten und Adressierung Grundlagen der Rechnerarchitektur Assembler 78 Immediate kann nur 16 Bit lang sein Erinnerung: Laden einer Konstante in ein Register addi $t0, $zero, 200 Als Maschinen

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

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

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Aufbau des Speichers. Interrupt Vektoren. 0xFFE0-0xFFFF. 16 Adressen f. Unterprog. ca. 60 kbyte Flash-ROM für Firmware, Programme, Daten, Tabellen

Aufbau des Speichers. Interrupt Vektoren. 0xFFE0-0xFFFF. 16 Adressen f. Unterprog. ca. 60 kbyte Flash-ROM für Firmware, Programme, Daten, Tabellen 16 Adressen f. Unterprog. Wird i.d.r. einmal vor Inbetriebnahme beschrieben, kann jedoch in 512 Byte Bänken während Betr. verändert werden. Zwei kl. Bänke f. Programm. via Scatt.Fl. Nur 2kB schnelles RAM

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. Hörerstatus: Betreuer:

Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. Hörerstatus: Betreuer: Bitte hier unbedingt Matrikelnummer und Adresse eintragen, sonst keine Bearbeitung möglich. FERNUNIVERSITÄT - Gesamthochschule - EINGANG Postanschrift: FernUniversität, D-58084 Hagen Name, Vorname INF

Mehr

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Lö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

Mehr

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen

Mehr

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Prozessorarchitektur. Sprungvorhersage. M. Schölzel Prozessorarchitektur Sprungvorhersage M. Schölzel Inhalt Sprungvorhersage statische Methoden dynamische Methoden Problem Fetch-Phase Befehlswarteschlange Speicher b? Neue Adresse für noch nicht bekannt

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

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

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

Grundbegriffe der Informatik Tutorium 5

Grundbegriffe der Informatik Tutorium 5 Grundbegriffe der Informatik Tutorium 5 Tutorium Nr. 16 Philipp Oppermann 2. Dezember 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

U4 Grundlagen der C-Programmierung

U4 Grundlagen der C-Programmierung U4 Grundlagen der C-Programmierung U4 Grundlagen der C-Programmierung Makros Enums und Typedefs Deklaration und Definition Compileroptimierungen U4.1 U4-1 Makros U4-1 Makros Makros sind Textersetzungen,

Mehr

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Aneinanderreihung von Anweisungen (Sequenz)

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

C-Propädeutikum Anweisungen

C-Propädeutikum Anweisungen C-Propädeutikum Anweisungen Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann Ausdrücke Institut

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

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

Atmega 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

Mehr

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.) ARM: Befehlssatz (Forts.) Befehl SWI zum Auslösen eines Software-Interrupts: Instruktionsformat: Ausführung von SWI überführt CPU in den supervisor mode (nach Retten des PC in r14_svc und des CPSR in SPSR_svc)

Mehr

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.) ARM: Befehlssatz (Forts.) Befehl SWI zum Auslösen eines Software-Interrupts: Instruktionsformat: Ausführung von SWI überführt CPU in den supervisor mode (nach Retten des PC in r14_svc und des CPSR in SPSR_svc)

Mehr

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

AVR-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,

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration: Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Tag 2 Eingabe und Interrupts

Tag 2 Eingabe und Interrupts Tag 2 Eingabe und Interrupts 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Taster Direkt an Portpin angeschlossen (etwa PINB0, PIND3) Pull-Up-Widerstände einschalten!

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

21. Februar Name:. Vorname. Matr.-Nr:. Studiengang

21. Februar Name:. Vorname. Matr.-Nr:. Studiengang Klausur 21. Februar 2011 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen sind ausschließlich Schreibutensilien,

Mehr