
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Achim > > 0 bis 32768 = &h0000 bis &h7FFF > > Typo: bis 32767 Kleiner Tipfehler, kann jedem mal passieren. ;-) > > Selbst in einer For-Schleife sollte es keine Rolle spielen, > > Wenn Du z.B. > > for i = &h7F00 to &h9000 > > schreibst, da hier die Forschleife erst abgebrochen wird, sobald der Endwert erreicht wurde. > > Wenn schon, dann "nachdem" und nicht "sobald" Also, so kleinlich braucht man nicht sein. ;-) Es war ja klar, was gemeint ist. > Aber selbst damit meinst Du doch nicht allen Ernstes, dass > > FOR i=1 to 0 > print i > next > > 65536 mal durrchlaufen wird? Das wäre aber eine sehr dämliche und exotische Semantik. Ähhh, hast Du dies jemals ausprobiert ?? Denn dann wüsstest Du, daß die For-Schleife auf "gleich" und nicht auf größer oder irgendwie anders prüft, ob der Endwert erreicht wird. Also halte Dich bitte mit solchen Bemerkungen zurück, wenn Du es nicht genau weißt, wie For-Schleifen bei der CC1 funzen. > Da die word-Variablen bei arithmetischen Operationen nunmal vorzeichenbehaftet sind (auch, wenn > es sedizmale Konstanten > 0x8000 gibt), wird doch wohl eher so sein, dass die Endebedingung > bei "STEP > 0" "Laufvariable > Endwert" und bei "STEP < 0" "Laufvariable < Endwert" lautet. Wie gesagt, funzt das "For" bei der CC1 so eben nicht. Vorzeichen sind hier völlig unwichtig ! Schau Dir mal das ROM-Listing ab "BASIC Token 74" an. *grins* Oder dies: define i word[1] define x word[2] for i=0 to -1 x=x 'Dummyzeile, um die Token besser analysieren zu können. next Dies ergibt folgende Tokens: 20 0 0 - Lade Wert 0 auf den Stack 26 0 - Hole Wert vom Stack und speichere in Word-Variable 0 (=word[1]) 23 1 - Lade Word-Var.1(=word[2]) auf den Stack 26 1 - Speichere den letzten Stackeintrag in Word-Var.1 Das ist das x=x 20 0 1 - Lade Wert 1 auf den Stack 50 - Negiere letzten Stack-Eintrag (= -1 = Endwert) 75 0 0 28 - Vergleiche Word-Var.0 mit Wert vom Stack und springe zu Addr. 28, wenn beide gleich sind. 20 0 1 - Lade Wert 1 auf den Stack (=step 1) 77 0 0 9 - Addiere zu Wordvariable 0 den letzten Stackwert und springe anschließend zu Addr. 9 Das erste Token befindet sich an Addr. 4 Jetzt sollte eigentlich klar sein, wie eine For-Schleife bei der CC1 funzt. Somit war sogar mein "sobald" vorhin korrekt. *grins* Denn geprüft wird nicht am Anfang der For-Schleife, sondern am Ende ! Somit hatte ich in meinem letzten Posting nur einen Tipfehler zwecks &h7FFF. ;-) MfG André H. |
| Antwort schreiben |