8. Intel IA-32 Prozessoren: Befehlsübersicht

Größe: px
Ab Seite anzeigen:

Download "8. Intel IA-32 Prozessoren: Befehlsübersicht"

Transkript

1 8. Intel IA-32 Prozessoren: Befehlsübersicht Ganzzahlarithmetik Kontrollstrukturen Bitmanipulation Schieben und Rotieren Meisel 1

2 8.1 Ganzzahl-Arithmetik Übersicht add adc sub sbb imul mul idiv div inc dec neg cmp Binäre Addition Binäre Addition mit Berücksichtigung von Überträgen Binäre Subtraktion Binäre Subtraktion mit Berücksichtigung von Überträgen Multiplikation von signed Integer-Werten Multiplikation von unsigned Integer-Werten Division von signed Integer-Werten Division von unsigned Integer-Werten Incrementieren Decrementieren Negieren gemäß 2-er-Komplement Vergleich zweier Integer-Operanden Meisel 2

3 8.1.2 Addition / Subtraktion / Vergleich Befehle: add %reg, %reg mem, %reg %reg, mem $imm, %reg $imm, mem sub %reg, %reg mem, %reg %reg, mem $imm, %reg $imm, mem Die Befehle setzen die Flags Z, N, C, V abhängig vom Ergebnis (0 oder 1). Reihenfolge : Ziel = Ziel Quelle Der Vergleichsoperator (cmp) führt ebenfalls eine Subtraktion aus, setzt aber im Gegensatz zur Subtraktion lediglich die Flags und verändert die Registerinhalte nicht. Beispiele: add $15, %eax [eax(0:31)] [eax(0:31)] + 15 add %bx, %ax [eax(0:15)] [eax(0:15)] + [ebx(0:15)] sub $15, %eax [eax(0:31)] [eax(0:31)] - 15 sub (%ebx), %al [eax(0:7)] [eax(0:7)] - [M([ebx])(0:7)] Meisel 3

4 8.1.3 Multiplikation von unsigned (mul) / signed Werten (imul) Befehle: mul %reg mem imul %reg mem %reg, %reg mem, %reg $imm, %reg In der ein-operanden -Form wird ein Register/Speicher mit al, ax oder eax multipliziert und das Ergebnis in ax, dx:ax oder edx:eax abgelegt. In der zwei-operanden-form muss der Datentyp des Zielregisters gleich dem des Quellregisters/-speichers sein. N, Z, C und V werden gesetzt (je nach Ergebnis 0 oder 1) Beispiele: imul %bx # [dx:ax] [ax] * [bx] imul %ecx # [edx:eax] [eax] * [ecx] imul $12,%ebx # [ebx] [ebx] * 12 imul %ecx,%ebx # [ebx] [ebx] * [ecx] imul 0x1000,%bx # [bx] [bx] * [M(0x1000)] mul %cx # [dx:ax] [cx] * [ax] mulw 0x1000 # [dx:ax] [ax] * [M(0x1000)] Meisel 4

5 8.1.4 Division von unsigned/signed Werten (div / idiv) Befehle: div %reg mem idiv %reg mem Operanden Dividend Divisor Quotient Rest max. Quot. word/byte ax reg/mem 8 al ah 255 long/word dx:ax reg/mem16 ax dx quad/long edx:eax reg/mem 32 eax edx N, Z, C und V werden gesetzt (je nach Ergebnis 0 oder 1) Beispiele: idiv %bx # [ax] [dx:ax] / [bx] idiv %ecx # [eax] [edx:eax] / [ecx] Meisel 5

6 ÜBUNG: Arithm. Ausdruck Schreiben Sie ein Programm, welches den folgenden Ausdruck berechnet: (X 2 + Y 2 )/(X-Y) - X und Y seien zwei positive Zahlen, - alle Berechnungen sollen im Word-Format ausgeführt werden, - Bereichsüberprüfungen sind nicht notwendig, - das Ergebnis soll im ax-register stehen, der Divisionsrest im dx-register. Initialisieren Sie X = 60 D und Y = 53 D. Welche Restriktionen gelten für X und Y? Meisel 6

7 8.2 Kontrollstrukturen Übersicht Zweck von Kontrollstrukturen: - Fortführung des Programms an anderer Stelle ohne weitere Bedingung = unbedingter Sprung - Fortführung des Programms an anderer Stelle, wenn eine bestimmte Bedingung erfüllt ist = bedingter Sprung Meisel 7

8 8.2.1 Übersicht: Unbedingte Sprungbefehle (Fortsetzung) Befehl: jmp [*]<Programm-Marke> Wirkung: Die Programmausführung wird an der angegebenen Stelle fortgesetzt. Der Programmzähler wird auf die Adresse des Sprungzieles gesetzt. Es gibt verschiedene Sprungvarianten: - Abhängig von der Sprungweite (+/- 2 7, +/- 2 15, +/ ) wird die Sprungweite mit 8 Bit (short-jump), 16 oder 32 Bit (near-jump, relative) codiert. - Durch ein * vor der Sprungmarke kann die Adresse des Sprungziels auch absolut angegeben werden (near-jump, absolute). Beispiele: jmp Lab1 # relative jump (short/near)... Lab1: mov$1, %eax jmp *Lab1... Lab1: mov$1, %eax # absolute jump (near) Meisel 8

