TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter...

33
TU Ilmenau, Institut TTI, FG RA Rechnerarchitekturen 1 - Arbeitsblätter Däne/Nützel Prof. Fengler Materialien zur Lehrveranstaltung Rechnerarchitekturen 1 (Studiengang IN) Rechnerarchitekturen (Studiengänge WI, MT) Technische Informatik 2 (Modularisiertes Ingenieurstudium) Arbeitsblätter zur Übung Diese Arbeitsblätter dienen zum Nachschlagen beim Lösen der Übungsaufgaben. Zur Prüfung bitte mitbringen!!! im Originalzustand TU Ilmenau, Fakultät IA, Institut TTI Fachgebiet Rechnerarchitekturen März 2005 Druck und Vervielfältigung nur zum persönlichen Gebrauch! Bitte benutzen Sie nur aktuelles Material! Die neueste Version finden Sie stets unter http://tin.tu-ilmenau.de/ra/

Transcript of TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter...

Page 1: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Materialien zur Lehrveranstaltung

Rechnerarchitekturen 1(Studiengang IN)

Rechnerarchitekturen(Studiengänge WI, MT)

Technische Informatik 2(Modularisiertes Ingenieurstudium)

Arbeitsblätter zur Übung

Diese Arbeitsblätter dienen zum Nachschlagen beim Lösen der Übungsaufgaben.

Zur Prüfung bitte mitbringen!!!im Originalzustand

TU Ilmenau, Fakultät IA, Institut TTIFachgebiet Rechnerarchitekturen

März 2005

Druck und Vervielfältigung nur zum persönlichen Gebrauch!

Bitte benutzen Sie nur aktuelles Material!Die neueste Version finden Sie stets unter http://tin.tu-ilmenau.de/ra/

Page 2: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

8086

i286

i386

i486

Pentium 64

808680186

80286

80386 DX80386 SX80386 EX

80486 DX80486 SX

PentiumPentium Pro

Pentium 2, 3, 4

Prozessorreihe x86

ItaniumItaniumItanium 2

1

Pentium

Athlon 64 (AMD)Pentium 4

(ab Prescott 2M)

Es ist nur eine Auswahl der Prozessortypen dargestellt. Die Mehrzahl der Typenbeispiele stammtvon der Firma Intel Corp. Einige Hersteller kompatibler Prozessoren wurden nicht berücksichtigt.Alle Warenzeichen sind Eigentum der jeweiligen Firmen.

Page 3: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler 2

physisch:

DS ESCSSSlogisch:

1 MiByte

4 Segmente,je 64 KiByte

16-bit-x86-Programmiermodell

physisch:

DS SSlogisch:

16 MiByte

4 Segmente,je 0 Byte bis64 KiByte

Erweitertes 16-bit-x86-Programmiermodell (IA-16)

ESCS

physisch:

DS SSlogisch:

4 GiByte

6 Segmente,je 0 Byte bis4 GiByte

32-bit-x86-Programmiermodell (IA-32) mit segmentiertem Speicher

ESCS FSGS

Speicherräume in der x86-Welt(vereinfachte Auswahl, nicht maßstäblich)

physisch:

logisch:

4 GiByte

32-bit-x86-Programmiermodell (IA-32) mit flachem Speicher ("flat")

4 GiByte CS = DS = ES = FS = GS = SS

physisch:

logisch:

16 TiByte bis16 EiByte

max. 16 PiByteje Task

IA-64-Programmiermodell

physisch:

logisch:

min. 1 TiByte

max. 256 TiByteje Task

64-bit-x86-Programmiermodell (x86-64)

Page 4: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Overflow (Überlauf)Sign (Vorzeichen)

Zero (Null)Auxiliary Carry (Hilfsübertrag)

Parity (Parität)

Status-FlagsCarry (Übertrag)

Allgemeine Register

(Auswahl der wichtigsten Register)

Aufbau des Flag-Registers (EFLAGS)

Registersatz im 32-bit-x86-Programmiermodell

3

Status- und Steuerregister

31 17 16 123456789101112131415 0

PFAFZFSFTFIFDFOFIOPLNTRFVM CF

I/O Privilege Level(E/A-Privileg-Stufe)

