Architektur und Organisation von Rechnersystemen

Architektur und Organisation von
Rechnersystemen
15.05.2015
Architektur und Organisation
von Rechnersystemen
Thema heute:
Zahlendarstellungen
ArcOrg15-V5 am 15.05.2015
Ulrich Schaarschmidt
FH Düsseldorf, SS 2015
Quellenhinweise

Rübel, Manfred:

8/16 bit-Mikroprozessorsysteme




Teubner Verlag, 1991
Rübel, Manfred; Schaarschmidt, Ulrich:
Elektronik-Aufgaben, Digitale
Schaltungen und Systeme
Vieweg und Teubner Verlag, 1996
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
2
1
Architektur und Organisation von
Rechnersystemen
15.05.2015
Zahlendarstellung im Rechner
Einfache Addition





Addiere die Zahlen 25 + 34. (= 59)
In ASCII 3235h + 3334h
Kann man rechnen, indem die höheren
Nibbles der jeweiligen Bytes stehen
bleiben und die unteren addiert werden.
3235h + 3334h = 3539h. (= 59d)
Nur der Rechner ist nicht zu überzeugen
nur bestimmte Nibbles zu rechnen.
15.05.2015
(c) U.G. Schaarschmidt, FH D
3
BCD-Darstellung



Was ist die BCD-Darstellung?
BCD = Binary Coded Decimal
Darstellung der Ziffern 0 bis 9 in einem
Nibbel (pro Byte somit maximal 99) – im
Gegensatz zur Dualzahlendarstellung, die
in einem Nibbel 1 bis F darstellt- in
einem Byte also bis zu 256 verschiedene
Bitkombinationen.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
4
2
Architektur und Organisation von
Rechnersystemen
15.05.2015
BCD-Darstellung II


Eine Dezimalziffer zwischen 0 und 9 wird
in gewöhnlicher Weise dual codiert –
allerdings in einer konstanten Länge der
Bitfolge von 4 (1/2 Byte = Nibble).
6 mögliche (bei der Hex-Darstellung
genutzte A bis F) Pseudotetraden bleiben
hierbei „ungenutzt“ – sie könnten zur
Darstellung eines Vorzeichens genutzt
werden.
15.05.2015
(c) U.G. Schaarschmidt, FH D
5
BCD-Darstellung III



Die BCD-Darstellung der Dezimalzahl
4739 lautet 0100 0111 0011 1001
4
7
3
9
Die Darstellung der BCD-Zahl ist also
leicht herstellbar bzw. rückwandelbar.
Auf der folgenden Seite ist ein
Rechenbeispiel, das zeigt, wo
Komplikationen auftauchen.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
6
3
Architektur und Organisation von
Rechnersystemen
15.05.2015
Rechnen mit BCD I
15.05.2015
(c) U.G. Schaarschmidt, FH D
7
Rechnen mit BCD II
Dezimalanpassung
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
8
4
Architektur und Organisation von
Rechnersystemen
15.05.2015
Prozessor-Befehle zur ASCII
bzw. BCD-Korrektur


Die BCD-Darstellung entstand aus den
Anforderungen an die ComputerRechengenauigkeit der Finanzmathematik.
Die meisten Prozessoren haben zum Zweck der
BCD- bzw. ASCII-Korrektur extra Befehle: Bei
80x86 / Pentium

AAA, AAD, AAM, AAS korrigieren nach Auftreten
eines Übertrags bzw. einer Pseudotretrade durch
Addition einer 6.
15.05.2015
(c) U.G. Schaarschmidt, FH D
9
Prozessor-Befehle zur ASCII
bzw. BCD-Korrektur

Der Nachteil der eventuell erforderlichen
Korrektur besteht darin, dass sie nur im
Akkumulator und nur bei einem Byte
angewendet wird. Außerdem löscht er nach
Durchführung der Korrekturen das
höherwertige Halbbyte (Nibble) von AL, so
dass bei der Addition von 34 + 32 nach der
Korrektur 06 herauskommt. Damit wird
automatisch der Fehler korrigiert, der bei der
Addition der höherwertigen Tetraden entsteht.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
10
5
Architektur und Organisation von
Rechnersystemen
15.05.2015
ASCII Adjust for Addition
O=Overflow, D=Direction down, I=Enable Interrupt, T=Trap,
S=Negativ, Z=Zero, A=Auxiliary, P=Parity, C=Carry
15.05.2015
(c) U.G. Schaarschmidt, FH D
11
Beispiel für AAA
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
12
6
Architektur und Organisation von
Rechnersystemen
15.05.2015
AAD – ASCII Adjust for Division
15.05.2015
(c) U.G. Schaarschmidt, FH D
13
AAM ASCII Adjust for
Multiplication
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
14
7
Architektur und Organisation von
Rechnersystemen
15.05.2015
AAS – Adjust for Subtraction
15.05.2015
(c) U.G. Schaarschmidt, FH D
15
Beispiel zur AAS-Korrektur
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
16
8
Architektur und Organisation von
Rechnersystemen
15.05.2015
ASCII-/ BCD-Korrektur