9 8.2.1 Übersicht: Bedingte Sprungbefehle (Fortsetzung) Befehle: jcc.x [*]<Programm-Marke> Wirkung: Bedingte Sprünge erlauben die Verzweigung der Programmausführung in Abhängigkeit von Bedingungen (Condition-Codes). Es gibt eine Vielzahl von bedingten Sprungbefehlen, die sich durch die Buchstabenkombination cc in obigem Befehlscode unterscheiden. Sprungvarianten wie bei jmp Meisel 9

10 8.2.1 Übersicht: Bedingte Sprungbefehle (Fortsetzung) Sprungbefehl Bedeutung Verzweigt,wenn jcc Branch on Test einzelner Condition-Bits jnc Carry Clear C = 0 jc Carry Set C = 1 jne Not Equal Z = 0 je Equal Z = 1 jno Overflow Clear V = 0 jo Overflow Set V = 1 jns Plus N = 0 js Minus N = 1 Test mehrer Condition-Bits (signed / unsigned-operationen) jg Greater Z or (N xor V) = 0 jl Less N xor V = 1 jge Greater or Equal N xor V = 0 jle Less or Equal Z or (N xor V) = 1 ja Above C or Z = 0 jbe Below or Equal C or Z = Meisel 10

11 8.2.2 Anwendung bedingter Sprungbefehle Sehr häufig (aber nicht zwingend) werden Sprungbefehle in Verbindung mit dem Compare-Befehl verwendet. cmp S,D ; Setzen der Condition-Codes gemäss des ; Ergebnisses der Operation [D] [S] jcc Marke ; Verzweigt, wenn cc gilt Sprungbefehle können aber auch in Verbindung mit anderen Befehlen verwendet werden, sofern diese Auswirkungen auf die verwendeten Flags haben (Verschiebebefehle, log. Befehle, Schiebe- und Rotationsbefehle,. ) Meisel 11

12 ANMERKUNG Muß bei Vergleichen zwischen signed und unsigned unterschieden werden? JA!! Beispiel: 4-bit-Zahl unsigned Interpretation: 1111 B > 0111 B (15 D > 7 D ) signed Interpretation: 1111 B < 0111 B (-1 D < 7 D ) Meisel 12

13 8.2.3 Bedingte Sprungbefehle für unsigned-vergleiche mit cmp cmp Op1, Op2 ;geht dem Sprungbefehl voraus Sprungbefehl Sprung, wenn oder anders Bcc gilt gesagt jc (carry set) Op2 - Op1 < 0 Op2 < Op1 jbe (below or equal) Op2 - Op1 <= 0 Op2 <= Op1 jz (equal, d.h. if zero) Op2 - Op1 = 0 Op2 = Op1 jnz (not equal, d.h. in not zero) Op2 - Op1 <> 0 Op2 <> Op1 jnc (carry clear) Op2 - Op1 >= 0 Op2 >= Op1 ja (above) Op2 - Op1 > 0 Op2 > Op Meisel 13

14 8.2.4 Bedingte Sprungbefehle für signed-vergleiche mit cmp cmp Op1, Op2 ;geht dem Sprungbefehl voraus Sprungbefehl Sprung wenn oder anders Bcc gilt gesagt jl (less than) Op2 - Op1 < 0 Op2 < Op1 jle (less or equal) Op2 - Op1 <= 0 Op2 <= Op1 je Op2 - Op1 = 0 Op2 = Op1 jne Op2 - Op1 <> 0 Op2 <> Op1 jge (greater or equal) Op2 - Op1 >= 0 Op2 >= Op1 jg (greater than) Op2 - Op1 > 0 Op2 > Op Meisel 14

15 kleiner Exkurs zur strukturierten Programmierung (s. Kap ff.) Meisel 15

16 8.2.5 Implementierung einfacher Verzweigungen if (Bedingung) then Anweisungsfolge 1 else Anweisungsfolge 2 endif ja Bedingung nein Anweisungs- Anweisungsendif folge 1 folge 2 Implementierungsschema 1 Implementierungsschema 2 (direkte Bed-Auswertung) (negierte Bed-Auswertung) if-nn: then-nn: else-nn: endif-nn: Auswertung der Bedg. J bed then-nn JMP else-nn Anweisungsfolge 1 JMP endif-nn Anweisungsfolge 2 if-nn: then-nn: else-nn: endif-nn: Auswertung der Bedg. J not bed else-nn Anweisungsfolge 1 JMP endif-nn Anweisungsfolge Meisel 16

17 BEISPIEL: einfache Verzweigung A < B J X:= B X:= A if (A < B) then X:= B else X:= A end-if A:.word 13 B:.word 55 X:.word 1 mov A, %ax # if (A < B) if_01: cmp B, %ax # (A B) >= 0? jge else_01 # Sprung, wenn A >= B # A < B then_01: mov B, %ax mov %ax, X # X := B jmp endif_01 # A >= B else_01: mov A, %ax mov %ax, X # X := A endif_01: Meisel 17

18 8.2.6 Implementierung von Schleifen while (Laufbedingung) do Anweisungsfolge endwhile Laufbedingung Anweisungsfolge repeat Anweisungsfolge until (Abbruchbedingung) Anweisungsfolge Abbruchbedingung while-nn: do-nn: endwhile-nn: Auswertung der Bedg. J bed do-nn JMP endwhile-nn Anweisungsfolge JMP while-nn repeat-nn: until-nn: endrepeat-nn: Anweisungsfolge Auswertung der Bedg. J bed endrep-nn JMP repeat-nn Meisel 18

19 8.2.7 Implementierung von Zählschleifen for lfv:= Startwert step Schrittwert until Endwert do Anweisungsfolge enddo for-nn: until-nn: do-nn: Laufvariable auf Startwert setzen Laufvariable auf Endwert testen J lfv >= Endwert enddo-nn Anweisungsfolge step-nn: enddo-nn: Laufvariable um Schrittwert erhöhen JMP until-nn Meisel 19

20 BEISPIEL: Implementierung von Zählschleifen for lfv:= 1 step 1 until 10 do sum:= sum+1 enddo lfv:= 1 lfv >= 10 false sum:= sum+1 lfv:= lfv+1 true for_01: # --- INITIALISIERUNG mov $1, %ax # [ax] lfv mov $10, %bx # [bx] Endw until_01: # --- PRÜFUNG DER ABBRUCHBEDINGUNG --- cmp %bx, %ax # (lfv Endw.) >= 0? jge enddo_01 # Sprung wenn lfv >= Endw do_01: # --- ANWEISUNGSFOLGE add $1, %cx # sum=sum + 1 step_01: # --- INCREMENT DER LAUFVARIABLEN add $1, %ax # lfv = lfv + 1 jmp until_01 enddo_nn: Meisel 20

21 ÜBUNG: Zeichen zählen Gegeben sei ein String, der mit einer 0 abgeschlossen ist. Es ist ein Assemblerprogramm zu schreiben, welches die Anzahl der a in diesem String zählt. Gehen Sie wie folgt vor: 1. Pseudocode des Programms erstellen. 2. Assemblerprogramm erstellen. Register eax soll als Zeichenzähler verwendet werden Meisel 21

22 ÜBUNG: Stringmanipulation Es soll ein Assemblerprogramm geschrieben werden, mit dem ein String wie folgt bearbeitet wird: 1. Alle Zahlen sollen durch eine 1 ersetzt werden. 2. Alle anderen Zeichen sollen durch eine 0 ersetzt werden. Beispiel: Aus abb12xauo99 soll werden: Meisel 22

23 8.3 Bitmanipulation Logische Bitoperationen AND, OR, XOR AND = Ergebnis ist 1, wenn beide Operanden 1 sind. OR = Ergebnis ist 1, sobald mindestens einer der beiden Operanden 1 ist. XOR = Ergebnis ist 1, wenn genau einer der beiden Operanden 1 ist. Op AND OR XOR Op Erg Meisel 23

24 8.3.2 Anwendungsbeispiele Programmierung von Ein-/Ausgabe-Karten/Bausteinen/Geräten Relaiskarten Digital-I/O-Karten Schrittmotorkarten ADC-Karten (Analog-Digitalwandler) Interruptcontroller Signalverarbeitung/Bildverarbeitung Invertieren Graustufenreduktion Überlagerung von Bild und Grafik Zufallszahlenerzeugung Datensicherung (CRC-Check) Verschlüsselung Meisel 24

25 8.3.3 Befehle zur Bitmanipulation Die IA-32-Prozessoren verfügen über folgende logische Instruktionen and src,dst ; dst:= src AND dst - bitweises logisches UND or src,dst ; dst:= src OR dst - bitweises inklusive ODER xor src,dst ; dst:= src XOR dst - bitweises exklusive ODER not dst ; dst:= NOT dst - bitweises Negieren Meisel 25

26 8.3.4 Typische Problemstellungen und ihre Lösung Extraktion von Bitfeldern Logische Operationen werden z.b. verwendet, um Bitfelder zu extrahieren Beispiel: Übertragen der relevanten Bits (11-8) des Speicherwortes P und der relevanten Bits (6-0) des Speicherwortes Q an die entsprechenden Bitpositionen im Speicherwort T P Q T mov P,%ax ; Transport von P nach ax and $0b ,%ax ; alle Bits löschen, ausser Bits 8-11 mov Q,%bx ; Transport von Q nach bx and $0x007F,%bx ; alle Bits löschen, ausser Bit (6-0) or %bx,%ax ; Kombiniert die Bitfelder in ax mov %ax,t ; Transport von ax nach T Meisel 26

27 Setzen von Bits Beispiel: Setzen des Bit 10 in ax oder auch or $0x0400,%ax or $0b , %ax ax ax Meisel 27

28 Löschen von Bits Beispiel: Löschen des Bit 10 in %ax oder auch and $0xFBFF,%ax and $0b , %ax ax ax Meisel 28

29 Negieren von Bits Beispiel: Negieren des Bit 10 in %ax (toggeln = umschalten) xor $0x0400,%ax oder auch xor $0b , %ax ax ax bzw. ax ax Meisel 29

30 Übung: Bitoperationen (1) Ein auf Adresse 0x8000 liegendes Speicherwort soll wie folgt verändert werden: Die Bits 0-3 sollen gesetzt werden, die Bits 5-9 sollen gelöscht werden und die Bits sollen umgeschaltet werden. Schreiben Sie ein Assemblerprogramm Meisel 30

31 Übung: Bitoperationen (2) a) Schreiben Sie in Unterprogramm "TestBitPattern", mit folgendem Verhalten: [%bl] = 1, wenn genau Bit 0, 3 und 7 von Register %al gesetzt sind, = 0 sonst. b) Schreiben Sie in Unterprogramm "PatternTester", mit folgendem Verhalten: [%al] = 1, wenn [%bl] und [%cl] an denjenigen Bitstellen übereinstimmt (0- und 1-Übereinstimmung) die in [%dl] mit 1 markiert sind. = 0 sonst Meisel 31

32 8.4 Rotations- und Verschiebeoperationen Übersicht Rotations- und Verschiebeoperationen manipulieren den Inhalt einer Speichereinheit durch Verschieben des Bitmusters um einige Stellen nach links oder rechts. Dazu stehen bei den IA-32-Prozessoren folgende Instruktionen zur Verfügung. Rotate left rol count,dst Rotate right ror count,dst Rotate through carry left rcl count,dst Rotate through carry right rcr count,dst Logical Shift left shl count,dst Logical Shift right shr count,dst Arithmetik Shift left sal count,dst Arithmetik Shift right sar count,dst Meisel 32

33 8.4.2 Rotation (auch: zyklisches Schieben) Von einer Rotation wird gesprochen, wenn beim Verschieben kein Bit verloren geht. Die maximale Schiebewert beträgt 31. ror $imm, %reg $imm, mem %cl, %reg %cl, mem rol $imm, %reg $imm, mem %cl, %reg %cl, mem ror C C rol Beispiel: ror $3, %ax # [ax] um 3 Bit nach rechts rotieren mov $15, %cl rol %cl, %ax # [ax] um 15 Bit nach links rotieren Meisel 33

34 8.4.3 Rotation über beliebig große Bitfelder Um eine Rotation über mehr als 32 Bit zu ermöglichen, stehen die Instruktionen rcr und rcl zur Verfügung (rotate through carry). rcr $imm, %reg $imm, mem %cl, %reg %cl, mem rcl $imm, %reg $imm, mem %cl, %reg %cl, mem C rcl Beispiel: Rotation eines an der Adresse Mem stehenden 24-Bit-Wortes um 1 bit rclb $1, Mem+2 # um eine Stelle nach links, carry übernehmen rclb $1, Mem+1 # um eine Stelle nach links, carry übernehmen rclb $1, Mem+0 # um eine Stelle nach links, carry übernehmen Meisel 34

35 8.4.4 Logisches Schieben Ein logischer Shift ist eine Verschiebeoperation, wobei in die freiwerdenden Bitpositionen eine 0 nachgeschoben wird. Bits, die herausgeschoben werden, werden in das Carry-Bit geschoben. shr $imm, %reg $imm, mem %cl, %reg %cl, mem shl $imm, %reg $imm, mem %cl, %reg %cl, mem 0 C C 0 shr shl Beispiel: shr $3, %ax # [ax] um 3 Bit nach rechts schieben mov $15, %cl shl %cl, %ax # [ax} um 15 Bit nach links schieben Meisel 35

36 8.4.5 Arithmetisches Schieben Ein arithmetischer Shift ist eine Verschiebeoperation auf einem Bitmuster in der 2-er-Komplement-Darstellung (vorzeichenrichtige Erweiterung). Eine Verschiebeoperation nach links um 1 Bit entspricht der Multiplikation mit 2 und eine Verschiebeoperation nach rechts um 1 Bit entspricht der Division mit 2 sar $imm, %reg $imm, mem %cl, %reg %cl, mem sal $imm, %reg $imm, mem %cl, %reg %cl, mem sar C C sal 0 Beispiel: sar $3, %ax # [ax] durch 8 dividieren mov $4, %cl sal %cl, %ax # [ax] mit 16 multiplizieren Meisel 36

37 Übung: Schieben und Rotieren a) Schreiben Sie in Unterprogramm "XOR_07", mit folgendem Verhalten: [%bl] = 1, wenn Bit 0 und Bit 7 von Register %al ungleich sind, = 0, wenn Bit 0 und Bit 7 von Register %al gleich sind. b) Schreiben Sie in Unterprogramm "RotateLower5", mit folgendem Verhalten: - Bei jedem Aufruf des Unterprogramms sollen die Bits 0..4 von %al um eine Bitstelle linksherum rotieren. - Die vorderen Bits 5..7 sollen dabei unverändert bleiben Meisel 37

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

Assembler-Programmierung

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

Mehr

Funktionaler Aufbau eines Computers Untersuchung von Delphi-Compilaten

