3. Rechner- und Prozessorarchitekturen

Größe: px
Ab Seite anzeigen:

Download "3. Rechner- und Prozessorarchitekturen"

Transkript

1 3. Rechner- und Prozessorarchitekturen 3.1 Entwicklung der Rechnertechnik 3.2 Grundlegende Rechnerarchitekturen 3.3 Architektur und Maschinenbefehle des 886, Interrupts Folie Entwicklung der Rechnertechnik Mechanische Rechenautomaten Programmierbare Steuerungen, Rechenautomaten Erste Rechner in Deutschland Erste amerikanische Entwicklungen John von Neumann Rechner mit Transistoren die zweite/dritte Generation Rechner der vierten Generation / Erste PCs Rechner der fünften Generation leistungsfähige Mikroprozessoren Moore s Law zukünftige Entwicklung Folie 11

2 Mechanische Rechenautomaten 1623: Prof. Wilhelm Schickard ( ), konstruiert in Tübingen die erste bekannte mechanische Rechenmaschine (Professor für biblische Sprachen, später Mathematik und Astronomie). Sie erlaubt eigentlich nur Additionen und Subtraktionen. Schickard verwendet die Zehnerdarstellung für Zahlen. (Arithmetik-Einheit (ALU)) 1642: Blaise Pascal ( ) entwickelt eine 8- stellige Additions- und Subtraktionsmaschine. Mechanischer Zähler als Räderwerk. 2 Sätze von je 6 Zählscheiben mit 1 Ziffern. Er war der Erste, der mit seinen Rechenmaschinen ( Pascalinen ) Geld verdiente. Er stellte diese 8- stellige Addier-und Subtrahiermaschine für seinen Vater, einen Steuereinzieher, her Gottfried Wilhelm, Freiherr von Leibnitz entwickelt Rechenmaschinen. Einführung des binären Zahlensystems Quelle: Lindenstruth, Uni Heidelberg Folie 111 Programmierbare Steuerungen, Rechenautomaten 1728: Falcon baut eine Webstuhlsteuerung mit gelochten Metallplatten. (programmierte Steuerung) 185: Joseph-Marie Jacquard entwickelt einen Musterwebstuhl, der mit Lochkartenstreifen gesteuert wird. (programmierbare Steuerung) 1832: Charles Babbage entwickelt die sogenannte DIFFERENCE - ENGINE. Erstellung von Navigationstafeln / trigonometrischen Tafeln (Addition, Multiplikation, evtl. Potenzieren). Er entwickelt danach die ANALYTICAL - ENGINE, die jedoch niemals fertiggestellt wird. In ihr sind schon die wichtigsten Bestandteile eines Computers eingebaut: Arbeitsspeicher, Central Processing Unit, Ausgabe- Drucker, Lochkarten- Eingabe für Befehle und Werte. 1886: Zähl-und Sortierapparatur von Hermann Hollerith Herrmann Hollerith entwickelt für die 11. amerikanische Volkszählung von 189 eine lochkartengesteuerte Zählmaschine. Mit 43 Maschinen schafft er in 4 Wochen mit 5 Helfern das, was 1 Jahre zuvor ebenso viele Personen 7 Jahre beschäftigte. 191 wird auch der preußische Zensus damit durchgeführt. (Datenspeicher: Lochkarte) Auf Holleriths Patent baut später die Firma IBM auf. Quelle: Lindenstruth, Uni Heidelberg Folie 112

3 Erste Rechner in Deutschland 197: Forest entwickelt die Elektronenröhre. 1938: Konrad Zuse beendet den Bau der Z1. Das Speicher- und Rechenwerk wurde von Zuse und Studienkollegen mit Laubsägen aus Blechen ausgesägt. Die Programme wurden auf Filmstreifen gelocht. 194: Konrad Zuse baut die Z2 in Relaistechnik. Sie funktioniert nur bei der Vorführung. 1941: Die Zuse Z3, aufgebaut aus Relais Speicher Lochstreifenleser Relais des Rechenwerks Binärdarstellung von Befehlen und Zahlen Binäre Schaltelemente für Speicherung und Verarbeitung Gleitkomma-Darstellung von Zahlen (Vorzeichen, Exponent, Mantisse) Darstellung des Ablaufs als Folge von Rechenschritten (noch keine bedingten Befehle) Aufbau mit elektromagnetischen Relais (6 für Rechenwerk, 14 für Speicherwerk; 64 Speicherworte à 22 Bit) Steuerung über 8-Kanal-Lochstreifen Geschwindigkeit: 3 Sekunden für Multiplikation, Division, Wurzelziehen Plankalkül, erste Programmiersprache Folie 113 Konrad Zuse mit Z3 Zuse, Konrad, Ingenieur, *Berlin , Hünfeld ; begann 1934 mit Entwicklungsarbeiten für programmgesteuerte Rechengeräte; schuf 1941 den ersten voll arbeitsfähigen programmgesteuerten elektromechanischen Digitalrechner, den Rechner Z3 mit 2 Relais. Gleichzeitig arbeitete Zuse an der Röhrenrelaistechnik für Computer (Z4, 1942). Die von ihm 1949 gegründete Zuse KG, die ab 1955 elektronische Rechner baute (insbesondere Z22, Z33), ging später in der Siemens AG auf. 22 Bibliographisches Institut & F. A. Brockhaus AG Folie 114

4 Erste amerikanische Entwicklungen 1944: Howard H. Aiken baut an der Harvard University mit Unterstützung der IBM MARK I, eine raumfüllende Rechenanlage. Für eine Addition benötigt sie nur,3 Sekunden. 1945: Angeblich erster Computerabsturz. Der Experimentalrechner Mark I weist in Manchester eine Fehlfunktion auf. Die Mathematikerin Murray Hopper entdeckt als Ursache einen Käfer, der zwischen die Relais geriet. Bis heute nennt man einen Software-Fehler Bug. 1946: Dr. J. Prespert Eckert und John W. Mauchley (University of Pennsilvania, Moore Schule) bauen die ENIAC (Electronic Numerical Integrator And Computer). Vollständig in Röhrentechnik (ca. 18.) aufgebaut, benötigt ENIAC immerhin noch 14 qm Grundfläche und ist rund 2 mal so schnell wie MARK I. Folie 115 John von Neumann Um 1944: Mathematiker John von Neumann ( ) entwickelt mit dem ENIAC Team eine neue Rechnerarchitektur. Von-Neumann-Architektur - moderner Computer: Das Programm wird elektronisch gespeichert und nicht über Lochbänder eingelesen oder Schalttafeln fest eingestellt. Juni 1945: Von Neumann publiziert seine Ideen von Neumann Computer nicht patentierbar! Folie 116

5 Rechner mit Transistoren die zweite/dritte Generation 1947 Schockley, Brattain und Bardeen (Bell Labs / AT&T) bauen den ersten (Germanium-) Transistor (Nobel Preis für Physik 1956). 1949: EDSAC in Cambridge, erster voll funktionstüchtiger Computer nach Von-Neumanns Vorgaben. Er produzierte nach 3 Sekunden eine Tabelle mit Quadratzahlen. Ab 1955: Der Transistor wird in der 1949 von Shockley entdeckten Form industriell gefertigt Z22 von der Zuse KG an Hochschulen geliefert; Magnet-Trommelspeicher (IBM 65), Magnet-Kernspeicher, Rechenzeit: Addition,6 ms, Multiplikation 15 ms Ab 1957: DV-Anlage der 2.Generation. Industrielle Herstellung von elektronischen Rechenanlagen DV-Anlage der 3.Generation unter Verwendung integrierter Schaltkreise. Viele Bauteile werden auf kleinstem Raum vereinigt. Diese Technik gestattet es anfänglich, 16. Additionen je Sekunde durchzuführen. Beginn der Computer Revolution. Folie 117 Rechner der vierten Generation erste PCs 1975 DV-Anlagen der 4.Generation: Mehrere tausend Schaltkreise auf einem Chip Einführung von CAD, CAM, PPS 1977 Erster PC von Commodore (PET21) 1981 IBM PC auf Grundlage des 1979 erschienenen Intel Mikroprozessors 886, Betriebssystem MS DOS: Auf Text basierende Befehlssprache 1983/84 Apple Macintosh auf Grundlage des 1979 erschienenen Motorola Mikroprozessors 68 (32 Bit Architektur, ca.68. Transistoren), MacIntosh-Betriebssystem: Auf Graphik basierende Befehlssprache (Fenstertechnik) Folie 118

6 Rechner der fünften Generation leistungsfähige Mikroprozessoren 1982 DV-Anlage der 5.Generation: Entwicklung von parallelen Systemen, Anwendung der Künstlichen Intelligenz (KI) CAD CAM PPS - CAx CIM 1992 Erster 64 Bit Mikroprozessor, Alpha / 2164 von Digital Equipment, 1,6 Millionen Transistoren, 2 MHz Taktrate 1993 Intel Pentium, 3,1 Millionen Transistoren, Taktrate 6/66 MHz 1999 Intel Pentium III, 9,5 Millionen Transistoren, Taktrate 65 MHz (Slot- Version) AMD K7 (Athlon), 22 Millionen Transistoren, Taktrate 7 MHz 2 Pentium IV, 42 Millionen Transistoren, Taktraten bis 3 GHz (22) Neue Anwendungen: Virtuelle Realität Augmented Reality Sprachdialogsysteme Folie 119 Anzahl Transistoren Allgemeine Trends / Moore s Law Exponentialgesetz der Mikroelektronik ( Mooresches Gesetz ) [Von Gordon E. Moore, Intel Chairman of the Board, 1965 geäußerte Vermutung] Die Anzahl der Transistoren je Prozessorchip verdoppelt sich alle 2 Jahre. Die Verarbeitungsleistung der Prozessoren verdoppelt sich alle 1,5 Jahre. Vervierfachung der Speichergröße alle 3 Jahre. Verdopplung der Speicherleistung alle 1 Jahre. Zum gleichen Preis die doppelte Leistung in weniger als zwei Jahren Moore s Law angewandt auf Mikroprozessoren Pentium Pentium II Pentium Pro Pentium IV Pentium III Folie 12

7 Trends Mikroprozessoren und Speicher 1 Leistungszuwachs der Mikroprozessoren: Etwa 2-fach pro 1,5 Jahre Relative Leistung 1 1 Moore s Law Leistungsdifferenz wächst etwa um 5% pro Jahr Jahr Leistungszuwachs der Speicher: Etwa 2-fach pro 1 Jahre Nach Thiele, ETHZ Folie 121 Aus drucktechnischen Gründen leere Folie! Folie 122

8 3.2 Grundlegende Rechnerarchitekturen Begriff Rechnerarchitektur Schichtenmodell eines Rechnersystems Grundarchitekturen (Harvard Architektur - Von Neumann Architektur) Von Neumann Architektur Aufbau einer Zentraleinheit Modell eines einfachen Von Neumann - Rechners Programmabarbeitung in Von Neumann Maschinen ALU Steuerwerk Folie 123 Begriff Rechnerarchitektur Rechnerarchitektur, Informatik: Teilbereich der technischen Informatik, der sich mit dem Aufbau von Rechnern aus Funktionseinheiten sowie deren Zusammenwirken beschäftigt 22 Bibliographisches Institut & F. A. Brockhaus AG Oder: Eine Rechnerarchitektur beschreibt die Eigenschaften eines Systems, d.h. die Struktur des Entwurfs und das funktionelle Verhalten. Die Organisation des Daten- und Kontrollflusses, der logische Entwurf und die physikalische Realisierung stellen die Umsetzung der Architektur dar. Folie 124

9 Schichtenmodell eines Rechnersystems Hierarchie der Sichtweisen: Jede Ebene ist eine Abstraktion der jeweils tieferen. Mehrere Elemente aus der tieferen Ebene werden zusammengefasst und bilden ein Element der höheren Ebene. Zum Beispiel werden Transistoren zu logischen Gattern verschaltet. Anwendungsprogramme Höhere Programmiersprachen Assemblersprachen, Maschinencode Mikroprogrammierte / festverdrahtete Steuerung CorelDraw, PaintShopPro, Word, PowerPoint, Photoshop, Autocad, for (i=; i<1; i++) { cout << i; // i ausgeben } Adr. Masch code Menemonic 5 A1 MOV AX,VARA ADD AX,VARB C A3 4 MOV VARC,AX Fetch Decode Execute Write Back a i b i a i b i Funktionseinheiten (ALU, Speicher, ) C out C in C out C in S i S i Logik-Ebene (UND, ODER, ) Physikalische Ebene (Transistoren und Verbindungen) Folie 125 Harvard - Architektur Befehle und Daten in getrennten Speichern Speicher Ein-Ausgabe- Bausteine Grundarchitekturen CPU Von Neumann Architektur (Princeton Architektur) Befehle und Daten im gemeinsamen Speicher Speicher Ein-Ausgabe- Bausteine CPU DS Datenspeicher CS Programmspeicher Daten Befehle Steuerwerk Rechenwerk DS Daten CS Programm Daten und Befehle Steuerwerk Rechenwerk Je ein Befehls- und Datenbus Schneller gleichzeitiger Zugriff auf Code und Daten Hauptanwendung: Signalprozessoren Nur ein Bus für Befehle und Daten Flexible Aufteilung des Speichers zwischen Code und Daten Hauptanwendung: Allgemeine Computer Gemeinsames Kennzeichen: Sequentielle Abarbeitung des Programms / der Befehle Heute sind häufig Mischformen anzutreffen Folie 126

10 John von Neumann John von Neumann * 193 in Budapest/Ungarn 1957 in Washington DC/USA (Studierte u.a. in Berlin) Mathematiker und Wissenschaftler. Begründer der prinzipiellen Architektur heutiger Digitalrechner. Grundidee: Modell der menschlichen Informationsverarbeitung Aufnahme von Informationen über Sinnesorgane Speicherung von Informationen Verarbeitung von Informationen nach vorgegebenen Regeln Ausgabe von Ergebnissen Ansatz: Das menschliche Gedächtnis umfasst sowohl die aufgenommenen Informationen (Daten) als auch die Regeln zu deren Verarbeitung (Programme) Ergebnis: Hieraus folgert Neumann, dass es von Vorteil ist Programme wie alle anderen Informationen im Datenspeicher des Computers abzulegen Quelle: N.N. FH-Niederrhein Folie 127 Blockschaltbild der Von Neumann Architektur Eingangseinheit (Input Unit) Speicher (Memory) Arithmetisch/ Logische Einheit (ALU) Steuerwerk (Control Unit) Ausgangseinheit (Output Unit) In realen Rechnern werden die Arithmetisch/Logische Einheit (Rechenwerk) und das Steuerwerk (Leitwerk, Kontrolleinheit) meist in einer physikalischen Einheit (Chip) zusammengefasst zentrale Verarbeitungseinheit - Central Processing Unit - CPU Nach: A.W. Burks, H.H. Goldstine, John von Neumann (Princeton University): Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, U.S. Army Ordnance Department Report, 1946 Folie 128

11 Aufbau einer Zentraleinheit (CPU) Die CPU vereinigt die Arithmetic/Logic Unit und das Steuerwerk aus dem von Neumann Modell. Ein Teil des Speichers rutscht in die CPU: Operanden für die ALU werden in Registern der CPU gespeichert und nicht jedes mal aus dem Speicher geholt. Register Steuerwerk ALU Datenbereich Steuerbereich Systembus Folie 129 Eine konkrete von Neuman Maschine Ein- / Ausgabe CPU (ALU und Steuerwerk) Speicher Mainboard ASUS A7V 133 (für Athlon/Thunderbird- und Duron-Prozessoren) Folie 13

12 Modell eines einfachen von Neumann - Rechners Akkumulator Flags Zero Befehlszähler (PC = Program Counter) Adr. n Befehl Speicher Beispiel für Codierung von Befehlen: OP-Code Adressteil 15 4 Bit 12 Bit Es sei der Operationscode eines Befehls 4H und die Adresse der Speicherzelle 8H: Befehl Befehl Datenwort Datenwort Datenwort Folie 131 Beispiel: Maschinenbefehle für Von Neumann- Rechner Die Befehle (Instructions) werden als Mnemocodes dargestellt. Mnemocodes stellen eine verständliche Form der Befehle dar und sind direkt abbildbar auf die Bitmuster der Befehle und damit auf die Worte des Speichers. Mnemocodes einiger ausgewählter Beispielbefehle: LDA <adresse> ; Lade Akkumulator mit Inhalt der Speicherzelle <adresse> STA <adresse> ; Speicher den Inhalt des Akkumulators in der Speicherzelle <adresse> ADD <adresse> ; Addiere den Inhalt der Speicherzelle <adresse> zum Inhalt des Akkumulators und lege das Ergebnis im Akkumulator ab SUB <adresse> ; Subtrahiere den Inhalt der Speicherzelle <adresse> vom Inhalt des Akkumulators und lege das Ergebnis im Akkumulator ab JMP #adresse ; Springe unbedingt zu #adresse, d.h. lade den Befehlszähler (PC) mit adresse JZ #adresse ; Springe, wenn der Inhalt des Akkumulators =, d.h. wenn das Zero-Flag gesetzt ist JNZ #adresse ; Springe, wenn der Inhalt des Akkumulators <>, d.h. wenn das Zero-Flag nicht gesetzt ist Folie 132

13 Programmabarbeitung einer von Neumann Maschine - 1 PC Adr JMP #2 STA <23> SUB <22> Speicher JMP #2 STA <23> JNZ #15 ADD <21> LDA <2> Adr. Befehl Beschreibung 1: LDA <2> Transferbefehl 1.) 2 aus Speicherzelle 2 Akku 2.) PC auf Adresse 11 weiterschalten 11: ADD <21> Sowohl Transfer- als auch Arithmetikbefehl 1.) 3 aus Speicherzelle 21 ALU 2.) Addiert in ALU: ) Ergebnis 5 wird in Akku gespeichert. Flags bilden: Z-Flag löschen (Ergebnis <> ) 4.) PC auf Adresse 12 weiterschalten 12: JNZ #15 Bedingter Sprungbefehl Zero-Flag ist PC mit Wert 15 laden, d.h. Sprung wird ausgeführt 15: SUB <22> Sowohl Transfer- als auch Arithmetikbefehl 1.) 4 aus Speicherzelle 22 ALU 2.) Subtrahiert in ALU: ) Ergebnis 1 wird in Akku gespeichert. Flags bilden: Z-Flag löschen (Ergebnis <> ) 4.) PC auf Adresse 16 weiterschalten Folie 133 Programmabarbeitung einer von Neumann Maschine - 2 Adr JMP #2 STA <23> SUB <22> Speicher JMP #2 STA <23> JNZ #15 ADD <21> LDA <2> Adr. Befehl Beschreibung 16: STA <23> Transferbefehl. 1.) Inhalt des Akku ( 1 ) Speicherzelle 23 2.) PC auf Adresse 17 weiterschalten 17: JMP #2 Unbedingter Sprungbefehl PC mit Wert 2 laden 2: Und so weiter Folie 134

14 Blockschaltbild einer ALU A n B n A B ALU Arithmetik Logik ALU Control Summe Erg.-Logik Control n n Ergebnis Flags Ergebnis Flags n Wertlänge in Bit A,B Operanden, die zur Berechnung anstehen Control Steuersignale zur Einstellung der Betriebsart Flags Zustand des Ergebnisses der Ausführung Ergebnis Ergebnis der logischen bzw. arithmetischen Operation Folie 135 Operationen einer ALU Die ALU ist ein Schaltnetz (nur logische Gatter, keine Speicher) Die ALU ist kaskadierbar, z.b. 2x4-bit-ALU 8-bit-ALU; eine 8-bit-ALU enthält ca. 2 logische Gatter Die ALU-Rechenoperationen lassen sich zurückführen auf Addition Komplementbildung Schieben (Shift) Die logischen Operationen sind rückführbar auf AND OR NOT Darüber hinaus fallen Informationen an, die für die nachfolgenden Operationen wichtig sein können (Flags). Folie 136

15 Beispiel: Erzeugung der Bedingungsbits (Flags) Ergebnis Carry (der Vorstelle) Carry >=1 =1 S Z O C Flags Meist Flagregister, Statusregister oder Processor Status Word (PSW) genannt C: Carry-Flag Übertrag, abhängig von der arithmetischen Operation O: Overflow-Flag Wird gesetzt, wenn ein Überlauf des Zahlenbereichs in Zweierkomplementdarstellung erfolgt Z: Zero-Flag Wird gesetzt, wenn der Wert im Ergebnis ist. S: Sign-Flag (Negativ-Flag, Vorzeichen-Flag) ist eine Kopie des Vorzeichenbits des Ergebnisses Folie 137 Modell der Arbeitsweise eines Steuerwerks - Befehlszyklus Start Befehlszähler = Beginn (z.b. = ) Befehl aus Speicher holen (Fetch) Befehl ausführen Befehlszähler + 1 Befehlszyklus Befehl dekodieren, ggf. Operanden holen (Decode) Befehl ausführen (Execute) nein Stop? ja Ende Ergebnis abspeichern (Write Back) Folie 138

16 3.3 Architektur und Maschinenbefehle des 886 Architektur des 886, Bedeutung der Flags Grundlagen der Maschinenprogrammierung Segmentierung und Speichermodelle Programmiermodelle Programmentwicklung in Assembler Aufbau von Assemblerprogrammen Assembleranweisungen und Maschinenbefehle Assembler und Hochsprachen (Beispiel C) Interrupts Einteilung der Interrupts Ablauf der Interruptverarbeitung Hardwaretechnische Realisierung Interrupt-Service-Routinen Folie 139 Blockschaltbild des Mikroprozessors Intel 886 Folie 14

17 Bedeutung der Flags des OF DF IF TF SF ZF AF PF CF CF - Carry Flag (Übertrags-Flagge): Zeigt an, ob bei arithmetischen Operationen der Rechenbereich des Registers überschritten wurde. Carry kann per Befehl gesetzt, gelöscht, komplementiert werden. Sequentielle Addition und Subtraktion mit größerer Wortbreite als 16 Bit. PF - Parity Flag (Paritäts-Flagge): Gesetzt, wenn niederwertiges Byte des Ergebnisses eine gerade Anzahl Einsen enthält Prüfung mit Quersumme z.b. bei serieller Datenübertragung. AF - Auxiliary Carry Flag (Hilfsübertrags-Flagge): Zeigt Übertrag von Bit 3 nach Bit 4 an. Halbbyteüberlauf, für Arbeit mit BCD-Zahlen ZF - Zero Flag (Null-Flagge): Gesetzt, wenn das Ergebnis der letzten Operation Null war (Arithmetik, Logikbefehle) Bedingte Programmverzweigungen, Zählschleifen SF - Sign Flag (Vorzeichen-Flagge): Kopie des Vorzeichens des Ergebnisses; gibt an, ob zuletzt durchgeführte arithmetische oder logische Operation ein positives () oder negatives (1) Ergebnis hatte Bedingte Programmverzweigungen, 2er-Komplement Arithmetik Folie 141 Bedeutung der Flags des OF DF IF TF SF ZF AF PF CF TF - Trap Flag (Einzelschritt-Flagge): Versetzt den Prozessor in den Single-Step-Mode (Einzelschrittmodus). Prozessor führt nach jedem Befehl einen Software-Interrupt aus (INT 1H). Zum Debuggen IF - Interrupt Flag (Unterbrechungs-Flagge): Kann per Befehl (STI, CLI) gesetzt beziehungsweise zurückgesetzt werden. 1: Prozessor lässt keine von außen kommenden Unterbrechungsanforderungen zu. Systemprogrammierung DF - Direction Flag (Richtungs-Flagge): Verarbeitungsrichtung bei Zeichenketten-Operationen (Strings) : in aufsteigender Richtung der Speicheradressen (Setzen/Löschen mit den Befehlen STD und CLD) OF - Overflow Flag (Überlauf-Flagge): Gesetzt, falls Ergebnis einer Operation für Zieloperand zu groß oder zu klein, also Bereichsüberschreitung bei Arithmetik im 2er-Komplement, d.h. Überlauf in Vorzeichenstelle. Arithmetik im 2er-Komplement Folie 142

18 Segment-Adressierung Bildung der physikalischen Adresse aus Segmentadresse und Offsetadresse Einen Speicherbereich von 64 KByte Größe nennt man in der Intel-Technologie ein Segment CS Segment-Basisadresse SS Segment-Basisadresse DS Segment-Basisadresse ES Segment-Basisadresse IP Offset SP Offset Effektive Adr. Offset Effektive Adr. Offset Codesegment Stacksegment Datensegment Extrasegment FFFFFH 64 kbyte H Folie 143 Segmentierung und Adressbildung des 886 Segmentbasis, z.b. CS-Register * 16 D 1 2 A 4 Offset, z.b. IP-Register 2 2 Logische Adresse A Schreibweise für die Logische Adresse: z.b. CS = 12A4H, IP = 22H wird CS : IP = 12A4H : 22H geschrieben 1 2 A 6 2 Physikalische Adresse Physikalische Adresse = Offsetadresse + Segmentadresse * 16 Folie 144

19 Speichermodelle des 886 TINY: Daten (und Stack) und Code zusammen maximal 64 KByte; Daten NEAR, Code NEAR; SMALL: Daten (und Stack) und Code jeweils maximal 64 KByte; Daten NEAR, Code NEAR; MEDIUM: Daten maximal 64 Kbyte, Code mehr als 64 KByte; Daten NEAR, Code FAR; COMPACT: Daten mehr als 64 KByte, Code maximal 64 KByte; Daten NEAR, Code NEAR; Compiler: Datenfeld (Arrays) <= 64 KByte, innerhalb des Datenfeldes wird NEAR-Adressierung benutzt; LARGE: Daten und Code jeweils mehr als 64 KByte; Daten FAR, Code FAR; Compiler: Datenfeld (Arrays) <= 64 KByte, innerhalb des Datenfeldes wird NEAR-Adressierung benutzt; HUGE: Daten und Code jeweils mehr als 64 KByte; Daten FAR, Code FAR. Compiler: Datenfeld (Arrays) >= 64 KByte, innerhalb des Datenfeldes wird FAR-Adressierung benutzt; Folie 145 Programmentwicklung in Assembler Editor Editor Quell-/Source Code Quell-/Source Code datei.asm Übersetzer (Assembler) PUBLIC EXTRN Übersetzer (Assembler) Object Code Object Code datei.obj datei.lst (Maschinencode) (Listing, Assemblierungsliste) Binder (Linker) Bibliothek (Library) Ladbarer Objekt Code Lader datei.exe (Executable Code) datei.map (Speicherbelegungs- Plan) Programm wird ausgeführt Folie 146

20 Programmiermodelle für Intel-Prozessoren Die Kenntnis des Programmiermodells ist Voraussetzung für die maschinennahe Programmierung. Für einen Programmierer werden mit dem Programmiermodell alle wesentlichen Eigenschaften der Rechnerhardware festgelegt. Unter einem Programmiermodell versteht man Struktur und Funktion der benutzerzugänglichen Register einer CPU. Die Struktur beinhaltet die Anzahl, Größe und den Anwendungsbereich der Register. Die Funktion der Register wird mit dem implementierten Befehlssatz beschrieben Pentium (8586) Merced ia-64 ia-32: 32-Bit-Programmiermodell ia-16: Erweitertes 16-Bit-P modell 16-Bit-Programmiermodell Nicht dargestellt sind Paralleltypen von Intel und anderen Herstellern Folie 147 AX BX CX DX SP BP SI DI CS DS SS ES 15 IP 15 Flags 16-Bit-Programmiermodell des 886 Allzweckregister AH AL BH BL CH CL DH DL Zeige- und Indexregister 15 Segmentregister 15 Bezeichung Akkumulator Basisregister Multiplikat., Division, IO, Schieben Zeiger Basisadresse im DS Zählregister Wiederholen, Verschieb., Rotieren Datenregister Multiplikation, Division, IO Stapelzeiger (Stackpointer) Basiszeiger Zeiger Basisadresse im SS Source-Index Quellzeichenkette, Indexzeiger Destination-Index Zielzeichenkette, Indexzeiger Codesegment Datensegment Stacksegment Extrasegment Befehlszähler Anwendungsbeispiel Segment der Befehle Standardsegment der Daten Segment des Stacks Frei verwendbares Segment Offset der Befehle Flaggen: Prozessorstatus, Operationsergebnisse Folie 148

21 Aufbau eines Assemblerprogramms Programmkopf.MODEL SMALL.STACK 1H.DATA.CODE BEGINN: MOV MOV DS,AX Benutzercode MOV AH,4CH INT 21H Unterprogramme END BEGINN Kommentar, der das Programm kurz beschreibt. Zusätzliche Angaben über Autor, Änderungen usw. Hier legt der Programmierer das vom Assembler umzusetzende Speichermodell fest. Meist reicht SMALL aus. Definiert ein Stacksegment der angegebenen Größe. Definition des Datensegments. Hier werden Daten und Variablen angelegt. Definition des Codesegments. Wird mit einem Label eingeleitet und mit END Label abgeschlossen. Programminitialisierung: DS wird über AX mit Beginn des Datensegments geladen Hier steht das eigentliche Hauptprogramm DOS wird mit INT 21H aufgerufen. Der Funktionscode 4CH bedeutet Programm terminieren. Unterprogramme strukturieren und modularisieren ein Programm. Folie Beispielprogramm.MODEL SMALL ;Verwendetes Speichermodell.STACK 1H ;Reserviert Speicher fuer Stack ; DATA ;Definiert den Beginn des Datensegments VARA DW 25 ;Definiert Speicherwort, initialisiert Inhalt=25 VARB DW 125 ;Definiert Speicherwort, initialisiert Inhalt=125 VARC DW? ;Definiert Speicherwort, Inhalt nicht initialis. ; CODE ;Definiert den Beginn des Codesegments BEGINN: MOV ;AX = Beginn des Datensegments MOV DS,AX ;AX in DS Register schieben (laden) ; MOV AX,VARA ;Wert 25 von Variable A in AX schieben (laden) ADD AX,VARB ;Addiere 125 (VARB) zu AX MOV VARC,AX ;Speichere die Summe in VARC ; MOV AH,4CH ;DOS-Funktionscode: 4CH = Programm Terminieren INT 21H ;Aufruf von DOS mittels Software-Interrupt END BEGINN ;D.H. Programm startet bei BEGINN Folie 15

22 Das List-File zum Beispielprogramm 1.MODEL SMALL ;Verwendetes Sp 2.STACK 1H ;Reserviert Spei 3 ; DATA ;Definiert den Beginn des Datens 5 FA VARA DW 25 ;Definiert Speich 6 2 7D VARB DW 125 ;Definiert Speich 7 4???? VARC DW? ;Definiert Speich 8 ; CODE ;Definiert den Beginn des Codese 1 BEGINN: 11 B8 s MOV AX,@DATA ;AX = Beginn des Da E D8 MOV DS,AX ;AX in DS Register 13 ; 14 5 A1 r MOV AX,VARA ;Wert 25 von VARA r ADD AX,VARB ;Addiere 125(VARB) 16 C A3 4r MOV VARC,AX ;Speichere die Summe 17 ; 18 F B4 4C MOV AH,4CH ;DOS-Funktionscode: CD 21 INT 21H ;Aufruf von DOS mi 2 21 END BEGINN ;D.H. Programm star Folie 151 Komponenten eines Assemblerprogramms Ein Assemblerprogramm besteht aus zwei Komponenten: 1. Assembleranweisungen oder Pseudobefehle Assembleranweisungen sind "Befehle" an den Assembler und dienen als Arbeitsgrundlage. Sie können nicht von der CPU verarbeitet werden, nehmen aber dem Programmierer viel Arbeit ab. Beispiele sind die vereinfachten Segmentanweisungen (.MODEL,.DATA), die den Umgang mit Segmenten erleichtern. 2. Maschinenbefehle Maschinenbefehle sind direkte Befehle an die CPU. Die vom Assembler in Maschinencode übersetzten Menmonics werden von der BIU in die Warteschlange gestellt und anschließend von der EU verarbeitet. Die Maschinenbefehle sind der "Kern" eines Programms und bilden gemeinsam den Algorithmus zur Lösung eines Programmierproblems. Bsp.: MOV AX,1H. Folie 152

23 Assembleranweisungen für Konstanten und Ausdrücke Mit Konstanten werden Werte bzw. Ergebnisse von Konstanten-Ausdrücken benannt. Alle Konstanten werden zur Assemblierungszeit ausgewertet und können daher nach der Assemblierung nicht mehr verändert werden. Es handelt sich also um einen festen numerischen Wert oder um eine Speicheradresse. Konstanten benötigen keinen Speicherplatz! Die Definition von Konstanten und Ausdrücken erfolgt mit der EQU-Anweisung (EQUATE = entspricht). Platziert werden die Pseudobefehle typischerweise nach der.stack-anweisung. Beispiele: Zeilen EQU 25 ;Zeilen bekommt Wert 25 Spalten EQU 8 ;Spalten bekommt Wert 8 Zeichen EQU Zeilen * Spalten ;Zeichen = 4 SET_AX_ EQU MOV AX, ;Reine Textersetzung Text EQU " Bitte Taste drücken" ;Reine Textersetz. Anmerkung: EQU belegt keinen Speicher, es handelt sich um eine Textersetzung! Folie 153 Assembleranweisungen für Variablen Variablen haben Werte, die zur Programmlaufzeit verändert werden können. Sie besitzen einen Datentyp, der vom Assembler überprüft wird. Jeder Variablen muss Speicherplatz im Datensegment (nach.data) reserviert werden. Das erfolgt bei Einzelvariablen durch den Operator "?" (=nicht initialisiert) oder Angabe einer Konstanten (=initialisiert). Für Variablen existieren folgende Datentypen: Direktive DB DW DD DQ DT Bedeutung Define Byte Define Word Define Double Define Quad Define Ten Bit Definiert Byte-Variable Wort-Variable Doppel-Wort Quad-Wort 1-Byte Beispiel ASCIIA DB 41H NAME Wert W64 DQ? BCDZ DT DW B8H DD 1234ABCDH Wird eine Variable als 16-Bit-Variable definiert, so kann sie auch nur mit einem 16-Bit-Befehl bearbeitet werden. Beispielsweise würde MOV AH, NAME zu einem Fehler führen. Mit dem sogenannten PTR-Operator ist eine Typkonvertierung möglich, z.b. MOV AH, BYTE PTR NAME. Folie 154

24 Assembleranweisungen für Strings, Tabellen und Felder Strings sind Textvariablen, die mehrere Speicherstellen hintereinander belegen und mit der DB-Direktive definiert werden. Beispiel: MEINTEXT DB 'Hallo Welt!','$' Erfolgt die Textausgabe mittels DOS, muss ein Dollarzeichen den Text begrenzen. Meist ist in höheren Programmiersprachen eine NULL als Begrenzer üblich. Eine Tabelle lässt sich z.b. wie folgt anlegen: TABELLE DB 1,2,3,4,1,122,222,111,221,1,44 VOKALE DB 'a', 'e', 'i', 'o', 'u' Zugriff z.b. mit MOV BL,TABELLE[3] ;Register BL erhaelt Wert 4 Mit Hilfe des DUP-Operators (Duplicate) lässt sich ein Feld "beliebiger" Größe anlegen: ARRAY DB 5 DUP () ;(= Feld db,,,,) UNBES DB 5 DUP (?) ;(= Feld db?,?,?,?,?) Folie 155 Maschinenbefehle: Aufbau einer Anweisung Aufbau einer Anweisung beziehungsweise Programmzeile: marke: opcode operand, operand ; Kommentar marke: Bezeichner, z.b. für Sprungmarken, oft auch Label genannt opcode: Mnemonic für Maschinenbefehl z.b. ADD, SUB, CALL, RET, JMP, operand: Bezeichnungen von Speicherbereichen z.b. Register: AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES Speicher: OTTO, KARL, KARL + 8, [BP+4], Beispiel: LABEL: MOV AX, BX ; Schiebe (Lade) Inhalt von BX nach AX ; Der Inhalt von BX bleibt unverändert Hinweis: Eine Zusammenstellung der wichtigsten Maschinenbefehle ist mit Befehlsliste.pdf im Internet bereitgestellt. Eine ausführlichere Beschreibung ist beispielsweise zu finden in: Backer, Reiner: Assembler. rororo computer (Preis ca. 1 ) Folie 156

25 Adressierungsarten CPU-interne Adressierung Registeradressierung Unmittelbare Adressierung (immediate) Speicheradressierung Direkte Adressierung Indirekte Adressierung Basisrelative Adressierung Indizierte Adressierung Basisindizierte Adressierung MOV AX, BX ADD AL,CL MOV AX,[BX] Beispiel MOV AX, 4711 ADD CX, 27 MOV AX, Variable1 MOV BX, OFFSET Variable1 INC Zahl MOV AX,[BX]+2 MOV AX,TABELLE[SI] MOV AX,TABELLE[BP+SI] ADD AH,TAB1[BP+SI+6] Erklärung AX = BX AL = AL + CL AX = 4711 CX = CX + 27 AX = Wert von Variable1 BX = Zeiger auf Variable1 Zahl = Zahl + 1 AX = Wert des 16-Bit- Wortes auf das BX zeigt AX = Wert des 16-Bit- Worters auf das BX+2 zeigt AX = Wert des 16-Bit- Wortes in Tabelle mit Register SI als Index Index in Tabelle = BP+SI Folie 157 Für die Übungen wichtige Befehle Befehl Operanden Wirkung Ziel Quelle MOV ziel, quelle ziel = quelle Register Speicher Register, Speicher, Konstante Register, Konstante PUSH quelle (SP) = quelle Stack Register, Speicher POP ziel ziel = (SP) Register, Speicher Stack INC,DEC ziel ziel = ziel ± 1 Register, Speicher ADD ADC ziel, quelle ziel, quelle ziel = ziel+quelle ADD mit Carry Register Speicher Register, Speicher, Konstante Register, Konstante SUB ziel, quelle ziel = ziel-quelle SBC ziel, quelle SUB mit Carry MUL quelle AX * quelle DX:AX = Ergebnis Register, Speicher DIV quelle DX:AX / quelle DX = Divisionsrest AX = Quotient Register, Speicher CMP ziel, quelle Vergleich (ziel - quelle) Register (unverän.) Register, Speicher, Konstante CALL ziel 1. IP Stack, 2. IP= Ziel Label RET Stack IP IRET Stack Flags, IP, CS Folie 158

26 Sprungbefehle (Auswahl) Sprungbefehle dienen der Programmsteuerung. Damit ist es möglich, innerhalb eines Programms zu verzweigen, d.h. auf Ereignisse während der Programmlaufzeit zu reagieren. Das Sprungziel wird meist durch ein Label bestimmt. Unbedingte Sprünge: Der Sprung wird immer ausgeführt. Beispiel: JMP label ;Es wird an die Marke label gesprungen Bedingte Sprünge: Vor Ausführung eines Sprungs wird das Ergebnis einer vorangegangenen Operation (z.b. ADD, SUB, CMP) abgefragt, d.h. einzelne Bits des Flag-Registers) werden überprüft. Ergebnis zutreffend: Sprung wird ausgeführt. Auswahl für die Übungen: Sprung- Befehl JL JLE JE oder JZ JNE oder JNZ JGE JG Bedeutung Jump if Less Jump if Less or Equal Jump if Equal Jump if Zero Jump if Not Equal Jump if Not Zero Jump if Greater or Equal Jump if Greater Beispiel: CMP AX, BX Sprung wird ausgeführt, wenn AX < BX AX <= BX AX = BX AX <> BX AX >= BX AX > BX Folie 159 Beispiel: Addition zweier 48-Bit-Integer-Zahlen.DATA SUMMAND1 DW 1234H, 5678H, 9ABCH ;Wert 1 = ABC SUMMAND2 DW CBA9H, 8765H, 4321H ;Wert 2 = CBA SUMME DW?,?,? ;Das Ergebnis wird sein: DDDDDDDDDDDD.CODE START: MOV AX,@DATA ;Beginn des Datensegments MOV DS,AX ; in das Datensegment-Register laden MOV BX,OFFSET SUMMAND1+4 ;BX zeigt auf niederw. Wort SUMMAND1 MOV SI,OFFSET SUMMAND2+4 ;SI zeigt auf niederw. Wort SUMMAND2 MOV DI,OFFSET SUMME+4 ;DI zeigt auf niederw. Wort SUMME MOV CX,3 ;Zaehler fuer Anzahl Worte/Variable CLC ;Clear Carry Bit SCHLEIFE: MOV AX,[BX] ;Lade zu addierendes Wort SUMMAND1 ADC AX,[SI] ;Addiere mit Carry SUMMAND2 zu AX MOV [DI],AX ;Speicher Ergebnis Teilwort von SUMME MOV AX,2 ;Ein Wort ist 2 Byte lang SUB BX,AX ;Setze den Zeiger auf naechstes Wort SUB SI,AX ;Das gleiche fuer die anderen Zeiger SUB DI,AX DEC CX ;CX dekrementieren JNZ SCHLEIFE ;Springe, wenn Ergebnis <> war Folie 16

27 Beispiel: String in Grossbuchstaben ausgeben.data STRING DB 'Dies ist ein Text!', ;String-Begrenzer ( \ ).CODE START: MOV ;Beginn des Datensegments MOV DS, AX ; in DS-Register schreiben MOV SI, OFFSET STRING ;Zeiger auf String-Beginn AUSGABE: MOV DL, [SI] ;Zeichen aus String holen CMP DL, ;Ende des Strings? JZ EXIT ;JMP: Ja! CMP DL, 'a' ;Zeichen unterhalb Kleinbuchst.? JL KEIN_KLEINBUCH ;JMP: Ja! CMP DL, 'z' ;Zeichen oberhalb Kleinbuchst.? JNBE KEIN_KLEINBUCH ;JMP: Ja! SUB DL, 'a' - 'A' ;Kleinbuchstabe --> Grossbuchst. KEIN_KLEINBUCH: MOV AH,2 ;D.H. DOS soll DL ausgeben INT 21H ;Aufruf von DOS INC SI ;SI zeigt auf naechstes Zeichen JMP AUSGABE ;Weiter ausgeben EXIT: MOV AH,4CH ;D.H. DOS soll Prog. terminieren INT 21H ;DOS terminiert END START ;Das war's ASCII-Codes: A - Z = 41H - 5AH a - z = 61H - 7AH Folie 161 SS:1 SS:FE SS:FC SS:FA SS:F8 Unterprogramm und Stack CS:1AF MOV AX,1234 CS:1AF3 CALL MYPROG CS:1AF6 MOV CX,AX CS:1AF8 MOV DI,BX MYPROG PROC NEAR CS:1B33 PUSH AX CS:1B34 ADD AX, AX CS:1B36 ADD AX, WERT1 CS:1B3A ADD BX, AX CS:1B3C POP AX CS:1B3D RET MYPROG ENDP SS:1 SS:FE SS:FC SS:FA SS:F8 1AF6 CALL: a) NEAR IP Stack b) FAR CS, IP Stack RET: a) NEAR Stack IP b) FAR Stack IP,CS SS:1 SS:FE SS:FC SS:FA SS:F8 1AF SS:1 SS:FE SS:FC SS:FA SS:F8 1 SP SS:1 SS:FE SS:FC SS:FA SS:F8 1AF6 SP 1 SP FE SP FC SP FE Folie 162

