3. Rechner- und Prozessorarchitekturen
|
|
- Meta Brodbeck
- vor 7 Jahren
- Abrufe
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.1 Entwicklung der Rechnertechnik 3.2 Grundlegende Rechnerarchitekturen 3.3 Architektur und Maschinenbefehle des 886, Interrupts Folie 19 3.1 Entwicklung der Rechnertechnik
MehrDie Mikroprogrammebene eines Rechners
Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.
Mehr1.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
MehrKap 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.).
MehrBrü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
Mehr1. Ü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
MehrINFORMATIK 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
MehrVorlesung 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
Mehr3.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
MehrMikroprozessor 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
MehrL3. Datenmanipulation
L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus
MehrIm 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
MehrC. 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
MehrRechner 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
Mehrx86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013
x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle
MehrÜbungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c
Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach
Mehr2.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
MehrAufbau 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)
MehrTIn 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
MehrDer 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
MehrDer 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.
MehrBeim 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
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrAssembler-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
MehrMikroprozessor 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.
MehrDie 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
Mehr2. 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
MehrTeil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
MehrInstruktionssatz-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
MehrVorlesung 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
MehrTeil 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
MehrDas 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
Mehr01.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
MehrName: 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
MehrKlausur 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
MehrMikrocomputertechnik. 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
Mehr3 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
MehrTechnische 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
MehrProzessor 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
MehrTechnische 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
MehrElektromechanische 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.),
MehrAlgorithmen 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.
MehrComputer-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
MehrWelches 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
MehrProgrammieren. 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
Mehr4 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
MehrB1 Stapelspeicher (stack)
B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen
MehrAllgemeine 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
Mehr3. 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
MehrFHZ. 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:
MehrCompiler: 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
MehrHW- 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
MehrEinfü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
MehrRechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7
1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht
Mehr0 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
MehrMidterm-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
MehrArbeitsfolien - 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
MehrEinfü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
MehrTechnische 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
MehrJohann 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
MehrDATEN 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:
MehrBrü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
MehrInformatik - 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
MehrDie 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...
MehrThema 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
MehrGrundlagen 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
MehrHardwareaufbau 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
MehrTurbo 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
MehrFehlerkorrektur 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
MehrTechnische 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
MehrGeschichte 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
MehrBetriebssysteme Kap B: Hardwaremechanismen
1 Betriebssysteme Kap B: Hardwaremechanismen 2 Beispielprozessor Ein- / Ausgabe p[ ] ir Leitwerk pc Register a f sp Rechenwerk Speicher m[ ] Spezielle Register Flagregister f f.i: Interrupt-Enable-Flag
MehrZahlendarstellungen 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
MehrAufgabe 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
MehrTechnische 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
MehrRechnerarchitektur. 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
MehrGrundlagen 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
MehrProfessionell 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
MehrEinfü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
MehrWie 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
MehrInformatik 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
MehrMikrocomputertechnik. 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
Mehr7 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
Mehr9.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
MehrFunktionaler 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
MehrDie 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
MehrAufgabe 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
Mehrbereits 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
MehrBefehlssatz AVR RISC Controller
Befehlssatz AVR RISC Controller Design-Philosophie des AVR Befehlssatzes Assembler-Sprache AVR-Befehlssatz Philosophie RISC = Reduced Instruction Set Computing keine komplexen Befehle möglichst symmetrischer
MehrKapitel 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.
MehrInterrupts. 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
MehrSucosoft 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
MehrJMPCN 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
MehrModul 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
MehrProgrammieren 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
MehrRechnerorganisation 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
MehrPraktikum 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.
MehrEin 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
MehrGESCHICHTE 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
MehrEinfü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