hallo! habe ein problem mit mit meinen schleifen: setdata0 wird aufgerufen (passt) !aber danach wird an den anfang des files gesprungen und nicht dorthin zurück wo der aufruf herkam! den stackpointer habe ich gesetzt finde den fehler nicht... vielen dank im vorhinein! lg tommy
ersetze mal
>brne setdata0 durch
rcall setdata0 ;nächster Befehl nach Rücksprung
vielen dank erstmal aber ich will ja den sprung von einer abfrage abhängig machen, geht das denn so nicht? ich könnte ja auch in setdata0 bzw. setdata1 einen weiteren sprungverweis nach oben einbauen aber: ich will setdata0 in einen noch nicht programmierten teil wiederverwenden und dann würde dieser weitere sprungverweis in den schon programmierten teil springen und nicht dorthin zurück wo er aufgerufen worden ist
Bei einem bedingten Befehl, abhängig von einer Abfrage (0 oder nicht;gleich oder nicht;gösser oder nicht; etc.) funktioniert das mit einer Bedingung nur einmal, weil nach dem Rücksprung die Bedingung nicht mehr vorhanden ist. Es bleibt dir keine andere Wahl, jedesmal vor einem bedingten Sprung eine neue Abfrage auf die Bedingung zu starten. Das geht dann mit if xxx, yy ....bedingter Sprung else xxx, aa ....bedingter Sprung endif Damit kannst du zu zwei verschiedenen Unterprogrammen hüpfen. Puh....was für Bedingungen und das am frühen Morgen.......
Um normal den unterschied herauszustellen: brxx (also breq, brne etc.) sind bedingte Sprungbefehle, die einfach nur den Program Counter ändern, die Rücksprungadresse wird hierbei NICHT auf den Stack geschrieben, Das geschieht nur bei den call-Aufrufen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.