28 Beispiel: Binärzahl in ASCII konvertieren und ausgeben START: MOV ;Beginn des Datensegments MOV DS,AX ; nach DS laden MOV DL,ABH ;Eine Hex-Zahl laden CALL NIBBLE_AUSGEBEN ;Das Low-Nibble ausgeben (also BH) MOV AH, 4CH ;DOS: Terminiere Programm INT 21H ;Das war's ;========================================================== ; Ausgabe einer hexadezimalen Ziffer auf dem Bildschirm ; Eingabe: DL (unteres Nibble) = auszugebende Hex-Ziffer ;========================================================== NIBBLE_AUSGEBEN PROC NEAR AND DL,FH ;Oberes Halbbyte (Nibble) entfernen CMP DL,9 ;Zahl -9 oder A-F? JLE Z BIS_9 ;JUMP: Wenn -9 (Bereich 3H-39H) ADD DL,7 ;Korrektur fuer A-F! (41H 45H) Z BIS_9: ADD DL,3H ;Konvertieren in ASCII MOV AH,2 ;D.H. Zeichen ausgeben INT 21H ;Aufruf von DOS RET NIBBLE_AUSGEBEN ENDP Folie 163 Assembler und C / C++ Es gibt zwei Möglichkeiten Assembler in C zu verwenden: 1. Import von Assemblermodulen beim Linken (OBJ-Dateien) 2. Verwendung des "Inline-Assemblers" des jeweiligen Compilers (geeignet für kurze Assemblerroutinen, wird mit asm (Borland) bzw. asm ( Doppelunterstrich - Microsoft) eingeleitet) Beispiel: /* C-Code */ asm MOV AX,5 /* Assemblerbefehl in Turbo C */ asm ADD AX,2 /* und in Visual C */ /* und weiter mit C */ Werden mehrere Assemblerbefehle benötigt, so lässt sich ein Block bilden: Beispiel: /* C-Code */ asm { /* ab jetzt Assembler */ MOV AX,5 ; Assembler-Kommentar ADD AX,2 ; weitere Befehle } /* Ende von Assembler */ /* und weiter mit C */ Folie 164

