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
© Copyright 2024