Funktionaler Aufbau eines Computers Untersuchung von Delphi-Compilaten Funktionaler Aufbau eines Computers Im Folgenden soll der Weg untersucht werden, wie ein Programm, das von einem Compiler/Interpreter in Maschinencode übertragen wurde, schließlich vom Prozessor abgearbeitet

Mehr

Compilerbau Instruktionsauswahl 168. Instruktionsauswahl

Compilerbau Instruktionsauswahl 168. Instruktionsauswahl Instruktionsauswahl Compilerbau Instruktionsauswahl 168 Instruktionsauswahl Ziel: Übersetzung der IR-Bäume in Assemblerinstruktionen mit (beliebig vielen) abstrakten Registern. Die x86 (Pentium) Architektur

Mehr

HC680 PROGRAMMER'S REFERENCE MANUAL

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

Mehr

Der Assembler-Befehlssatz

Der Assembler-Befehlssatz Assembler-Befehlssatz 1 Der Assembler-Befehlssatz Anmerkung: Die kurzen Beispiele beziehen sich auf die Arbeit mit dem DEBUG-Assembler (links) sowie dem MASM, der symbolische Adressen verarbeiten kann

Mehr

Elementare logische Operationen

Elementare logische Operationen RECHNERARCHITEKTUR 2 - ELEMENTARE LOGISCHE OPERATIONEN 1 Elementare logische Operationen Modifizieren, Testen,Vergleichen In diesem Abschnitt wollen wir zeigen, wie man mit den elementaren logischen Verknüpfungen

Mehr

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

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

Mehr

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

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

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

Mehr

Sucosoft S40 KOP/FBS KOP FBS

Sucosoft S40 KOP/FBS KOP FBS Sucosoft S40 KOP/FBS KOP FBS Grafische Elemente Netzwerke erstellen Netzwerke erstellen Programme werden in KOP durch grafische Elemente dargestellt. Abfrage einer Variable auf den Zustand 1 Abfrage einer

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

JMPCN Sprungbefehl nur ausführen, wenn VKE 0 ist. JMPC Sprungbefehl nur ausführen, wenn VKE 1 ist. JMP Ohne Bedingung zur Sprungmarke wechseln.

JMPCN Sprungbefehl nur ausführen, wenn VKE 0 ist. JMPC Sprungbefehl nur ausführen, wenn VKE 1 ist. JMP Ohne Bedingung zur Sprungmarke wechseln. Grafische Elemente Netzwerke erstellen Netzwerke erstellen Programme werden in KOP durch grafische Elemente dargestellt. Abfrage einer Variable auf den Zustand 1 Abfrage einer Variable auf den Zustand

Mehr

COMPILER & CODE ANALYSE. Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1

COMPILER & CODE ANALYSE. Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1 1 COMPILER & CODE ANALYSE Eine Einführung in die Code Analyse auf Grundlage von Compilern und deren Optimierung. 1 INHALT Einleitung Werkzeuge Compiler Aufbau Optimierung Beispiel Code Analyse Einführung

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

Instruktionssatz-Architektur

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

Mehr

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

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26 Einführung in (Intel) 80x86 Assembler Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26 1 Geschichte 2 Programmiermodell 3 Befehlssatz 4 Konventionen 5 Beispiele 6 SSE 7 Literatur Einführung

Mehr

3 Rechnen und Schaltnetze

3 Rechnen und Schaltnetze 3 Rechnen und Schaltnetze Arithmetik, Logik, Register Taschenrechner rste Prozessoren (z.b. Intel 4004) waren für reine Rechenaufgaben ausgelegt 4 4-Bit Register 4-Bit Datenbus 4 Kbyte Speicher 60000 Befehle/s

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

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung 7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung Inhalt: Schichtenmodell x86-architektur und x86-assemblerprogrammierung Assemblersprache und Einbindung in C 1 Schichtenmodell Strukturierung

Mehr

Rechnerarchitektur. M. Jakob. 1. Februar 2015. Gymnasium Pegnitz

Rechnerarchitektur. M. Jakob. 1. Februar 2015. Gymnasium Pegnitz Rechnerarchitektur M. Jakob Gymnasium Pegnitz 1. Februar 2015 Inhaltsverzeichnis 1 Aufbau eines Computersystems Praktische Grundlagen Von-Neumann-Rechner 2 Darstellung und Speicherung von Zahlen 3 Registermaschinen

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

L6. Operatoren und Ausdrücke

L6. Operatoren und Ausdrücke L6. Operatoren und Ausdrücke 1. Arithmetische Operatoren: +, -, *, /, %, --, ++ 2. Zuweisung-Operatoren: =, +=, -=, *=, /= 3. Vergleichsoperatoren: =, ==,!= 4. Logische Operatoren:!, &&, 5.

Mehr

ESP Tutorium. Studienassistent: Ewald Moitzi. E-Mail: prog-tutor-ewald@iicm.edu. Gruppe 9

ESP Tutorium. Studienassistent: Ewald Moitzi. E-Mail: prog-tutor-ewald@iicm.edu. Gruppe 9 ESP Tutorium Studienassistent: Ewald Moitzi E-Mail: prog-tutor-ewald@iicm.edu Gruppe 9 Plan für Heute Zip am pluto Datentypen? If, Schleifen Debugging Fehlerquellen Compiler-Fehlermeldungen Fehlersuche

