schleifenproblem

Gast #129091
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
Gast #129093
Lesenswert?
• ▲
▼
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
Gast #129094
Lesenswert?
• ▲
▼
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.......
Gast #129096
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren