Loadlabel

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Gibt die Adresse einer Programmmarke zurück.
    Dieser Befehl ist hilfreich, wenn die Adressen bestimmter Programmstellen benötigt werden. Dafür sind im Programmcode an den gefragten Punkten Programmmarken (Labels) zu platzieren. Mit der Ausführung von Loadlabel wird die entsprechende Programmspeicheradresse in die Zielvariable geschrieben. Die Empfängervariable muss von einem ganzzahligen Datentyp sein, Singles oder Doubles sind nicht erlaubt.

    Syntax

    BASCOM Source Code

    1. Adresse = Loadlabel(Labelname)

    TypBeschreibung
    AdresseWord, DWordDie Variable in der die zurückgegebene Adresse geschrieben wird.
    LabelnameLabelEine Programmmarke im Programmtext.



    Bei Controllertypen mit einem Flash-ROM <=64kB, bzw. ohne Rampenregister, genügt eine Variable vom Typ Word. Ab BASCOM-AVR 2.0.8.0 kann Loadlabel auch auf Systemen >64kB angewendet werden. Dazu wird zusätzlich der Index für das RAMPZ - Register ausgegeben, wenn die Zielvariable vom Typ DWord ist.

    Bei älteren BASCOM Versionen ist Loadlabel nur auf Addressen unterhalb 8000hex anwendbar, bzw. auf die ersten verfügbaren 64kB Flash-ROM limitiert.
    Als Zielvariable bietet sich dann am besten eine Variable vom Typ Word an.

    Loadlabel erzeugt im Übrigen eine Wortadresse * 2 für die Byteadressierbarkeit - wie ADR2.


    Beispiel

    In diesem Beispiel wird der Typ der Zielvariablen durch bedingte Kompilierung unter Berücksichtigung der BASCOM-Version und der ROM-Größe gesetzt.

    BASCOM Source Code

    1. '$Regfile = "m2560def.dat" '>>64k
    2. $Regfile = "m88def.dat" '<<64k
    3. $Crystal = 16000000
    4. $hwstack=40
    5. $swstack = 16
    6. $framesize = 32
    7. #IF (_BUILD >=20800 AND _ROMSIZE>65536)
    8. dim adresse as dword
    9. #ELSE
    10. dim adresse as word
    11. #ENDIF
    12. dim var_data as byte
    13. '-------------------------------------------
    14. adresse = Loadlabel(Meinlabel)
    15. var_data = Cpeek(Adresse)
    16. end
    17. Meinlabel:
    18. Data 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128
    Display All

    730 times viewed

Comments 3

  • Galahat -

    Update gemäß BASCOM-AVR 2.0.8.0

  • tschoeatsch -

    und auch für restore?

  • tschoeatsch -

    Ist loadlabel der richtige Befehl, wenn ich bei lookup die labels umschalten möchte?