Nested Task(Verschachtelter Prozess)

Resume Debug Breakpoint(Wiederaufnahme nach Break)

Virtual 86 Mode (Virtueller 86 Mode)

System-Flags

Steuer-FlagsTrap Enable (Schrittmodus)

Direction (Richtung)

Interrupt Enable(Unterbrechungs-Freigabe)

EBXBX

BLBH

ECXCX

CLCH

EDXDX

DLDH

EAXAX

ALAH31 15 07

ESI

SI

31 15 0

EDI

DI

EBP

BP

ESP(Stackpointer)

SP

EFLAGS(Prozessorstatusregister)

FLAGS

EIP(Befehlszeiger)

IP

Page 5: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 4

Befehlsliste für das 32-bit-x86-Programmiermodell

Die Befehlsliste umfasst nur die wichtigsten Befehle. Bei einigen Befehlen sind nicht alle Operandenformate dargestellt. Bei der Flagbeeinflussung sind nur CF, ZF, SF und OF berücksichtigt.

Transportbefehle

MOV Kopieren eines Wertes Syntax

MOV reg, reg MOV mem, reg MOV reg, mem MOV reg, const Beschreibung

Kopieren des Wertes des zweiten Operanden in den ersten Operanden Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

MOV EAX, 0FFAB011CH MOV [ESI + EAX * 4 + 0FH], EBX MOV AL, [EBX] MOV [ECX], BX

Page 6: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 5

Arithmetische Befehle

ADD, ADC Addition zweier Operanden Syntax

ADD reg, reg ADD mem, reg ADD reg, mem ADD reg, const Beschreibung

Die beiden Operanden werden addiert. Das Ergebnis der Operation wird im ersten Operanden abgelegt. Bei ADC wird zusätzlich der Wert des Carry-Flags hinzu addiert. Beeinflusste Flags

CF, ZF, SF und OF werden entsprechend dem Ergebnis der Operation gesetzt. Beispiele

ADD AX, BX ADC [EAX], AL

INC Inkrementieren des Operanden Syntax

INC reg Beschreibung

Der Operand wird um Eins erhöht. Beeinflusste Flags

ZF, SF und OF werden entsprechend dem Ergebnis der Operation gesetzt. CF bleibt unverändert. Beispiele

INC AL INC EAX INC BX

Page 7: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 6

SUB, SBB Subtraktion zweier Operanden Syntax

SUB reg, reg SUB mem, reg SUB reg, mem SUB reg, const Beschreibung

Der zweite Operand wird vom ersten Operanden abgezogen. Das Ergebnis der Operation wird im ersten Operanden abgelegt. Bei SBB wird zusätzlich der Wert des Carry-Flags subtrahiert. Beeinflusste Flags

CF, ZF, SF und OF werden entsprechend dem Ergebnis der Operation gesetzt. Beispiele

SUB [EAX + EDI * 8], AL SBB AL, 03FH SUB AL, BL SBB AL, 2

DEC Dekrementieren des Operanden Syntax

DEC reg Beschreibung

Der Operand wird um Eins vermindert. Beeinflusste Flags

ZF, SF und OF werden entsprechend dem Ergebnis der Operation gesetzt. CF bleibt unverändert. Beispiele

DEC ESP DEC AL DEC AX

Page 8: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 7

CMP Vergleich zweier Operanden Syntax

CMP reg, reg CMP mem, reg CMP reg, mem CMP reg, const Beschreibung

Der zweite Operand wird vom ersten Operanden abgezogen. Es werden nur die entsprechenden Flags gesetzt, das eigentliche Ergebnis der Subtraktion wird nicht benutzt (beide Operanden bleiben unverändert). In Verbindung mit den entsprechenden Sprungbefehlen lassen sich damit Vergleiche durchführen und auswerten. Beeinflusste Flags

CF, ZF, SF und OF werden entsprechend dem Ergebnis der Operation gesetzt. Beispiele

CMP AL, 3 CMP EAX, [EBX] CMP [EAX], EAX

MUL, IMUL Multiplikation von 32 bit Werten (vorzeichenlos, vorzeichenbehaftet) Syntax

MUL reg32 IMUL reg32 Beschreibung