Mehr

Midterm-Klausur Technische Grundlagen der Informatik

Midterm-Klausur Technische Grundlagen der Informatik Midterm-Klausur Technische Grundlagen der Informatik Prof. Dr. Arndt Bode Wintersemester 2002/2003 7. Dezember 2002 Name: Vorname: Matrikelnummer: Hörsaal: Platz: Unterschrift: Ergebnis: Aufgabe Punkte

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Computer Architektur

Computer Architektur Fakultativfach Informatik 2001/2002 1. Die Sache mit den Bit und Byte Man weiss es längst: Im Computer drin gibt's nur 1 und 0: Entweder hat es an einer bestimmten Stelle eine Spannung oder eben nicht!

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach

Mehr

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

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

Mehr

Einführung in die Programmiersprache C und in den C166-Compiler

Einführung in die Programmiersprache C und in den C166-Compiler Einführung in die Programmiersprache C und in den C166-Compiler Die vorliegenden Unterlagen sollen einen kurzen Überblick über die Software-Entwicklung in C geben. Diese Unterlagen erheben keinen Anspruch

Mehr

L3. Datenmanipulation

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

Mehr

Technische Informatik 1

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

Mehr

3 Assembler- und Maschinenbefehle, Programmablauf-Steuerung

3 Assembler- und Maschinenbefehle, Programmablauf-Steuerung 3 Assembler- und Maschinenbefehle, Programmablauf-Steuerung In der Vorlesung wurde folgendes Beispiel-Programm in der höheren Programmiersprache C vorgestellt: int x=0; int i= 0; for (i=1;i

Mehr

13. Einführung in die Programmiersprache Strukturierter Text (ST)

13. Einführung in die Programmiersprache Strukturierter Text (ST) 13. Einführung in die Programmiersprache Strukturierter Text (ST) 13.1 Übersicht Strukturierter Text (ST, auch SCL) ist eine der sechs in IEC 61131-3 festgeschriebenen Programmiersprachen für Automatisierungstechnik.

Mehr

Grundlagen der Rechnerarchitektur

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

Mehr

Tutorübung 7: Mikroprogrammierung I

Tutorübung 7: Mikroprogrammierung I Tutorübung 7: Mikroprogrammierung I Vorlesung Einführung in die Technische Informatik (ETI) Lehrstuhl für Rechnertechnik und Rechnerorganisation Institut für Informatik 10 Technische Universität München

Mehr

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken Im Folgenden finden Sie jeweils die korrekte Antwort zu den im Buch abgedruckten Prüfungsfragen, soweit die Antworten in Textform

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

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

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

Mehr

Schleifenprogrammierung in C/C++, Fortran und Pascal

Schleifenprogrammierung in C/C++, Fortran und Pascal Schleifenprogrammierung in C/C++, Fortran und Pascal Stefan Ackermann Mathematisches Institut der Universität Leipzig 8. April 2009 1 Die kopfgesteuerte Schleife Bei der kopfgesteuerten Schleife steht

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Fehlerkorrektur Bild 3.190 Demoprozessor

Fehlerkorrektur Bild 3.190 Demoprozessor 7 Prozessor 3 0 Flags C V N Z A IP 0 SP AB 8 MS W/R DB 4 00h..6Fh Daten Speicher 70h..70h PA 71h..71h PB 72h..73h PC 74h..76h PD 80h..FFh Programm Speicher Fehlerkorrektur Bild 3.190 Demoprozessor Die

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

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

6.6 Personal-Computer PC und Intel 80x86-Prozessoren. PC als MVUS Teil 1-1 - Prof. Komar 6.6 Personal-Computer PC und Intel 80x86-Prozessoren. Der 16-Bit-Prozessor 8086 begründete die 80x86-Familie von Intel und wurde in der Light-Version des 8088 (nur 8-Bit-Datenbus)

Mehr

Der MS-DOS Standardmonitor und Debugger DEBUG

Der MS-DOS Standardmonitor und Debugger DEBUG Einfache Assemblerprogrammierung mit DOS-DEBUG 1/7 Auf Personalcomputern kann in der Regel leicht eine einfache Umgebung zur Software-Entwicklung für die Intel Rechnerfamilie 80x86 eingerichtet werden.

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

Klausur "Informationstechnische Grundlagen" WS 2012/2013

Klausur Informationstechnische Grundlagen WS 2012/2013 PD Dr. J. Reischer 11.02.2013 Klausur "Informationstechnische Grundlagen" WS 2012/2013 Nachname, Vorname Abschluss (BA, MA, FKN etc.) Matrikelnummer, Semester Versuch (1/2/3) Bitte füllen Sie zuerst den

Mehr

Universität Paderborn Fakultät für Naturwissenschaften - Physikalisches Praktikum Versuche mit Microcontroller-System

Universität Paderborn Fakultät für Naturwissenschaften - Physikalisches Praktikum Versuche mit Microcontroller-System Kurzanleitung: Universität Paderborn Fakultät für Naturwissenschaften - Physikalisches Praktikum BASIC-Programme für das C-Control Prozessormodul Jedes Programm besteht aus einem Vereinbarungsteil und

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

einfache PIC-Übungsprogramme

einfache PIC-Übungsprogramme einfache PIC-Übungsprogramme Schreibe in MPLAB für das PIC-Übungsboard 01 mit dem PIC16F88 folgendes Programm, assembliere und dokumentiere dieses, schreibe es anschließend mittels dem Programmiergerät

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Das Rechnermodell - Funktion

Das Rechnermodell - Funktion Darstellung von Zahlen und Zeichen im Rechner Darstellung von Zeichen ASCII-Kodierung Zahlensysteme Dezimalsystem, Dualsystem, Hexadezimalsystem Darstellung von Zahlen im Rechner Natürliche Zahlen Ganze

Mehr

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Großübung 1: Zahlensysteme Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Lehrender: Dr. Klaus Richter, Institut für Informatik; E-Mail: richter@informatik.tu-freiberg.de

Mehr

Daten, Informationen, Kodierung. Binärkodierung

Daten, Informationen, Kodierung. Binärkodierung Binärkodierung Besondere Bedeutung der Binärkodierung in der Informatik Abbildung auf Alphabet mit zwei Zeichen, in der Regel B = {0, 1} Entspricht den zwei möglichen Schaltzuständen in der Elektronik:

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

6 3 1 7 5 9 2 4 8 Geben Sie dazu jedes Mal, wenn sie die Zeile 15 passieren, die aktuelle Feldbelegung an. Der Anfang wurde bereits gemacht.

6 3 1 7 5 9 2 4 8 Geben Sie dazu jedes Mal, wenn sie die Zeile 15 passieren, die aktuelle Feldbelegung an. Der Anfang wurde bereits gemacht. Aufgabe 2: ALI von der Hochsprache zur Maschinenebene a) Schreiben Sie ein Pascal- sowie das zugehörige RePascal-PROGRAM Quadratsumme, welches nach Eingabe einer natürlichen Zahl n die Summe der ersten

Mehr

Grundlagen der Informatik III Wintersemester 2010/2011

Grundlagen der Informatik III Wintersemester 2010/2011 Grundlagen der Informatik III Wintersemester 2010/2011 Wolfgang Heenes, Patrik Schmittat 2. Aufgabenblatt mit Lösungsvorschlag 08.11.2010 Hinweis: Der Schnelltest und die Aufgaben sollen in den Übungsgruppen

Mehr

Klausur Grundlagen der Informatik

Klausur Grundlagen der Informatik Klausur Grundlagen der Informatik 11.03.2010 Hinweise: Bearbeitungszeit: 120 Minuten es sind keine Unterlagen (Bücher, Vorlesungsmitschriften, Übungen), Taschenrechner, Mobiltelefone (ausschalten und in

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

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

Mehr

Mikroprozessortechnik. 03. April 2012

Mikroprozessortechnik. 03. April 2012 Klausur 03. April 2012 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Die Klausur besteht aus 6 doppelseitig bedruckten Blättern.

Mehr

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

Mehr

9 Strukturierte Programmierung

9 Strukturierte Programmierung 9 Die "strukturierte Programmierung" ist entstanden aus dem Wunsch, die Korrektheit von Programmen beweisen zu können. Dies wäre ein ziemlich hoffnungsloses Unterfangen, wenn jede beliebige Programmstruktur

Mehr

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

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

Mehr

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

Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt. Die Befehle des Modellrechners in übersichtlichen Tabellen: Alle Opcodes sind Hexadezimal angegeben (s.u.). 1.) Die Ladebefehle zwischen den einzelnen Registern. In der oberen Zeile steht jeweils die Quelle

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen

TI II. Sommersemester 2009 Prof. Dr. Mesut Güneş 7. Aufgabenblatt mit Lösungen 7. Aufgabenblatt mit Lösungen Problem 1: IEEE-Gleitkommazahlen (2+2+4=8) a) Welchen Bereich der positiven Zahlen kann man mit normalisierten Gleitkommazahlen im IEEE-754-Format mit 64 Bit darstellen? b)

Mehr

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

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

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur [CS3100.010] Wintersemester 2014/15 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 5 Rechnerarithmetik

Mehr

Moritz Höppner. m-hoeppner@gmx.net

Moritz Höppner. m-hoeppner@gmx.net Linux-Assembler Tutorial Moritz Höppner m-hoeppner@gmx.net 1 Inhalt 1. Grundlagen... 3 1.1 Einführung... 3 1.2 Zahlensysteme... 3 1.3 Register... 5 1.4 Die benötigten Tools... 6 2. Das erste Programm...

Mehr

