Download - Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

Transcript
Page 1: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

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

Page 2: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 3: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 4: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

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

Page 5: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 6: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 7

Grundlegende Rechnerarchitekturen

Page 7: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 8

Grundlegende Rechnerarchitekturen

Page 8: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 9: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 10

8086-Architektur

Quelle: Wikipedia

1978 bis 1990er

Page 10: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 11: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 12

8086-Architektur

Page 12: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 13: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 14

CPU-Architektur - Registersatz 8086

Page 14: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 15: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 16: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 17: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 18: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

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

Page 19: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 20: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 21: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 22: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 23: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 24: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 25: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

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

Page 26: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 27: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 28: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 29: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 30: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 31: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 32: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 33: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 34: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 35: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 36: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 37: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 38: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 39: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 40: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 41: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 42: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 45

8086 AdressierungsartenUnmittelbare Adressierung (kein Speicherzugriff)

Direkte Registeradressierung (kein Speicherzugriff)

Page 43: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 46

8086 AdressierungsartenDirekte Speicheradressierung

Indirekte Speicheradressierung

[...] Inhalt von …

Page 44: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 47

8086 AdressierungsartenIndizierte Adressierung

Basisadressierung

Page 45: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 48

8086 AdressierungsartenBasisindizierte Adressierung

Page 46: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© IKS 2017H.-D. Wuttke, K. Henke 12.01.2017 www.tu-ilmenau.de/iks 49

8086 AdressierungsartenAbsolute Sprungbefehle (im Codesegment)

Relative Sprungbefehle (im Codesegment)

Page 47: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

© 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

Page 48: Mathematische Grundlagen (1) Boolesche Algebren: BMA, · PDF file8086 Segment-Speichermodell • der 8086 kann maximal 1 MByte (220 = 1.048.576 Byte) physikalisch adressieren, •

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