Der in Register EAX enthaltene 32 bit Wert wird mit dem Inhalt des angegebenen Registers multipliziert und das 64 bit Ergebnis in Register EDX (Bits 32-63) und EAX (Bits 0-31) abgelegt. Beeinflusste Flags

Alle Flags sind nach Ausführung der Operation in undefiniertem Zustand. Beispiele

MUL EBX IMUL EDX

Page 9: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 8

DIV, IDIV Division eines 64 bit Wertes durch einen 32 bit Wert (vorzeichenlos, vorzeichenbehaftet) Syntax

DIV reg32 IDIV reg32 Beschreibung

Der 64 bit Dividend muss in den Registern EDX (Bits 32-63) und EAX (Bits 0-31) abgelegt sein. Dieser wird durch den im angegebenen Register enthaltenen Wert geteilt. Der Quotient wird in Register EAX abgelegt, der ganzzahlige Rest in Register EDX. Beeinflusste Flags

Alle Flags sind nach Ausführung der Operation in undefiniertem Zustand. Beispiele

DIV EAX IDIV ECX

Logische Befehle

OR Bitweise Oder-Verknüpfung zweier Operanden Syntax

OR reg, reg OR mem, reg OR reg, mem OR reg, const Beschreibung

Die gleichwertigen Bits der beiden Operanden werden mit einem logischen Oder verknüpft und das Ergebnis an der Stelle des ersten Operanden gespeichert. Beeinflusste Flags

CF und OF werden gelöscht, ZF und SF werden entsprechend dem Ergebnis gesetzt. Beispiele

OR AL, 01H OR EAX, [EBX * 2 + 03ABFFFH] OR [ESI + EDI], BH

Page 10: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 9

AND Bitweise Und-Verknüpfung zweier Operanden Syntax

AND reg, reg AND mem, reg AND reg, mem AND reg, const Beschreibung

Die gleichwertigen Bits der beiden Operanden werden mit einem logischen Und verknüpft und das Ergebnis an der Stelle des ersten Operanden gespeichert. Beeinflusste Flags

CF und OF werden gelöscht, ZF und SF werden entsprechend dem Ergebnis gesetzt. Beispiele

AND AL, 03H AND [ECX], ESP

XOR Bitweise Exklusiv-Oder-Verknüpfung (Antivalenz) zweier Operanden Syntax

XOR reg, reg XOR mem, reg XOR reg, mem XOR reg, const Beschreibung

Die gleichwertigen Bits der beiden Operanden werden mit einem logischen Exklusiv-Oder verknüpft und das Ergebnis an der Stelle des ersten Operanden gespeichert. Beeinflusste Flags

CF und OF werden gelöscht, ZF und SF werden entsprechend dem Ergebnis gesetzt. Beispiele

XOR EAX, EAX XOR [EAX + ECX * 4], AL

Page 11: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 10

NOT Bitweise Negation des Operanden (Einerkomplement) Syntax

NOT reg Beschreibung

Jedes Bit des Operanden wird durch seine Negation ersetzt. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

NOT CL NOT EDX

NEG Arithmetische Negation des Operanden (Zweierkomplement) Syntax

NEG reg Beschreibung

Der Zahlenwert des Operanden wird durch sein Zweierkomplement ersetzt. Beeinflusste Flags

CF, ZF, SF und OF werden entsprechend dem Ergebnis der Operation gesetzt. Beispiele

NEG AH NEG SI

Page 12: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 11

Bitbefehle

SHR, SHL Bitverschiebung innerhalb des ersten Operanden Syntax

SHR reg, const SHL reg, const Beschreibung

Die Bits des ersten Operanden werden um die im zweiten Operanden angegebene Anzahl Stellen nach links (SHL) bzw. rechts (SHR) verschoben. Dabei ist das höchstwertige Bit ganz links. Freiwerdende Bits werden mit Null aufgefüllt. Herausgeschobene Bits werden durch das Carry-Flag geschoben. Beeinflusste Flags

OF ist nach der Operation undefiniert, ZF und SF sind entsprechend dem Ergebnis gesetzt. CF erhält den Wert des zuletzt herausgeschobenen Bits. Beispiele

SHR AL, 4 SHL ECX, 8 SHR EAX, 1

