© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 1
Rechnerorganisation
• Mathematische Grundlagen (1)Boolesche Algebren: BMA, BAA (2,3)Kombinatorische Schaltungen (4,5)Automaten (6,7)Sequentielle Schaltungen (8)Programmierbare Strukturen (9) Rechneraufbau und ~funktion (10,11)Informationskodierung (12,13,14)
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 2
Rechneraufbau und ~funktion• Begriffe, Schichtenmodell eines Rechnersystems• Einführung in die 8086-Architektur
– Grundsätzlicher Aufbau eines Mikrocomputers– CPU-Architektur und Registerstruktur
• Universalregister• Index- und Pointerregister• Flags• Segmentregister
– Segment-Speichermodel– Grundlegende Befehle– Adressierungsarten
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 3
Aufbau eines Universalrechners
CPU
ALU
CU
Haupt-Speicher
VerarbeitungEingabe Ausgabe
• Tastatur,• Maus,• Scanner
• Monitor,• Drucker
Externer SpeicherCD, DVD, USB-Stick, HD, NAS
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 4
Speicherhierarchie
Byte
KByte
GByte
TByte
xTByte
Zugr
iffsz
eit
1 ns
2-4 ns
6-8 ns
10 ms
Kos
ten
je B
it
Relative Speichergröße
Cache = Kaschierer (Verdecker), Versteck, Depot • Schneller Pufferspeicher, der den nachgeordneten langsamen Speicher kaschiert/verdeckt• Ohne Cache müßte die CPU auf den RAM-Speicher warten (d.h. Wartezyklen einfügen)
CPURegister
Cache
Massenspeicher (Festplatte)
Hauptspeicher (RAM)
Archivspeicher (CD, DVD, USB-Stick, NAS)
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 6
Aufbau eines Universalrechners
Systembus
CPU ROM RAM DMA
Datenbus
Adressbus
Steuerbus
Schnittstelle
I/O - Gerät
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 7
Grundlegende Rechnerarchitekturen
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 8
Grundlegende Rechnerarchitekturen
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 9
Rechneraufbau und ~funktion• Begriffe, Schichtenmodell eines Rechnersystems• Grundsätzlicher Aufbau eines Mikrocomputers• Einführung in die 8086-Architektur
– CPU-Architektur und Registerstruktur• Universalregister• Index- und Pointerregister• Flags• Segmentregister
– Segment-Speichermodel– Grundlegende Befehle– Adressierungsarten
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 10
8086-Architektur
Quelle: Wikipedia
1978 bis 1990er
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 11
Direkt verwaltbare Adressräume
Adresslänge (bit)
MöglicheSpeichergröße
Beispiel
16 64 kByte Z 80
20 1 MByte 8086
24 16 MByte 80286, Motorola 6800, 68010
32 4 GByte 80386, Sparc-Proz., Motorola 68020
36 64 GByte mögl. Mode bei Pentium Pro
40 1 TByte alle 64 Bit Prozessoren
48 256 TByte noch nicht üblich
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 12
8086-Architektur
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 13
Rechneraufbau und ~funktion• Begriffe, Schichtenmodell eines Rechnersystems• Grundsätzlicher Aufbau eines Mikrocomputers• Einführung in die 8086-Architektur
– CPU-Architektur und Registerstruktur• Universalregister• Index- und Pointerregister• Flags• Segmentregister
– Segment-Speichermodel– Grundlegende Befehle– Adressierungsarten
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 14
CPU-Architektur - Registersatz 8086
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 15
CPU-Architektur – Registersatz 8086
ALBLCL
AHBHCHDH DL
BPSIDISP
EAXEBXECXEDXEBPESIEDIESP
015 731
AHBH
ALBL
CH CLDH DL
BPSIDISP
15 07
AXBXCXDX
CSDSSSES
CSDSSSESFSGS
Vielzweckregister Vielzweckregister
Segmentregister
Segmentregister
Befehlszähler
Flag-RegisterFlags Flags
IP IPEIP
E-Flags
bis 80286 ab 80386
015
15 0
15 0 15 031
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 16
CPU-Architektur – Registersatz 8086
1. Allgemeine Datenregister
2. Indexregister
3. Zeigerregister
4. Befehlszeiger und Flags
5. Segmentregister
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 17
8086 Registersatz(1) Allgemeine Datenregister AX, BX, CX, DX• 16 Bit-Register
• für Operationen mit 16 Bit-Operanden
• jedes Register kann bei Bedarf in zwei separate 8 Bit-Register geteilt werden
16 Bit
2 x 8 Bit
• alle Register können als allgemeine Datenregister verwendet werden
• einige Befehle verlangen aber die Anwendung bestimmter Register
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 18
8086 Registersatz(1) Allgemeine Datenregister AX, BX, CX, DX• AX – Akkumulator (Akku)
o speziell für Multiplikation, Division E/A-Operationen nur mit AX möglich String-Operationen 8 Bit-Arithmetik-Operationen
o verkürzt bei verschiedenen Befehlen die Abarbeitungszeit
o historische Sonderstellung: ältere Prozessoren hatten nur ein Register, um Daten zu addieren (akkumulieren)
o z.B.: MOV AL,10H ; auszugebenden Operanden (10H = 16) in AL laden
OUT 60H,AL ; auszugebenden Operanden über I/O-Port
; (Portadresse 60H) ausgeben
MUL BX ; DX:AX = BX * AX
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 19
8086 Registersatz(1) Allgemeine Datenregister AX, BX, CX, DX• BX – Basis-Register (base register)
o zur temporären Speicherung von Daten
o als Basisadresse bei der Bildung der Speicheradresse (als Zeiger auf die Basisvon Datenobjekten, z.B. Beginn eines Feldes)
o z.B.: MOV AX,[BX] ; AX mit dem Wert der Speicherzelle(n) laden,
; dessen Adresse in BX steht
; (2 aufeinanderfolgende 8 Bit-Speicherinhalte)
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 20
8086 Registersatz(1) Allgemeine Datenregister AX, BX, CX, DX• CX – Zähl-Register (counter register)
o zur temporären Speicherung von Daten
o als Zählregister für Schleifen (z.B. LOOP) Verschiebungen (z.B. SHL) Rotationen (z.B. ROL) Wiederholte Stringbefehle
o dabei automatisches Dekrementieren von CX bei jedem Schleifendurchlauf
o z.B.: MOV CX,10H ; CX mit 10H = 16 = Anzahl der Durchläufe laden,
label: OUT 60H,AL ; AL auf I/O-Port 60H ausgeben
LOOP label ; 16 Wiederholungen bis CX = 0
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 21
8086 Registersatz(1) Allgemeine Datenregister AX, BX, CX, DX• DX – Daten-Register (data register)
o zur temporären Speicherung von Daten
o als Akku-Erweiterung bei Multiplikation/Division
o für Ein/Ausgabe-Operationen enthält die Portadresse (0000H … FFFF H) einzige Möglichkeit, Portadressen > 255 anzusprechen
o z.B.: MUL BX ; DX:AX = BX * AX
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 22
CPU-Architektur – Registersatz 8086
1. Allgemeine Datenregister
2. Indexregister
3. Zeigerregister
4. Befehlszeiger und Flags
5. Segmentregister
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 23
8086 Registersatz(2, 3) Indexregister (SI, DI) und Zeigerregister (SP, BP)• zur temporären Speicherung von 16 Bit-Daten nutzbar
• Speicheradressierung in Verbindung mit den Segmentregistern oder dem Basisregister BX
• SI, DI – Indexregister (SI - source index, DI - destination index)o meist als Index (Pointer) auf einen Operanden innerhalb eines Feldes (Offsetadresse),
dessen Basisadresse in BX steht
o vor allem bei Zeichenketten-Befehlen
• SP, BP – Zeigerregister (SP – stack pointer, BP – base pointer)o enthalten die Offsetadressen für Operationen im Stack-Segment
o zum Aufbau eines Stacks (Stapel, Kellerspeicher) Arbeitsweise: LIFO (last in - first out) zeigt immer auf das Ende des Stacks
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 24
CPU-Architektur – Registersatz 8086
1. Allgemeine Datenregister
2. Indexregister
3. Zeigerregister
4. Befehlszeiger und Flags
5. Segmentregister
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 25
8086 Registersatz(4) Befehlszeiger und Statusregister (Flags)• IP – Befehlszeiger (instruction pointer)
o enthält die Offsetadresse des nächsten abzuarbeitenden Befehls, der aus dem Codesegment gelesen wird
o vollständige Adresse besteht aus: Inhalt CS (Basisadresse des Codesegments) und IP (Offset) CS:IP
• PSW – Statusregister/Flags (program status word)o Sammlung von einzelnen Statusindikatoren (Flags)
o Ergebnis-Flags der ALU: zeigen den Zustand der letzten arithmetischen Operation an,
o Status-Flags des Steuerwerkes: dienen der Programmsteuerung und können über Befehle gesetzt oder gelöscht werden
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 26
8086 Registersatz(4) Befehlszeiger und Statusregister (Flags)• PSW – Statusregister/Flags (program status word)
o Flags können gesetzt 1 rückgesetzt 0 nicht beeinflußt x undefiniert u
sein.
o Je nach Zustand der Flags trifft der Prozessor entsprechende Entscheidungen z.B.: CMP AL,‘0‘ ; vergleiche Inhalt von AL mit ASCII-Zeichen ‘0‘ (30H)
JNZ marke_1 ; wenn Z-Flag nicht gesetzt (=0), springe zu marke_1
o Ergebnis-Flags der ALU: O Overflow (Überlauf) C Carry (Übertrag) S Sign (Vorzeichen) Z Zero (Null) A Auxiliary (Hilfsübertrag) P Parity (Parität. gerade Anzahl 1en)
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 27
CPU-Architektur – Registersatz 8086
1. Allgemeine Datenregister
2. Indexregister
3. Zeigerregister
4. Befehlszeiger und Flags
5. Segmentregister
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 28
8086 Registersatz(5) Segmentregister CD, DS, SS, ES
o enthalten die 16 Bit-Basisadressen für die 4 Speichersegmente, mit denen der 8086 gleichzeitig arbeiten kann
CS – Bsisadresse des Codesegmentso Speicherbereich für das aktuelle Programm
DS – Bsisadresse des Datensegmentso Speicherbereich für die Daten des aktuellen Programms
SS – Bsisadresse des Stacksegmentso bildet den Stack für das aktuelle Programm
ES – Bsisadresse des Extradatensegmentso vorrangig für Zeichenketten-Befehle, ähnlich dem Datensegment
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 29
Rechneraufbau und ~funktion• Begriffe, Schichtenmodell eines Rechnersystems• Grundsätzlicher Aufbau eines Mikrocomputers• Einführung in die 8086-Architektur
– CPU-Architektur und Registerstruktur• Universalregister• Index- und Pointerregister• Flags• Segmentregister
– Segment-Speichermodel– Grundlegende Befehle– Adressierungsarten
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 30
8086 Segment-Speichermodell• der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren,
• Registersatz aber nur 16 Bit breit,
• mit 16 Adressbits lassen sich nur 64 kByte (216 = 65536 Byte) adressieren,
• der 1 MByte Adressraum wird deshalb in (vier) Segmente zu je 64 kByte geteilt
Segment:o logische Einheit aufeinanderfolgender Speicherzellen
o 64 kByte groß (0000 H ... FFFF H)
o jedem Segment ist eine Basisadresse zugeordnet, die in dem entsprechendenSegmentregister (CS, DS, DS, ES) abgelegt ist
o innerhalb eines Segments werden die Speicherzellen durch ihren Abstand (16 Bit Offset/Offsetadresse) von der Basisadresse adressiert
o Segmente können mit oder ohne Lücke aneinander gereiht sein oder sich teilweise oder ganz überlappen
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 31
8086 Segment-Speichermodell• eine Speicherzelle kann mehreren Segmenten zugeordnet sein
o sie hat genau 20 Bit eine physikalische Adresse,
o kann aber mehrere logische Adressen (Segmentadresse : Offset) haben
Bildung der physikalischen Adresseo im Adreßgenerator innerhalb der CPU
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 33
8086 Segment-SpeichermodellStandardzuordnungen• Befehlsadresse im CS CS : IP
• Stackadresse im SS SS : SP
SS : BP
• Operandenadresse im DS DS : Offset
DS : SI
DS : DI
• Operandenadresse bei Stringbefehlen im DS DS : SI
DS : DI
Beispiele
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 35
Rechneraufbau und ~funktion• Begriffe, Schichtenmodell eines Rechnersystems• Grundsätzlicher Aufbau eines Mikrocomputers• Einführung in die 8086-Architektur
– CPU-Architektur und Registerstruktur• Universalregister• Index- und Pointerregister• Flags• Segmentregister
– Segment-Speichermodel– Grundlegende Befehle– Adressierungsarten
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 36
8086 Grundlegende BefehleBefehhlsgruppen (Prozessor- und Herstellerunabhängig)
1. Datentransfer-Befehle
2. Arithmetik-Befehle
3. Logik-, Bitmanipulations- und Schiebe-Befehle
4. Zeichenketten-Befehle
5. Befehle zur Programmsteuerung
6. Befehle zur Prozessorsteuerung
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 37
8086 Grundlegende Befehle(1) Datentransfer-Befehle (keile ALU-Flagbeeinflussung)
• Transportbefehle MOV dest,src dest … destination (Ziel) / src … source (Quelle)
XCHG dest,src
• Stackbefehle PUSH register
POP register
• Ein/Ausgabebefehle IN portadresse
OUT portadresse
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 38
8086 Grundlegende Befehle(2) Arithmetik-Befehle• Grundrechenarten ADD dest,src
MUL AL AX = AH * AL (8 Bit * 8 Bit)
MUL CX DX:AX = AX * CX (16 Bit * 16 Bit)
• Inkrementieren, Dekrementieren INC, DEC
• Vergleich CMP op1,op2 op1 … operand 1
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 39
8086 Grundlegende Befehle(3) Logik-, Bitmanipulations- und Schiebe-Befehle• Logische Grundoperationen NOT, AND, OR, XOR
• Test TEST register,bit
• Schiebebefehle, Rotationen SHL, SHR
ROL, ROR
(4) Zeichenketten-Befehle
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 40
8086 Grundlegende Befehle(5) Befehle zur Programmsteuerung• Sprungbefehle bedingt, unbedingt (entsprechend der Flag-Bedingungen)
absolut, relativ
• Unterprogramm-Aufrufe CALL, RET
• Schleifen LOOP schleifenanfang
• Interrupt-Befehle INT interrupt number
IRET
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 41
8086 Grundlegende Befehle(6) Befehle zur Prozessorsteuerungsteuerung• System anhalten HLT
• No Operation (nichts tun) NOP
• Schleifen LOOP schleifenanfang
• Flag-Beinflussung Setzen einzelner Flags
Rücksetzen einzelner Flags
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 42
Rechneraufbau und ~funktion• Begriffe, Schichtenmodell eines Rechnersystems• Grundsätzlicher Aufbau eines Mikrocomputers• Einführung in die 8086-Architektur
– CPU-Architektur und Registerstruktur• Universalregister• Index- und Pointerregister• Flags• Segmentregister
– Segment-Speichermodel– Grundlegende Befehle– Adressierungsarten
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 43
8086 Adressierungsarten• Die meisten Befehle enthalten zwei Operanden
Ziel-Operand dest (destination)
Quell-Operand src (source)
• Für Speicherzugriffe und E/A-Ports müssen physische Adressen berechnet werden
4 verschiedene Operanden-Typen: direkte Werte (nur als Quell-Operand)
Operanden in Registern
Operanden in Speicherzellen
Ein/Ausgabe-Ports
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 44
8086 Adressierungsarten4 Elemente zur Bildung der Speicheradresse:
Segmentregister (CS, DS, SS, ES)
Basisregister (BX)
Indexregister (SI, DI)
Offset (Displacement, konstanter Abstand zum Segmentbeginn)
daraus ergeben sich prinzipiell 5 verschiedene Adressierungsarten: direkt
indirekt
relativ
indiziert
basisindiziert
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 45
8086 AdressierungsartenUnmittelbare Adressierung (kein Speicherzugriff)
Direkte Registeradressierung (kein Speicherzugriff)
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 46
8086 AdressierungsartenDirekte Speicheradressierung
Indirekte Speicheradressierung
[...] Inhalt von …
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 47
8086 AdressierungsartenIndizierte Adressierung
Basisadressierung
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 48
8086 AdressierungsartenBasisindizierte Adressierung
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 49
8086 AdressierungsartenAbsolute Sprungbefehle (im Codesegment)
Relative Sprungbefehle (im Codesegment)
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 50
ÜbungsaufgabeWelchen Zahlenwert enthält das Register AX nach Abarbeitung der Befehlsfolge?
Wieviel mal wird die Schleife durchlaufen?
MOV AX,0400H
MOV BX,AX
M1: SHR BX,1
JZ M2
SUB AX,BX
JMP M1
M2: NOP
© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 51
Das war‘s für heute ...
Viel Spaß beim Wiederholen!Bis nächsten Donnerstag 15.00 ...
Top Related