[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.

[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z. Literatur [E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.zip [E-2] M.K. Johnson, E.W. Troan: Anwendungen

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

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

Mehr

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

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

Mehr

1 : Die Rechnungsarten

1 : Die Rechnungsarten 1 von 22 23.10.2006 14:08 0 : Inhalt von Kapitel DAT 1 : Die Rechnungsarten 2 : Die Worte 3 : Hilfsprozessoren 4 : Binäre Zahlendarstellung 5 : Interpretationen 6 : Division mit Rest 7 : Horner Schema

Mehr

B1 Stapelspeicher (stack)

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

Mehr

Lua Grundlagen Einführung in die Lua Programmiersprache

Lua Grundlagen Einführung in die Lua Programmiersprache Lua Grundlagen Einführung in die Lua Programmiersprache 05.05.2014 Ingo Berg berg@atvoigt.de Automatisierungstechnik Voigt GmbH Die Lua Programmiersprache Was ist Lua? freie Programmiersprache speziell

Mehr

Humboldt-Universität zu Berlin Institut für Informatik

Humboldt-Universität zu Berlin Institut für Informatik Humboldt-Universität zu Berlin Institut für Informatik Technische Informatik II Leitung: Prof. Dr. Miroslaw Malek Projekt: Multifunktionaler Tastaturtreiber Heiko Brandenburg (brandenb@informatik.hu-berlin.de)

Mehr

Visual Basic / EXCEL / Makroprogrammierung Unterrichtsreihe von Herrn Selbach

Visual Basic / EXCEL / Makroprogrammierung Unterrichtsreihe von Herrn Selbach Visual Basic / EXCEL / Makroprogrammierung Unterrichtsreihe von Herrn Selbach Übungsaufgaben zum Kapitel 1 1. Aufgabe In einer EXCEL Tabelle stehen folgende Zahlen: Definiere einen CommandButton, der diese

Mehr

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13

Programmierung 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?

Mehr

Klausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode

Klausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode Klausur Technische Grundlagen der Informatik Prof. Dr. Arndt Bode Wintersemester 2000/2001 3. Februar 2001 Name: Vorname: Matrikelnummer: Geburtsdatum: Hörsaal: Platz: Unterschrift: Ergebnis: Aufgabe 1

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr

Zahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U23 2008. Abend 3:

Zahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U23 2008. Abend 3: #2 Abend 3: Alexander Neumann e.v. http://koeln.ccc.de Köln, 3.11.2008 Gliederung 1 Zahlendarstellung n-adische Darstellung natürlicher Zahlen negative Zahlen 2 Logikfunktionen 3 Register

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

Numerische Datentypen. Simon Weidmann

Numerische Datentypen. Simon Weidmann Numerische Datentypen Simon Weidmann 08.05.2014 1 Ganzzahlige Typen 1.1 Generelles Bei Datentypen muss man immer zwei elementare Eigenschaften unterscheiden: Zuerst gibt es den Wertebereich, zweitens die

Mehr

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

Bitte in Druckschrift ausfüllen: Nachname: Vorname: Fachbereich: Matrikelnummer: Geheimwort: Bitte nicht ausfüllen: Prof. Dr. B. Seeger Klausur zur Informatik IIIa WS 99/00 Martin Schneider Beginn: Ende: 8:15 Uhr 10:45 Uhr Bitte in Druckschrift ausfüllen: Nachname: Fachbereich: Matrikelnummer: Geheimwort: Tragen Sie

Mehr

Das Maschinenmodell Datenrepräsentation

Das Maschinenmodell Datenrepräsentation Das Maschinenmodell Datenrepräsentation Darstellung von Zahlen/Zeichen in der Maschine Bit (0/1) ist die kleinste Informationseinheit Größere Einheiten durch Zusammenfassen mehrerer Bits, z.b. 8 Bit =

Mehr

Algorithmen zur Integer-Multiplikation

Algorithmen zur Integer-Multiplikation Algorithmen zur Integer-Multiplikation Multiplikation zweier n-bit Zahlen ist zurückführbar auf wiederholte bedingte Additionen und Schiebeoperationen (in einfachen Prozessoren wird daher oft auf Multiplizierwerke

Mehr

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011 Rechnernetze Übung 5 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011 Ziel: Nachrichten fehlerfrei übertragen und ökonomisch (wenig Redundanz) übertragen Was ist der Hamming-Abstand?

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten

Mehr

Prinzipieller Grundaufbau eines einfachen C-Programmes

Prinzipieller Grundaufbau eines einfachen C-Programmes Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller

Mehr

DBSP. Prof. Dr. rer. nat. Nane Kratzke. Vorlesung. Praktische Informatik und betriebliche Informationssysteme

DBSP. Prof. Dr. rer. nat. Nane Kratzke. Vorlesung. Praktische Informatik und betriebliche Informationssysteme Handout zur Vorlesung Vorlesung DBSP Unit 7 PHP IV Operatoren und Kontrollstrukturen 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451

Mehr

Klausur. Grundlagen der Datenverarbeitung/ Technische Informatik 23.9.03

Klausur. Grundlagen der Datenverarbeitung/ Technische Informatik 23.9.03 Klausur Grundlagen der Datenverarbeitung/ Technische Informatik 23.9.03 Machen Sie bitte zu Beginn der Klausur hier unten die notwendigen Angaben. Lösen Sie nicht die Heftung der Klausur. Wenn Sie die

Mehr

Übersicht. Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows

Übersicht. Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows Übersicht Race Conditions Buffer Overflows Heap Overflows Exkurs: Stackaufbau bei Intel x86 Exkurs: Shellcode Stack Overflows Integer Overflows Format-String-Angriffe (SQL) Injection Cross Site Scripting

Mehr