ROR, ROL Bitrotation innerhalb des ersten Operanden Syntax

ROR reg, const ROL reg, const Beschreibung

Die Bits des ersten Operanden werden um die im zweiten Operanden angegebene Anzahl Stellen nach links (ROL) bzw. rechts (ROR) rotiert. Dabei ist das höchstwertige Bit ganz links. Bits, die den Operanden verlassen, werden auf der anderen Seite wieder eingefügt. Gleichzeitig werden diese in das Carry-Flag kopiert. Beeinflusste Flags

ZF und SF bleiben unverändert. OF ist nach der Operation undefiniert. CF erhält den Wert des zuletzt herausgeschobenen Bits. Beispiele

ROR EAX, 8 ROL CH, 3

Page 13: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 12

BTR, BTS BTR: Test und Rücksetzen eines Bits, BTS: Test und Setzen eines Bits Syntax

BTR reg16, const BTR reg32, const BTS reg16, const BTS reg32, const Beschreibung

Das Bit auf der durch den zweiten Operanden angegebenen Position wird im ersten Operanden rückgesetzt (=0; BTR) bzw. gesetzt (=1; BTS). Beeinflusste Flags

CF erhält den vorherigen Zustand des geänderten Bits. Die anderen Flags sind unbestimmt. Beispiele

BTS EBX, 0 BTR EAX, 31

BT Testen eines Bits Syntax

BT reg16, const BT reg32, const Beschreibung

Das Bit auf der durch den zweiten Operanden angegebenen Position wird im ersten Operanden getestet (keine Änderung). Beeinflusste Flags

CF erhält den Zustand des getesteten Bits. Die anderen Flags sind unbestimmt. Beispiele

BT EAX, 15 BT BX, 5

Page 14: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 13

Stackbefehle

PUSH Speichern des Operanden auf dem Stack Syntax

PUSH reg32 Beschreibung

Das Stackpointerregister ESP wird um vier verringert. Anschließend wird der Operand in der Speicherzelle, deren Adresse in ESP enthalten ist, abgelegt. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

PUSH EAX PUSH EDX

POP Laden des Operanden vom Stack Syntax

POP reg32 Beschreibung

Der Operand wird mit dem Inhalt der Speicherzelle, deren Adresse im Stackpointerregister ESP enthalten ist, geladen. Nach dem Laden wird ESP um vier erhöht. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

POP ECX POP EBX

Page 15: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 14

Programmtransferbefehle

JMP Unbedingter Sprung Syntax

JMP label Beschreibung

Die Programmausführung wird mit der durch das Label gekennzeichneten Anweisung fortgesetzt. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

JMP m1

JNZ, JZ, JNC, JC Bedingte Sprünge (Auswahl) Syntax

JNZ label JZ label JNC label JC label Beschreibung

Bei erfüllter Bedingung wird die Programmausführung mit der durch das Label gekennzeichneten Anweisung fortgesetzt, ansonsten mit der dem Sprungbefehl folgenden Anweisung. Bedingungen: NZ = Zero-Flag nicht gesetzt, Z = Zero-Flag gesetzt, NC = Carry-Flag nicht gesetzt, C = Carry-Flag gesetzt. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

JNZ marke1 JC schleife JZ ende JNC beginn

Page 16: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 15

CALL Unterprogrammaufruf Syntax

CALL label Beschreibung

Die Programmausführung wird mit der durch das Label gekennzeichneten Anweisung fortgesetzt, nachdem die Adresse des dem CALL folgenden Befehls auf dem Stack abgelegt wurde (siehe PUSH). Die Rückkehr zu dieser Adresse kann später durch den Befehl RET erfolgen. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

CALL up1 CALL ausgabe

RET Rückkehr vom Unterprogramm Syntax

RET Beschreibung

Rücksprung aus einem Unterprogramm. Die Sprungadresse wird vom Stack geladen (siehe POP). Beeinflusste Flags

Alle Flags bleiben unverändert.

Page 17: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 16

Ein-/Ausgabebefehle

IN Eingabe Syntax

IN AL, const8 IN AX, const8 IN EAX, const8 IN AL, DX IN AX, DX IN EAX, DX Beschreibung

Eingabeoperation mit der durch den zweiten Operanden gegebenen E/A-Adresse in das im ersten Operanden angegebene Register. Die Datenbreite wird durch den ersten Operanden bestimmt. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

IN AL, 40H IN AL, 0H IN AX, DX

OUT Ausgabe Syntax

OUT const8, AL OUT const8, AX OUT const8, EAX OUT DX, AL OUT DX, AX OUT DX, EAX Beschreibung

Ausgabeoperation mit der durch den ersten Operanden gegebenen E/A-Adresse aus dem im zweiten Operanden angegebenen Register. Die Datenbreite wird durch den zweiten Operanden bestimmt. Beeinflusste Flags

Alle Flags bleiben unverändert. Beispiele

OUT 0, AL OUT 3FH, AL OUT DX, AL

Page 18: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 – Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 17

Sonstige Befehle

NOP Keine Operation Syntax

NOP Beschreibung

Keine Operation. Beeinflusste Flags

Alle Flags bleiben unverändert.

Pseudobefehle

DB, DW, DD Reservierung von Speicher Syntax

DB const8 DW const16 DD const32 Beschreibung

Der Assembler reserviert für diese Pseudobefehle Speicherbereiche, die mit dem angegebenen konstanten Ausdruck initialisiert werden. Dabei wird stets die angegebene Datenbreite belegt. Beispielsweise erzeugt 'DB 42' ein Byte, welches mit dem Wert 42 initialisiert ist, bei 'DD 42' ist aber ein Doppelwort (4 Byte) mit 42 initialisiert. Eine undefinierte Anfangsbelegung kann durch ein Fragezeichen ausgedrückt werden. Eine mit Komma getrennte Aufzählung mehrerer Werte ist möglich. Beeinflusste Flags

Keine, da kein Maschinenbefehl. Beispiele

DB 0H, 0H, 3FH DW 0FFFFH, 12ABH DD 0012FFFFH DB ?, ?, ?, ?

Page 19: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 - Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel 18

Erläuterungen zur Befehlsliste Verwendete Symbole in der Befehlsliste

Symbol wird ersetzt durch ... Bemerkung

reg ein 8, 16 oder 32-bit-Register alle allgemeinen Register

reg16 reg32

ein 16-bit-Register ein 32-bit-Register

alle allgemeinen 16-bit-Register alle allgemeinen 32-bit-Register

const eine 8, 16 oder 32-bit-Konstante ein vorzeichenbehafteter Zahlenwert im Programmcode

const8 const16 const32

eine 8-bit-Konstante eine 16-bit-Konstante eine 32-bit-Konstante

ein vorzeichenbehafteter Zahlenwert im Programmcode

n Skalierungsfaktor: 1,2,4 oder 8 siehe nächste Tabelle

mem eine Speicherreferenz (mit 32-bit-Speicheradresse)

siehe nächste Tabelle

label einen Bezeichner, der vom Assembler durch eine Adresse ersetzt wird.

Adressierungsarten des flachen 32-bit-x86-Programmiermodells ... mit Speicherzugriff (Erläuterung für das Symbol mem)

Name der Adressierungsart mem bedeutet hier Beispiel

Direkt [const32] [03FF12FFH]

Indirekt [reg32] [ESI]

Index [reg32 + const] [EAX - 0223H]

Basisindiziert [reg32 + reg321)] [ESP + ECX]

Basisindiziert mit Displacement [reg32 + reg321) + const] [EDX + EDI + 7]

Skaliert [reg321) * n] [reg321) * n + const] [reg32 + reg321) * n] [reg32 + reg321) * n + const]

[EAX * 2] [ESI * 8 + 03FH] [ESI + EAX * 4] [ESP + ECX * 4 + 03AFFH]

1) ohne ESP

Page 20: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

Rechnerarchitekturen 1 - Arbeitsblätter TU Ilmenau, Institut TTI, FG RA

Prof. Fengler Däne/Nützel19

... ohne Speicherzugriff

Name der Adressierungsart Operand Beispiel

Register – Adressierung reg EAX

Unmittelbare Adressierung („Direkt – Operand“)

const 0FF004D56H

Allgemeiner Aufbau einer typischen Befehlszeile

