- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: goto von Irgendwo nach überall erlaubt?

  1. #1

    goto von Irgendwo nach überall erlaubt?

    Anzeige

    Praxistest und DIY Projekte
    Ich habe eine Frage, und zwar betreffend von "goto". Ist es absolut egal, wo mann mit goto hinspringt? Also wenn ich zum beispiel mit call ein Unterprogramm aufrufe und aus diesem nicht mit return zurückkehre, sondern per goto sonstwohin springe. Dann ist die Adresse, welche beim Ausführen von call in den Stack gelegt wurde, ja immer noch dort -> Nach mehrmaligem durchlauf überlauf des Stack?

    Code:
    main
      call test
      goto main
    ; --------------------
    test
      goto main
      return
    ; -------------------
      end

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Ein CALL muß immer mit einem RETURN beendet werden; Du darfst nicht in eine Subroutine "reinspringen", da mit RETURN eine Rücksprungadresse vom Stack geladen wird. Und wenn da keine ist ?
    Genau so solltest Du aus einer Subroutine nicht mit GOTO "verschwinden", weil bei dem CALL die Rücksprungadresse auf dem Stack abgelegt wurde; wenn Du das mehrmals machst, ist der Stack bald übergelaufen.
    Das gilt natürlich für die Interrupt-Routinen ganz besonders !!!
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  3. #3
    vielen dank

    mfg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests