Hallo churchill,
gern geschehen :P !
Ich denke mal, daß es nicht viele Anwendungen gibt bei der die MOD-Rechnung sinnvoll eingesetzt werden kann. Wer braucht in einer Steuerung schon den Rest einer ganzzahligen Division? Daher wird sie sicherlich von vielen Programmieren beim Nachdenken oftmals garnicht berücksichtigt.
Ein sehr interessanter, eigentlich fast schon genialer Fall für die MOD-Anweisung ist die Berechnung eines Zeigers für ein Umlaufregister, ein FiFo oder auch für einen Aufrufverteiler. Es geht mit MOD sehr viel eleganter als mit Vergleichen und Rücksetzen des #REGISTER_ZEIGER über Sprungbefehle. Bei jedem Aufruf wird #REGISTER_ZEIGER um 1 erhöht. Ist #REGISTER_ZEIGER=#MAX_ANZAHL, liefert MOD das Ergebnis "0" und es wird wieder von vorne gezählt.
Code:
//*** Umlaufregister mit MOD
L #REGISTER_ZEIGER
L #MAX_ANZAHL
MOD
T #REGISTER_ZEIGER // 0..(MAX_ANZAHL-1)
//*** Register-Bearbeitung
...
...
//*** Pointer erhöhen
L #REGISTER_ZEIGER
L 1
+I
T #REGISTER_ZEIGER
Gruß, Onkel
Bookmarks