label: operation operand1, operand2 ; ein kommentar

Page 21: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU

Ilmenau,InstitutT

TI,F

GR

AR

echnerarchitekturen1

-A

rbeitsblätter

Däne/N

ützelP

rof.Fengler

20

Page 22: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU

Ilmenau,InstitutT

TI,F

GR

AR

echnerarchitekturen1

-A

rbeitsblätter

Däne/N

ützelP

rof.Fengler

21

Page 23: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

D0

D8

D16

D24

D7

D15

D23

D31

/BE3 /BE2

Doppelwort (32 bit)

Adresse

/BE1 /BE0

0000 0000H

0000 0001H

0000 0002H

0000 0003H

0000 0004H

0000 0005H

0000 0006H

0000 0007H

0000 0008H

0000 0009H

0000 000AH

0000 000BH

0000 000CH

0000 000DH

0000 000EH

0000 000FH

0000 0010H

0000 0011H

FFFF FFFEH

FFFF FFFFH

22

Anordnung der Daten im Speicher

Page 24: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

chip enable (Bausteinfreigabe)

Allgemeiner ROM

Tiefe: 2x Zellen Breite: y bit

A0

Ax-1

/CE

D0

Dy-1

ROM

A0 bis Ax-1

D0 bis Dy-1

Adresseingänge

Datenausgänge

/CE

/CE Funktion

0

1

Lesen

inaktiv

Allgemeiner statischer RAM (sRAM)

Tiefe: 2x Zellen Breite: y bit

A0

Ax-1

/CE

D0

Dy-1

sRAM

A0 bis Ax-1

D0 bis Dy-1

Adresseingänge

Datenein- und ausgänge

/CE chip enable (Bausteinfreigabe)

/WE write enable (Schreibfreigabe)

/WE/CE Funktion

0

1

Lesen

inaktiv

/WE

0

Schreiben0

X

1

23

Page 25: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Programmierbares Parallel-Interface (PPI) 8255A

Logiksymbol: Bedeutung der Anschlüsse:

D7...D0

/RD

/WR

/CS

RESET

PA0...PA7

PB0...PB7

PC0...PC7

A0, A1

8-bit-Datenbus

Lese-Anforderung

Schreib-Anforderung

Bausteinfreigabe

Rücksetzen

Port A Peripherieanschluss

Port B Peripherieanschluss

Port C Peripherieanschluss

Adresseingänge zurPortauswahl

0

0

1

0 Port A

Port B

Port C

1

0

A1 A0 Bedeutung

1 Steuerbyte1

24

Innere StrukturPort A

Port CHigh

/CS

D7..D0

PA7..PA0

PC7..PC4

PC3..PC0

PB7..PB0

/RD

/WR

A0

A1

RESET

Port CLow

Port B

SteuerungGruppe A

SteuerungGruppe B

Lese-/Schreib-

Logik

Daten-bus-

puffer

Page 26: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Steuerbytes des PPI 8255A

ModusPort A:

ModusPort B:

Einstellung des Modus:(ausgeben auf Steuerbyte-Adresse)

Modus Port A

Modus Port B

Richtung Port A

Richtung Port B

Richtung High-Teil Port C (PC7..PC4)

Richtung Low-Teil Port C (PC3..PC0)

Richtung:0 - Ausgang,1 - Eingang

0

0

1

0

0

Mode 0 (ohne Handshake, IN direkt, OUT Latch)

Mode 0 (ohne Handshake, IN direkt, OUT Latch)

Mode 1 (mit Handshake, strobed, unidirektional)

Mode 1 (mit Handshake, strobed, unidirektional)

Mode 2 (mit Handshake, strobed, bidirektional)

1

1

X

M2 M1

M0

Bedeutung

Bedeutung

Sonderfunktionen an Port C bei den Handshake-Modi von Port A bzw. B:

Steuersignal-Eing.

Steuersignal-Ausg.

Interrupt-Ausgang

Interrupt-Freigabe 1) C4=INTEa C6=INTEa C2=INTEb C2=INTEb

PC4=/STBa PC6=/ACKa PC2=/STBb PC2=/ACKb

PC5=IBFa PC7=/OBFa PC1=IBFb PC1=/OBFb

