Information Technology Reference
In-Depth Information
Motorola für den ColdFire MFC5206 benutzten Mnemone als Bezeichner [124]
sowie die in Hochsprachen für einen Vergleich zu verwendenden Operatoren und
der Zahlentyp, auf den sich die einzelnen Bedingungsgrößen beziehen, angegeben.
In den ersten 10 Tabellenzeilen sind die für Zahlenvergleiche relevanten Bedin-
gungsgrößen aufgeführt (unschattiert). In den dort verwendeten Ausdrücken würden
statt der vier auch drei Bedingungsbits C, Z und X ausreichen, wobei X gleich V
N ist und die Teilausdrücke V
X ersetzt werden
müssten. Allerdings sind Zahlenbereichsüberschreitungen arithmetischer Operatio-
nen mit vorzeichenbehafteten Zahlen auf diese Weise nicht mehr erkennbar.
N sowie V
=
N durch X bzw.
¬
Es sei noch darauf hingewiesen, dass die hier beschriebenen Bedingungsbits nicht
nur bei Ausführung eines Vergleichs gesetzt werden, sondern i.Allg. auch bei Aus-
führung anderer Operationen. So setzen die Prozessoren der Pentium-Familie von
Intel [80, 81, 82] z.B. mit dem Befehl dec zum Dekrementieren eines Operanden das
Bedingungsbit Z (bzw. ZF; zero flag), mit dem anzeigt wird, ob das erzeugte Ergeb-
nis gleich Null ist. Dies kann in Zählschleifen genutzt werden, um das Schleifen-
ende ohne Vergleichsoperation zu erkennen.
Weitere Bedingungen
Die meisten Prozessoren generieren beim Vergleich ganzer Zahlen gleichzeitig zwei
Vergleichsergebnisse - eines, bei dem die Vergleichsoperanden als vorzeichenlose
und eines, bei dem sie als vorzeichenbehaftete Zahlen interpretiert werden. Dabei
wird ausgenutzt, dass die bei einem Vergleich durchzuführende Subtraktion für vor-
zeichenlose Dualzahlen und Zweierkomplementzahlen identisch arbeitet, es also
sinnvoll ist, die Bedingungsbits für beide Zahlentypen gleichzeitig zu erzeugen.
Dafür muss jedoch ein umfangreicherer Befehlssatz in Kauf genommen werden, als
würden getrennte Vergleichsbefehle für vorzeichenlose und vorzeichenbehaftete
ganze Zahlen verwendet.
Beim ColdFire MFC5206 von Motorola sind für Zahlenvergleiche z.B. insgesamt
11 Befehle erforderlich, nämlich ein Vergleichsbefehl und zehn bedingte Sprungbe-
fehle entsprechend der in Tabelle 1.1 für Zahlenvergleiche relevanten Bedingungen
(in den ersten zehn Zeilen). Mit getrennten Vergleichsbefehlen für vorzeichenlose
und vorzeichenbehaftete Operanden werden hingegen nur acht Befehle benötigt,
nämlich zwei Vergleichsbefehle und sechs bedingungsauswertende Befehle. Die
Bedingungsgrößen „kleiner“, „kleiner gleich“, „größer“ und „größer gleich“ müssen
jeweils nur einmal im Bedingungscode enthalten sein und gelten, vom Vergleichsbe-
fehl abhängig, sowohl für vorzeichenlose als auch für vorzeichenbehaftete Zahlen.
Andere Datentypen werden u.a. aus diesem Grund durch spezialisierte Befehle ver-
glichen und die Ergebnisse in den zur Verfügung stehenden Bedingungsbits codiert.
Natürlich ist dies nicht für alle Datentypen sinnvoll. Zwar lässt sich mit nach IEEE
754-1985 codierten Gleitkommazahlen ein Vergleichsergebnis erzeugen, das dem
eines Vergleichs vorzeichenbehafteter Zweierkomplementzahlen entspricht (z.B. Z,
V, N), allerdings ist dies nur möglich, wenn die Operanden echte Zahlen sind. Die in
Abschnitt 1.1.5 beschriebenen Nichtzahlen (NaN) folgen hingegen keinem Ord-
Search WWH ::




Custom Search