In vielen Prozessoren steht ein Flagbit
bereit (hier AF bzw. AC = Auxiliary
Carry), das den Übertrag vom unteren
Nibble zum nächsten Nibble anzeigt.
Achtung: muss vom Programmierer
„richtig“ interpretiert werden, d.h. im
Programm berücksichtigt werden (s.
Beispielrechnung weiter hinten).
15.05.2015
(c) U.G. Schaarschmidt, FH D
17
Carry als Korrektur für die
Überschreitung des Wortes


Je nach Prozessor wird ein Überlauf
eines Bytes bzw. eines Wortes durch
Setzen des Carry-Flags angezeigt. Die
Berechnung des nächsthöheren Bytes
bzw. Wortes muss dies berücksichtigen.
Bei 80X86 / Pent. dient der Befehl
Addition mit integriertem Übertrag: ADC
Integer Add with Carry (ohne C = ADD).
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
18
9
Architektur und Organisation von
Rechnersystemen
15.05.2015
ADC – Int Add with Carry
15.05.2015
(c) U.G. Schaarschmidt, FH D
19
ADD – Int Add (Addieren)
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
20
10
Architektur und Organisation von
Rechnersystemen
15.05.2015
Beispiel-Programm


Es ist ein Programm zu entwerfen, das
folgendes leistet: In einem Wortregister
soll, von Null beginnend, fortlaufend
hochgezählt werden. Die Anzeige des
Registerinhaltes soll in Form einer
zweistelligen Dezimalzahl auf dem
Bildschirm erfolgen.
1. Programm-Ablaufplan
15.05.2015
(c) U.G. Schaarschmidt, FH D
21
(c) U.G. Schaarschmidt, FH D
22
Init Zähler (2Byte)
ASCIIKorrekt.
Nur im Akku !
0-Add z. AF-Korrekt.
0X0Y muss korrig.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
11
Architektur und Organisation von
Rechnersystemen
START:
M1:
15.05.2015
MOV
CX,0000h
MOV
AX,CX
AAA
ADD
AL,00
MOV
CX,AX
MOV
AL,CH
AAA
MOV
CH,AL
ADD
CX,3030h
MOV
DL,CH
MOV
AH,02h
INT21h
MOV
DL,CL
MOV
AH,02h
INT21h
MOV
DL,20h
MOV
AH,02h
INT21h
WARTE 2000
INC
CX
JMP
M1
END
START
15.05.2015
;Zaehler init
;Rücksetzen des Aux-Flag
;Umwandl. in ASCII
;Leerzeichen (auch ' ')
;Warteschleife
(c) U.G. Schaarschmidt, FH D
23
Zahlendarstellung
Festpunkt - Festkomma




Signed dual fixed-point numbers
In Programmiersprachen: INT
Als Darstellungseinheiten werden vorzugsweise
Maschinenwörter der Länge n = 8, 16, 32, 64
bit benutzt.
Die linke erste Binärstelle (MSB – Most
Significant Bit), Vorzeichenbit oder Signbit s,
codiert das Vorzeichen der Zahl: s=0+
(positive), s=1-(negative Zahl); 0= + Zahl.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
24
12
Architektur und Organisation von
Rechnersystemen
15.05.2015
Zahlendarstellung
Festpunkt – Festkomma II


Die restlichen n-1 Binärstellen codieren den
ganzzahligen Absolutwert der dualen Zahl.
Daraus folgt: Alle Operationen führt der
Computer so aus, als stünde der Punkt
unmittelbar hinter der letzten Binärstelle des
Wortes, also rechtsbündig zum Wort.
Negative Zahlen werden stets als n-stelliges
Zweierkomplement Kn, d.h. mit der
Ergänzung ihres Betrages zu 2n, dargestellt.
15.05.2015
(c) U.G. Schaarschmidt, FH D
25
Festpunktdarstellung 1 Byte
n=8 bit (Wert +27 und –27), zugeordnet hexadezimale
Und oktale Darstellungen.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
26
13
Architektur und Organisation von
Rechnersystemen
15.05.2015
Zahlendarstellung
Festpunkt – Festkomma III