29 Von einem C++ - Compiler generierter Assemblercode ; int main() { _main proc near push bp mov bp,sp sub sp,4 push si ; short int Variable1 = 1, Variable2 = 2; mov word ptr [bp-2],1 mov word ptr [bp-4],2 ; short int Ergebnis; ; Ergebnis = Variable1 + Variable2; mov ax,word ptr [bp-2] add ax,word ptr [bp-4] mov si,ax ; Ergebnis = Funktion(Ergebnis); push si call near add sp,2 mov si,ax ; return ; xor ax,ax pop si mov sp,bp pop bp ret ; } _main endp ; short int Funktion(short int proc near push bp mov bp,sp mov dx,word ptr [bp+4] ; Wert = Wert + 7; mov ax,dx add ax,7 mov dx,ax ; return(wert); mov ax,dx pop bp ret ; endp Hinweis: Das Programm erfüllt keine sinnvolle Funktion. Es soll nur zeigen, wie Variablen angelegt und Funktionen aufgerufen werden! Der C++ - Code ist rot eingefärbt und Assemblerdirektiven für Debugging und Speicherzuteilung wurden entfernt. Folie 165 Aus drucktechnischen Gründen leere Folie! Folie 166

30 Einteilung der Interrupts Ein Interrupt ist eine Unterbrechung. Das laufende Programm wird unterbrochen und ein spezielles Programm gestartet, die sogenannte Interrupt Service Routine (ISR). Nach Beendigung der ISR wird an der ursprünglichen Position im Programm fortgefahren. Die Interrupts des 886 können eingeteilt werden in: Software-Interrupts. Werden vom Programmierer ausgelöst (ähnlich Unterprogrammaufruf). Beispiele: INT 21H = DOS-Funktionsaufruf oder INT 1H = BIOS- Funktionsaufruf. Exceptions. Werden in Ausnahmesituationen durch den Prozessor selbst ausgelöst. Beispiel: Auslösen von Interrupt Nr. bei Division durch. Externe (asynchrone) Interrupts. Werden durch externe Bausteine beziehungsweise Ereignisse ausgelöst. Beispiel: Periodischer Interrupt, ausgelöst durch einen Zeitgeberbaustein (Timer). Hinweis: Nicht Intel-kompatible Prozessoren anderer Hersteller, beispielsweise Motorola, weisen im Prinzip die gleiche Einteilung auf. Es werden aber andere Bezeichnungen benutzt, beispielsweise TRAP statt INT. Folie 167 FFFFF 4 5 3FF Interrupt-Verarbeitung in 886-Systemen Speicher Hauptprogramm 6 ISRn PROC FAR IRET ISR ENDP INT n Stack Interrupt-Vektor- Tabelle CS der ISRn Offset ISRn 1 CS Hauptprogramm IP naechster Befehl Flags des Prozessors 2b 2a n 4 3 1) HW- oder SW-Interrupt innerhalb eines Programms ist aufgetreten; der gerade in Abarbeitung befindliche Befehl wird zu Ende ausgeführt 2a) Interrupt-Nummer wird mit vier multipliziert 2b) Adresse des nächsten Programmbefehls des Hauptprogramms (Rücksprungadresse) und die Flags werden auf den Stack gesichert 3) Zugriff auf die Interrupt-Vektortabelle mit der in Schritt 2a berechneten Adresse 4) Interrupt-Vektortabelle enthält für alle Interrupts die zugehörigen Einsprungadressen (für Programm n: ISR n) 5) Am Ende des Interrupt-Programmes befindet sich ein IRET-Befehl (return from interrupt), IRET liest die Flags und die Rückkehradresse vom Stack 6) Der Prozessor kann die Abarbeitung des Programms mit dem auf den Interruptbefehl folgenden Befehl fortsetzen Folie 168

31 Unterprogrammaufruf und Software-Interrupt Aufruf eines Unterprogramms: Aufrufendes Programm MOV AX, WERT1 CALL MYUP CMP AX,GRENZE Aufruf: Adresse von MYUP Rückkehr Unterprogramm MYUP PROC NEAR ADD AX, VAR1 RET MYUP ENDP Aufruf eines Unterprogramms (Dienstes) mittels Software-Interrupt: Aufruf von MYISR Aufrufendes Programm Interrupt-Service-Rout. Interrupt-Vektor-Tabelle MOV AX, WERT1 MYISR PROC FAR INT 47H Nr.47H: CS,IP ADD AX, VAR1 CMP AX,GRENZE von MYISR IRET MYISR ENDP Rückkehr Anwendungsbeispiele: a) Direkte Aufrufe b) Indirekte Aufrufe (normalerweise über Programmbibliotheken) BIOS der Grafikkarte: INT 1H Windows 32-Bit: INT 2EH DOS Betriebssystem: INT 21H LINUX: INT 6H Folie 169 Reservierte Speicherplätze Nach dem Reset haben die Register des Prozessors folgenden Inhalt: DS=SS=ES=H, Flags=2H, CS=FH, IP=FFFH. Der erste Befehl wird also geladen von FH:FFFH = FFFFH (physikalische Adresse). Dort muss ein Sprungbefehl stehen, der in das Urladeprogramm (Bootstrap) verzweigt. Das Urladeprogramm lädt dann beispielsweise von einem Laufwerk das eigentliche Betriebssystem. Ein großer Block reservierter Speicherplätze ist die Interrupt-Vektoren- Tabelle von H 3FFH (124 Byte). Dort liegen die Interruptvektoren (Einsprungadressen) für die 256 möglichen Interrupts. Jeder Interruptvektor besteht aus Segment und Offset, belegt also 4 Byte. Daraus ergibt sich die Gesamtlänge von 256*4 = 124 Byte. Inhalt Interruptvektor für Int. Nr. 255 Interruptvektor für Int. Nr. 2 Interruptvektor für Int. Nr. 1 Interruptvektor für Int. Nr. Adressen 3FC 3FF 8 B Für DOS gilt: Die Interrupts von bis 31 sind belegt oder reserviert Die Interrupts von 32 bis 255 sind frei belegbar Folie 17

