Referenzhandbuch
|
Anhang 4
|
Generelles über AmiBlitz2-Operatoren
Ein Ausdruck kann aus Variablen, Konstanten, Operatoren und Funktionen bestehen. Operatoren sind z.B. das Plus- oder Minuszeichen.
Operatoren erzeugen ein Ergebnis unter Verwendung entweder nur des Operanden auf der rechten Seite:
a=NOT 5
oder der Operanden auf der rechten und linken Seite des Operators:
a=5+2
Ein Ausdruck kann auch mehreren Operatoren beinhalten:
a=5*6+3
Natürlich hängt das Ergebnis von der Reihenfolge ab, in der die Operationen ausgeführt werden; wird die Multiplikation
zuerst ausgeführt, ergibt sich 33, wird die Addition zuerst ausgeführt, so ergibt sich
45.
In AmiBlitz2 ist genau festgelegt, welche Operatoren vorrangig vor anderen ausgeführt werden. Da z.B. die Multiplikation immer vor der
Addition ausgeführt wird, sind die folgenden beiden Zeilen gleichwertig:
a=5*6+3
a=3+5*6
Um die Präzedenz der Operatoren zu umgehen, werden die jenigen Ausdrücke, die zuerst ausgewertet werden sollen, eingeklammert:
a=5*(6+3)
Die folgende Liste enthält alle AmiBlitz2-Operatoren, gruppiert nach ihrer Priorität ("RVO"=rechts vom Operator,
"LVO"=links vom Operator). Operatoren in derselben Gruppe haben die gleiche Priorität, die Priorität der Gruppen
nimmt nach unten hin ab. Werden zwei Operatoren der selben Priorität in einem Ausdruck verwendet, werden sie in der Reihenfolge
ihres Auftretens ausgewertet.
Operator |
Effekt |
NOT |
RVO logisch negiert |
- |
RVO arithmetisch negiert |
BITSET |
LVO mit RVO Bits gesetzt |
BITCLR |
LVO mit RVO Bits gelöscht |
BITCHG |
LVO mit RVO Bits gewechselt |
BITTST |
wahr wenn LVO Bits von RVO gesetzt sind |
^ |
LVO hoch RVO |
LVOL |
LVO logisch um RVO Stellen nach links verschoben |
ASL |
LVO arithmetisch um RVO Stellen nach links verschoben |
LVOR |
LVO logisch um RVO Stellen nach rechts verschoben |
ASR |
LVO arithmetisch um RVO Stellen nach rechts verschoben |
& |
logische UND-Verknüpfung zwischen LVO und RVO |
| |
logische ODER-Verknüpfung zwischen LVO und RVO |
* |
LVO multipliziert mit RVO |
/ |
LVO dividiert durch RVO |
+ |
LVO addiert zu RVO |
- |
RVO subtrahiert von LVO |
= |
wahr wenn LVO gleich RVO |
<> |
wahr wenn LVO ungleich RVO |
<
|
wahr wenn LVO kleiner RVO |
> |
wahr wenn LVO größer RVO |
<= |
wahr wenn LVO kleiner oder gleich RVO |
>= |
wahr wenn LVO größer oder gleich RVO |
AND |
logische UND-Verknüpfung zwischen LVO und RVO |
OR |
logische ODER-Verknüpfung zwischen LVO und RVO |
Boolsche Operatoren
Die Boolsche Algebra arbeitet mit nur zwei Werten "wahr" und "falsch". In AmiBlitz2 wird der Wert "falsch"
durch 0 repräsentiert, "wahr" wird durch -1
repräsentiert. Die Vergleichs-Operatoren
=,
<,
>,
<=,
=> und
<> erzeugen alle ein Boolsches Ergebnis, also "wahr" oder "falsch".
Die Anweisung
NPrint 2=2
gibt den Wert -1 aus, da das Ergebnis der Operation, 2=2, wahr ist. Die Operatoren
AND, OR und NOT können
ebenfalls als Boolsche Operatoren verwendet werden.
Nprint 2=2 AND 5=6
liefert das Ergebnis 0, da nicht beide Bedingungen erfüllt sind. Der Operator
OR liefert "wahr", sobald eine der beiden Bedingungen erfüllt ist, der Operator
NOT liefert "wahr", wenn der Operand "falsch" ist und umgekehrt.
Binäre Operatoren
Einige der AmiBlitz2-Operatoren arbeiten mit binärer Arithmetik.
Diese Operationen sind besonders schnell, da sie direkt den Prozessor-Instruktionen entsprechen.
Im Binärsystem werden alle Zahlen durch eine Folge von Einsen und Nullen repräsentiert, die 'Bits' genannt werde. Ein 'Byte'
besteht aus acht solchen Bits, ein 'Wort' (Word) aus 16 und ein 'Doppelwort' oder 'Langwort' (Longword) aus 32 Bits.
Eine eingehende Erläuterung der Funktionsweise der binären Operatoren findet sich in jeder Beschreibung des 68000-Prozessors.
|