Kn = 2n - |Xn| (Xn = n-stellig),
Man benutze dazu das Dualsystem, denn
damit entsteht von selbst das richtige
Format und das mit 1 belegte s-Bit
15.05.2015
(c) U.G. Schaarschmidt, FH D
27
Die Wortlänge n entscheidet über
den zulässigen Wertebereich
Vorzeichenfreie duale Festpunktzahlen (Unsigned dual
fixed-point numbers) haben statt des Vorzeichenbits
ein weiteres Wertebit (s. rechter Tabellenteil).
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
28
14
Architektur und Organisation von
Rechnersystemen
15.05.2015
ASCII / BCD  Binär Wandlung


Wenn intern mit Zahlen gerechnet
werden soll, wie sie in der Tabelle der
vorherigen Seite dargestellt wurden, sie
aber über die Tastatur eingegeben
werden, muss eine Umwandlung
erfolgen.
2 Verfahren werden gezeigt:
15.05.2015
(c) U.G. Schaarschmidt, FH D
29
1. Umwandlungsverfahren



Jede Dezimalziffer wird mit ihrem
Stellenwert multipliziert (Einer, Zehner,
Hunderter, Tausender, usw.) und
addiert diese Produkte auf.
345 heißt  3*100 + 4*10 + 5*1
2345 = 2*1000 + 3*100 + 4*10 + 5*1
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
30
15
Architektur und Organisation von
Rechnersystemen
15.05.2015
2. Umwandlungsverfahren


Man multipliziert – mit der
höchstwertigen Stelle beginnend – mit
10, addiert die nächste Stelle auf,
multipliziert die Summe wieder mit 10,
usw. bis zur letzten Stelle, die dann nur
noch aufaddiert wird.
2345 = ((2*10+3)*10+4)*10+5
15.05.2015
(c) U.G. Schaarschmidt, FH D
31
Binär – BCD – Wandlung 1





2345 : 10 = 234
Rest 5
234
: 10 = 23
Rest 4
23
: 10 = 2
Rest 3
2
: 10 = 0
Rest 2
Dies Verfahren funktioniert mit allen
Basen, also auch mit 16 für die HEXoder 8 für die Oktal-Darstellung.
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
32
16
Architektur und Organisation von
Rechnersystemen
15.05.2015
Binär – BCD – Wandlung 2




2345
345
45
5
15.05.2015
:
:
:
:
1000
100
10
1
=
=
=
=
2
3
4
5
(c) U.G. Schaarschmidt, FH D
33
Stellenwertsysteme
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
34
17
Architektur und Organisation von
Rechnersystemen
15.05.2015
Einfache Rechenoperationen
Addition und Subtraktion
15.05.2015
(c) U.G. Schaarschmidt, FH D
35
Multiplikation und Division
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
36
18
Architektur und Organisation von
Rechnersystemen
15.05.2015
Es gibt nicht nur Integer –
Festkommazahlen gibt es auch
15.05.2015
(c) U.G. Schaarschmidt, FH D
37
Mit Festkommazahlen einfach
rechnen
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
38
19
Architektur und Organisation von
Rechnersystemen
15.05.2015
Wie kommt man vom
Dezimalbruch zur Dualzahl?
15.05.2015
(c) U.G. Schaarschmidt, FH D
39
Andere Darstellung der
Umwandlung
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
40
20
Architektur und Organisation von
Rechnersystemen
15.05.2015
Gleitkommadarstellung (1)
15.05.2015
(c) U.G. Schaarschmidt, FH D
41
Gleitkommadarstellung (2)
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
42
21
Architektur und Organisation von
Rechnersystemen
15.05.2015
Gleitkommadarstellung nach
IEEE 754 (1)
15.05.2015
(c) U.G. Schaarschmidt, FH D
43
Gleitkommadarstellung nach
IEEE 754 (2)
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
44
22
Architektur und Organisation von
Rechnersystemen
15.05.2015
15.05.2015
(c) U.G. Schaarschmidt, FH D
5. Übungsaufgabe
45
(vom 15.5.15)
1) Wie werden Floating-Point-Zahlen
normiert im Rechner nach IEEE
dargestellt?
2) Überlegen Sie, wie in Maschinensprache
bzw. im Rechner Fließkomma-Zahlen
dargestellt werden!
3) Wie wird mit Fließkommazahlen
theoretisch gerechnet?
15.05.2015
(c) Prof. Dr. U. G. Schaarschmidt
(c) U.G. Schaarschmidt, FH D
46
23