PC3=INTRa PC3=INTRa PC0=INTRb PC0=INTRb

Port-A-IN Port-A-OUT Port-B-IN Port-B-OUT

0

CL

1

B

2

M0

3

CH

4

A

5

M1

6

M2

7

1

Bitnummer (binär): 000 - Bit 0, ..., 111 - Bit 7

Operation (1 - Setzen, 0 - Rücksetzen)

Einzelbitsteuerung Port C:(ausgeben auf Steuerbyte-Adresse)

S/RC0C1C2XXX0

1) Interrupt-Freigabe nur durch Einzelbitsetzen an Port C (Steuerbyte “Einzelbitsteuerung”)

25

Page 27: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Aus

EinDaten

/OBF=/STB

IBF=/ACK

OUT IN

Handshake-Signale des PPI 8255A

26

Page 28: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Programmierbare Intervall-Timer (PIT) 8253 und 8254

Logiksymbol:

Innere Struktur

Bedeutung der Anschlüsse:

D7...D0

/RD

/WR

/CS

CLK0-2

GATE0-2

OUT0-2

A0, A1

8-bit-Datenbus

Lese-Anforderung

Schreib-Anforderung

Bausteinfreigabe

Zähler-Takteingänge Kanal 0-2

Toreingänge Kanal 0 bis 2

Zählerausgänge Kanal 0 bis 2

Adresseingänge zurPortauswahl

0

0

1

0 Zählregister Kanal 0

Zählregister Kanal 1

Zählregister Kanal 2

1

0

A1 A0 Bedeutung

1 Steuerbyte1

/CS

Out0

Out1

Gate0

Gate1

Clk0

Clk1

D7..D0

/RD

/WR

A0

A1

Lese-/Schreib-

Logik

Daten-bus-

puffer

Zähler0

Zähler1

Steuer-wort-

registerOut2

Gate2

Clk2

Zähler2

Der Baustein enthält drei ladbare, voneinander unabhängige 16-bit-Rückwärtszähler(wahlweise dezimal oder binär) mit Toreingängen und verschiedenen Betriebsarten

27

Page 29: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Initialisierung der PIT 8253 und 8254 (Auszug)

Aufbau des Steuerbytes:

Zählerauswahl

Zählformat

Operation

Modusauswahl

0 - binär (16 bit),1 - dezimal (4 digit)

7 34 05 16 2

SC1 M2RL0 BCDRL1 M0SC0 M1

0

0

1

0

00 0

Kanal 0

Mode 0 (einmaliges Zählen)

Kanal 1

Mode 1 (retrigg. Monoflop)

Mode 3 (Frequenzteiler, sym.)

Kanal 2

Mode 2 (Frequenzt., Impulse)

Mode 4 (einmalig, Impuls)

1

1

1

0

0

0

SC1

M2

SC0

M1 M0

angespr. Kanal

Mode

1

0

X

0

1

X

1

1

0

1 0

nicht erlaubt

Mode 5 (Impulsverzögerung)

1

1

1

0

0

1

0 Zähler-Latch (alle Zähler)(zum anschließenden Lesen)

Ankünd. Lesen/Laden des LSB

Ankünd. Lesen/Laden des MSB

Ankünd. Lesen/Laden LSB+MSB

1

0

RL1 RL0 Operation

1 1

28

- Steuerbyte auf Steuerbyteadresse ausgeben (mit Ankündigung ‘Laden LSB+MSB’)- LSB (niederwertiges Byte) der Zählkonstante auf Kanaladresse ausgeben- MSB (höherwertiges Byte) der Zählkonstante auf Kanaladresse ausgeben

Empfohlener Ablauf für die Initialisierung eines Kanals:

Page 30: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Zeitdiagramme zu den Modi der PIT 8253 und 8254

MODE 0

WR

CLK

GATE

OUT

Steuerbyte= 10 LSB = 3

03

02

02

02

01

00

FFFFNNNN

Steuerbyte= 12

MODE 1

WR

CLK

GATE

OUT

03

02

01

00

FFFF

03

02NNNNN

LSB = 3

Steuerbyte= 14

MODE 2

02

01

03

02

01

03

03

WR

CLK

GATE

OUT

LSB = 3

