TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter...
Transcript of TechnischeInformatik2 · 2010. 3. 31. · Rechnerarchitekturen1-Arbeitsblätter...
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/
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.
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)
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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 ?, ?, ?, ?
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
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
TU
Ilmenau,InstitutT
TI,F
GR
AR
echnerarchitekturen1
-A
rbeitsblätter
Däne/N
ützelP
rof.Fengler
20
TU
Ilmenau,InstitutT
TI,F
GR
AR
echnerarchitekturen1
-A
rbeitsblätter
Däne/N
ützelP
rof.Fengler
21
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
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
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
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
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
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
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:
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
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)
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
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)