32 Interrupt-Vektortabelle eines DOS-Systems Nummer Adresse Segment:Offset Anwendung H H 47BH:OOCEH Prozessor: Division durch Null 1 1H 4H 1352H:145CH Prozessor: Einzelschrittsteuerung (Trace) 2 2H 8H DDFH:16H Nicht maskierbarer Interrupt: Systemfehler 3 3H OOOCH 1352H:1465H Haltepunkt durch Befehlscode CCH (Breakp.) 4 4H 1H 7H:75CH Befehl INTO (Interrupt bei Overflow) 5 5H 14H FOOOH:FF54H BIOS: Hardcopy durch Druck-Taste 6 6H 18H FOOOH:F856H Prozessor: (8286: unbekannter Code) 7 7H 1CH FH:F856H Prozessor: (ab 8286: Speicherschutz) H 4H 1352H:1711H BIOS: Aufruf der Bildschirmfunktionen H 58H FOOOH:E82EH BIOS: Tastatur- und Druckerfunktionen CH 7H FOOOH:FF53H BIOS: Timer-Interrupt (18.2 mal pro Sek.) H 84H 1352H:171FH DOS: Aufruf der Betriebssystemfunktionen Folie 171 Externe (asynchrone) Interrupts des 886 Die CPU hat zwei Eingänge für asynchrone Interrupts: 1. NMI - Non Maskable Interrupt, gedacht für schwerwiegende Störungen z.b. fehlerhafte Speicherchips, erkennbar als Speicherparitätsfehler oder Failsafe-Timer, die regelmäßig einen NMI erzeugen um den Rechner im Notfall wieder unter Kontrolle zu bringen, auch wenn alle Interrupts gesperrt sind 2. INTR - Vektorisierter Maskierbarer Interrupt, gedacht für die Interrupt- Anforderungen des normalen Betriebs, z.b. Zeitgeberbaustein Maskierbar durch das Interrupt-Flag (Assemblerbefehle CLI/STI) Die Behandlung des Interrupts wird durch einen gesonderten Controller unterstützt, beispielsweise den programmierbaren Interrupt-Controller PIC 8259A Folie 172

33 Schematisierter Ablauf eines externen Interrupts CPU 4. Vektor- Adresse berechnen (IntNr 4) Unterbrochenes Programm wird fortgesetzt 1. Interrupt ist da! 2. Welcher? 3. Int-Nr. (Datenbus) 5. Vektor- Adresse 6. Flags, CS, IP Stack CS:IP = ISR-Adresse INT- Maske 1 Nr. Int-Nr. 1CH 1 n ABH 1 Interrupt-Controller Speicher INT-Vektortabelle ISR PROC FAR IRET Ereignis, z.b. Taste gedrückt Folie 173 Kaskadierung der PIC und Belegung der IRQ Master Slave Verwendung im PC Master PIC 8259 Datenbus D7-D Interrupt- Steuerung Slave PIC IRQ IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ8 IRQ9 IRQ1 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 Timer Tastatur Slave PIC Echtzeituhr Frei oder reserviert Frei Frei Frei oder PS/2-Maus Coprozessor 1. IDE-Controller 2. IDE-Controller COM2 COM1 LPT2 PIC = Programmierbarer Interrupt Controller IRQ6 IRQ7 Diskettencontroller LPT1 Folie 174

34 Zuordnung der PIRQ-Eingänge eines APIC Beispiel: ASUS P4B533 für Pentium IV Quelle: c t 22/19 Die Zuordnung der PIRQ kann von BIOS oder BS mittels Register der Southbridge vorgenommen werden. Folie 175 Beispiel: Interrupt-Service-Routine.CODE MOV AX,@data ;Beginn des Hauptprogramms MOV DS,AX ; Interrupt-Vektor in Tabelle eintragen MOV AX, ;Int.-Vektor-Tabelle beginnt mit Adr. MOV ES,AX ;ES zeigt auf Beginn Vektor-Tabelle MOV AX,@CODE ;Beginn des Code-Segments der ISR MOV BX,OFFSET ISR ;IP der Interrupt-Service-Routine CLI ;Interrupts sperren MOV ES:1CH*4+2,AX ;Vektor in Interrupt-Vektor-Tabelle MOV ES:1CH*4,BX ; eintragen (z.b. 1C = INT-Nummer) STI ;Interrupts freigeben <<<< das eigentliche Hauptprogramm >>>> ; Interrupt-Service-Routine ;========================== ISR PROC FAR PUSH AX ;Alle in ISR benutzten Register sichern PUSH DS MOV AX,@DATA ;Aufsetzen, da DOS beispielsweise bei der MOV DS,AX ; Zeichenausgabe DS veraendert <<<< die eigentliche Interrupt-Service-Routine >>>> POP DS ;Register restaurieren POP AX IRET ;Return from Interrupt ISR ENDP Folie 176

3. Rechner- und Prozessorarchitekturen

3. Rechner- und Prozessorarchitekturen 3. Rechner- und Prozessorarchitekturen 3.1 Entwicklung der Rechnertechnik 3.2 Grundlegende Rechnerarchitekturen 3.3 Architektur und Maschinenbefehle des 886, Interrupts Folie 19 3.1 Entwicklung der Rechnertechnik

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

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

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

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

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

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

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

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

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

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Von-Neumann-Rechner (John von Neumann : 1903-1957) C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Quelle: http://www.cs.uakron.edu/~margush/465/01_intro.html Analytical Engine - Calculate

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

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

Ü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

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

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

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

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

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

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

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

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

2. Rechnerarchitektur 2.1 einfache Computer

2. Rechnerarchitektur 2.1 einfache Computer Fakultät Informatik Institut Systemarchitektur Professur Rechnernetze WS 2012 LV Informatik-I für Verkehrsingenieure 2. Rechnerarchitektur 2.1 einfache Computer Dr. rer.nat. D. Gütter Mail: WWW: Dietbert.Guetter@tu-dresden.de

Mehr

Teil 1: Prozessorstrukturen

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

Mehr

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

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Funktionsweise von Computern Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Inhalt 1. Ein Blick zurück 2. Stand

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

Das Rechnermodell von John von Neumann

Das Rechnermodell von John von Neumann Das Rechnermodell von John von Neumann Historisches Die ersten mechanischen Rechenmaschinen wurden im 17. Jahhundert entworfen. Zu den Pionieren dieser Entwichlung zählen Wilhelm Schickard, Blaise Pascal

Mehr

01.11.2012. Vorlesung Programmieren. Inhalt. Funktionsweise von Computern. Ein Blick zurück. 1. Ein Blick zurück. 2.

01.11.2012. Vorlesung Programmieren. Inhalt. Funktionsweise von Computern. Ein Blick zurück. 1. Ein Blick zurück. 2. Vorlesung Programmieren Funktionsweise von Computern Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Inhalt 1. Ein Blick zurück 2. Stand

Mehr

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

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

Mehr

Klausur zur Mikroprozessortechnik

Klausur zur Mikroprozessortechnik Prof. Dr. K. Wüst WS 2001 FH Gießen Friedberg, FB MNI Studiengang Informatik Klausur zur Mikroprozessortechnik Nachname: Vorname: Matrikelnummer: 7.3.2001 Punkteverteilung Aufgabe Punkte erreicht 1 3 2

Mehr

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

Mehr

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

Technische Informatik I

Technische Informatik I Technische Informatik I SS 2001 PD Dr. A. Strey Abteilung Neuroinformatik Universität Ulm Inhalt Einführung: Überblick über die historische Entwicklung der Rechnerhardware Teil 1: Digitale Logik kurzer

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

Technische Informatik 2 Adressierungsarten

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

Mehr

Elektromechanische Computer

Elektromechanische Computer Elektromechanische Computer Erfinder, ihre Biographien und Maschinen Konrad Zuse George Stibitz Howard Aiken Konrad Zuse: Biographie I Geburt: 22.06.1910 in Berlin 1928 Studium Maschinenbau (TH Berlin-Charl.),

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

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

Mehr

Welches Register wird für was verwendet?