N N N

Steuerbyte= 16

MODE 3

N N03

02

01

04

03

02

01

04

04

03N N

WR

CLK

GATE

OUT

LSB = 4

Steuerbyte= 18

N N N

MODE 4

N 02

01

00

FFFF

FFFE

FFFD

03

WR

CLK

GATE

OUT

LSB = 3

Steuerbyte= 1A

N N

MODE 5

N N 03

02

01

00

FFFF

03

WR

CLK

GATE

OUT

LSB = 3

N

29

Page 31: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler

Bidirektionaler 8-bit-Bustreiber 74x245

8-D-Flip-Flops (transparent) 74x373

Logiksymbol

Logiksymbol

Wahrheitstabelle

Wahrheitstabelle

0

0

1

0 B nach A

A nach B

hochohmig

1

X

/OE DIR Funktion/OEDIR

A0 B0

A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7

D1D0

/OE

STB

Q0Q1

D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7

30

/OE

0

0

0

0

00

DiSTB Qi

1 1 1

1

1 X X

X Dialt1)

hochohmig

Zustand von D am Ende dervorigen High-Phase von STB

i1)

Page 32: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU

Ilmenau, Institut T

TI, F

G R

AR

echnerarchitekture

n 1 - Arbeitsblätter

31

Registersatz im 64-bit-x86-Programmiermodell (Auswahl wichtiger Register)

R0B = ALAHR0W = AX

R0D = EAXR0 = RAX

R1B = CLCHR1W = CX

R1D = ECXR1 = RCX

R2B = DLDHR2W = DX

R2D = EDXR2 = RDX

R3B = BLBHR3W = BX

R3D = EBXR3 = RBX

R4W = SP

R4D = ESPR4 = RSP

R4B = SPL

R5W = BPR5D = EBP

R5 = RBP

R5B = BPL

R6W = SIR6D = ESI

R6 = RSI

R6B = SIL

R7W = DI

R7D = EDIR7 = RDI

R7B = DIL

R8BR8W

R8DR8

R9BR9W

R9DR9

R10BR10W

R10DR10

R11BR11W

R11DR11

R12BR12W

R12DR12

R13BR13W

R13DR13

R14BR14W

R14DR14

R15BR15W

R15DR15

IPEIP

RIP

FLAGSEFLAGS

RFLAGS

07153163 07153163

Page 33: TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter TUIlmenau,InstitutTTI,FGRA Prof.Fengler 2 Däne/Nützel physisch: logisch: DS SS CS ES 1 MiByte 4 S

TU Ilmenau, Institut TTI, FG RARechnerarchitekturen 1 - Arbeitsblätter

Däne/NützelProf. Fengler 32

Standard: IEC 60027-2, "Letter symbols to be used in electrical technology",Teil 2: "Telecommunications and electronics", Abschnitt 14.Referiert in: DIN IEC 60027-2

2)

Binäre Vorsatzeinheiten

Traditionell 1)

k oder Kkilo

IEC 60027-2 2) Zweierpotenz Beziehung DezimalHexadezimal

Kikibi

210 1 Ki = 1024

Mmega

Mimebi

220 1 Mi = 1024 Ki

Ggiga

Gigibi

230 1 Gi = 1024 Mi

Ttera

Titebi

240 1 Ti = 1024 Gi

Ppeta

Pipebi

250 1 Pi = 1024 Ti

Allgemein verbreitete Symbolik unter "missbräuchlicher" Verwendung derdezimalen Vorsatzeinheiten des SI-Systems.

1)

Eexa

Eiexbi

260 1 Ei = 1024 Pi

Zzetta

Zizebi

270 1 Zi = 1024 Ei1 180 591 620 717 411 303 424D

40 0000 0000 0000 0000H

Yyotta

Yiyobi

280 1 Yi = 1024 Zi 1 208 925 819 614 629 174 706 176D1 000000000000 00000000H

1 125 899 906 842 624D4 0000 0000 0000H

1 152 921 504 606 846 976D1000000000000000H

1 073 741 824D4000 0000H

1 099 511 627 776D10000000000H

1 024D400H

1 048 576D100000H

Inoffiziell (im Standard nicht enthalten).3)

3)

3)