Welches Register wird für was verwendet? Welches Register wird für was verwendet? AX Register: Arithmetische Funktionen BX Register: Arbeitsspeicher adressieren (lea ; mov bx, offset), kann als Zeiger im Datensegment verwendet werden (siehe Direkter

Mehr

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner Institut für Telematik Universität zu Lübeck Programmieren Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 8/9 Prof. Dr. Christian Werner 3- Überblick Typische Merkmale moderner Computer

Mehr

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen 4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen Ein Rechner besteht aus den folgenden Bestandteilen: Rechenwerk Rechenoperationen wie z.b. Addition, Multiplikation logische Verknüpfungen

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

Allgemeine Informatik Thema 1 Informatik; Konzepte

Allgemeine Informatik Thema 1 Informatik; Konzepte Conf. dr. I. Intorsureanu Wirtschaftsakademie Bukarest Allgemeine Informatik Thema 1 Informatik; Konzepte Inhalt: Informatik Information und Daten Computer Hardware und Software Historischer Überblick

Mehr

3. Rechnerarchitektur

3. Rechnerarchitektur ISS: EDV-Grundlagen 1. Einleitung und Geschichte der EDV 2. Daten und Codierung 3. Rechnerarchitektur 4. Programmierung und Softwareentwicklung 5. Betriebssyteme 6. Internet und Internet-Dienste 3. Rechnerarchitektur

Mehr

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt Inhalt 1. Geschichte Folie 1 Lernziele Sie kennen die wichtigsten Punkte in der Geschichte des Computers Sie sind mit einigen Begriffen vertraut Folie 2 Seite 1 Computer als elektronische Rechenmaschine:

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

HW- und SW-Komponenten eines PC. IBM 5150 aus dem Jahre 1981

HW- und SW-Komponenten eines PC. IBM 5150 aus dem Jahre 1981 HW- und SW-Komponenten eines PC IBM 5150 aus dem Jahre 1981 Anfänge des Computers 1941: Zuse Z3 in Deutschland entwickelt erster programmierbarer Rechner mit mechanischen Relais 1944: ENIAC In den USA

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Geschichte und Einteilung der Informatik 01101101 01011001 11010011 10011000 00000011 00011100 01111111 11111111 00110100 00101110 11101110 01110010 10011101 00111010 2 Der

Mehr

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

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

Mehr

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

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

Arbeitsfolien - Teil 4 CISC und RISC

Arbeitsfolien - Teil 4 CISC und RISC Vorlesung Informationstechnische Systeme zur Signal- und Wissensverarbeitung PD Dr.-Ing. Gerhard Staude Arbeitsfolien - Teil 4 CISC und RISC Institut für Informationstechnik Fakultät für Elektrotechnik

Mehr

Einführung. Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck

Einführung. Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck Einführung Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck Überblick Motivation Komponenten eines Rechners Historische Entwicklung Technologische Grundlagen

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

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

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

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 22 September 2014 1 / 24 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte des Computers 4 Komponenten eines Computers 5 Aufbau eines

Mehr

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Informatik - Lehrgang 2000/2001 GRUNDLAGEN Informatik - Lehrgang 2000/2001 GRUNDLAGEN Ein Überblick! Das Werden der Informatik! Daten! Technische Informatik Der von Neumann Computer Versuch einer Entmystifizierung 2 Grundlagen Micheuz Peter Das

Mehr

Die Geschichte des Computers

Die Geschichte des Computers Inhaltsverzeichnis Der Vorbote des Computers... 3 Der Erfinder des ersten Computers... 3 Die Computer... 4 Der erste Computer Z1... 4 Der zweite Computer Z3... 5 Der Mark I... 6 Der ENIAC... 7 Der SSEC...

Mehr

Thema 3. von Neumann Architektur, CPU, Befehle

Thema 3. von Neumann Architektur, CPU, Befehle Thema 3 von Neumann Architektur, CPU, Befehle zus. Literaturempfehlungen /1/ John von Neumann: First draft of a report on the EDVAC. /2/ Meiling, Fülle: Mikroprozessoren und Mikrorechner. Akademie-Verlang

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Hardwareaufbau der Mikrocontroller der 51er -Familie

Hardwareaufbau der Mikrocontroller der 51er -Familie Hardwareaufbau der Mikrocontroller der 51er -Familie Mikrocontroller (51er Familie) Quarz Port Timer A D Serielle Schnittst. CPU ROM RAM Ext. ROM Ext. RAM Programmspeicher (ROM) Datenspeicher (RAM) FFFFh

Mehr

Turbo Assembler TASM. Man findet den TASM auf meiner Homepage in folgendem Verzeichnis. Informationstechnik speziell Systemsoftware

Turbo Assembler TASM. Man findet den TASM auf meiner Homepage in folgendem Verzeichnis. Informationstechnik speziell Systemsoftware Turbo Assembler TASM Man findet den TASM auf meiner Homepage in folgendem Verzeichnis Informationstechnik speziell Systemsoftware 1 Disk1, Disk2 und Disk3 alle in ein Verzeichnis kopieren. Dann install.exe

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

Technische Informatik. Der VON NEUMANN Computer

Technische Informatik. Der VON NEUMANN Computer Technische Informatik Der VON NEUMANN Computer Inhalt! Prinzipieller Aufbau! Schaltkreise! Schaltnetze und Schaltwerke! Rechenwerk! Arbeitsspeicher! Steuerwerk - Programmausführung! Periphere Geräte! Abstraktionsstufen

Mehr

Geschichte der Informatik

Geschichte der Informatik Entwicklung von Informationstechnik und Durchdringung des Alltags seit der 2. Hälfte des 20 Jahrhunderts explosionsartig Informationsgesellschaft Zunehmende Bedeutung und Wert von Informationen Schnelle

Mehr

Betriebssysteme Kap B: Hardwaremechanismen

Betriebssysteme Kap B: Hardwaremechanismen 1 Betriebssysteme Kap B: Hardwaremechanismen 2 Beispielprozessor Ein- / Ausgabe p[ ] ir Leitwerk pc Register a f sp Rechenwerk Speicher m[ ] Spezielle Register Flagregister f f.i: Interrupt-Enable-Flag

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

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Erweiterung

Mehr

Technische Informatik 2 Maschinenprogrammierungskonzepte

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

Mehr

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

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Teil I Definition, Geschichte und Teilgebiete der Informatik Seite 1 Wer steht da? M. Eng. Robert Maaßen ich@robertmaassen.de www.robertmaassen.de Studium: Informatik Vertiefungsrichtung

Mehr

Professionell programmieren

Professionell programmieren Professionell programmieren Per XMS-Treiber kontrolliert das Extended-RAM benutzen Eines ist seit Windows sicher: der Vormarsch der Grafikapplikationen ist unaufhaltsam. Dadurch wird der Platz im Speicher

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Wie arbeiten Computer?

Wie arbeiten Computer? Autor: Ortmann, Jürgen. Titel: Wie arbeiten Computer? Quelle: Einführung in die PC-Grundlagen. München, 8. Auflage, 2003. S. 29-41. Verlag: Addison-Wesley Verlag. Die Veröffentlichung erfolgt mit freunlicher

Mehr

Informatik Mensch Gesellschaft. Historische Entwicklung der Informationstechnik (von Anfang bis Heute)

Informatik Mensch Gesellschaft. Historische Entwicklung der Informationstechnik (von Anfang bis Heute) Informatik Mensch Gesellschaft Historische Entwicklung der Informationstechnik (von Anfang bis Heute) Algorithmen-Automat Schritt-für-Schritt-Anleitung zum Lösen mathematischer Probleme kann immer wieder

Mehr

Mikrocomputertechnik. Einadressmaschine

Mikrocomputertechnik. Einadressmaschine technik Einadressmaschine Vorlesung 2. Mikroprozessoren Einführung Entwicklungsgeschichte Mikroprozessor als universeller Baustein Struktur Architektur mit Akku ( Nerdi) FH Augsburg, Fakultät für Elektrotechnik

Mehr

7 Ein einfacher CISC-Prozessor

7 Ein einfacher CISC-Prozessor 7 Ein einfacher CISC-Prozessor In diesem Kapitel wird ein einfacher Prozessor vorgestellt. Die Architektur, die wir implementieren, wurde von R. Bryant und D. O Hallaron entworfen und verwendet eine Untermenge

Mehr

9.0 Komplexe Schaltwerke

9.0 Komplexe Schaltwerke 9.0 Komplexe Schaltwerke Die Ziele dieses Kapitels sind: Lernen komplexe Schaltwerke mittels kleinerer, kooperierender Schaltwerke zu realisieren Verstehen wie aufgabenspezifische Mikroprozessoren funktionieren

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

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

Die Daten (Befehle und numerische Daten) werden in Form von BIT-Folgen verarbeitet. Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-lab en sind kleine Computer, die mit externen Geräten Daten austauschen können. Sie verfügen über Speicher, um Programme und Daten zu speichern und Eingangsund

Mehr

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS2010/2011 Aufgabe 2 - Erweiterung um

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

Befehlssatz AVR RISC Controller

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

Mehr

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Kapitel 2. Zahlensysteme, Darstellung von Informationen Kapitel 2 Zahlensysteme, Darstellung von Informationen 1 , Darstellung von Informationen Ein Computer speichert und verarbeitet mehr oder weniger große Informationsmengen, je nach Anwendung und Leistungsfähigkeit.

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

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

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

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

Mehr

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

Praktikum Mikrocomputertechnik. Anleitung

Praktikum Mikrocomputertechnik. Anleitung Praktikum Mikrocomputertechnik Anleitung Im Praktikum wird der Mikrocontroller 68332 von Motorola verwendet. Dieser Mikrocontroller besteht aus einer 32-Bit CPU und integrierten Peripheriebausteinen (ser.

Mehr

Ein Computer zum Selbstbauen

Ein Computer zum Selbstbauen www. MyCPU.eu Ein Computer zum Selbstbauen von Dennis Kuschel Gliederung: 1. Was ist die MyCPU und warum existiert sie? 2. Architektur der MyCPU 3. Befehlssatz 4. Emulator 5. Software 6. Nachbau Was ist

Mehr

GESCHICHTE DER COMPUTERTECHNIK

GESCHICHTE DER COMPUTERTECHNIK GESCHICHTE DER COMPUTERTECHNIK Rebekka Mönch Projekt ://reisefieber WS 2005/06 Bauhaus-Universität Weimar Ich glaube, dass es auf der Welt einen Bedarf von vielleicht fünf Computern geben wird. Künftige

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