- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 4 von 4

Thema: Pointer verbiegen in Assembler

  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282

    Pointer verbiegen in Assembler

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich will mittels einer Variablen einen Pointer über die 256 Byte Grenze verschieben.

    ldi r16,3 ;über die Variable in r16 soll der Pointer auf Text1,2 oder 3 zeigen

    ldi Zh,High(Text?*2)
    ldi Zl,Low(Text?*2)
    Lpm r17,Z+
    out Porta,r17

    Text1: .db 0,0,0,0,... ;144 Byte
    Text2: .db 0,0,0,0,... ;144 Byte
    Text3: .db 0,0,0,0,... ;144 Byte

    ------------------------------------------------------------------

    in Bascom würde ich einfach schreiben:
    Restore Text1,2 oder 3 ->und damit ist der Pointer gesetzt
    Read Wert
    Porta=Wert

    Aber wie geht das in Assembler ?
    Kann mir einer helfen ?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,

    Zeigerarithmetik !
    schreib:

    ldi r16,3
    ldi ZH,HIGH(Textstart<<1)
    ldi ZL, LOW(Textstart<<1)
    ldi r0,144
    mul r0,r16
    add ZL,r0
    adc ZH,r1
    lpm r17,Z+
    ...

    Textstart:
    Text1: .db 0,0,0,0,... ;144 Byte
    Text2: .db 0,0,0,0,... ;144 Byte
    Text3: .db 0,0,0,0,... ;144 Byte
    ...


    Oder wolltest du was anderes erreichen ?

    Gruß Jan

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    Danke Jan,
    Zeigerarithmetik !
    sagt mir nicht viel, aber langsam komme ich hinter die Kniffe von Assembler.
    Aber sag mal, das funktioniert doch nur mit r16 = 0,1 oder 2.
    Mit r16 = 3 lande ich doch irgendwo im Nirwana.
    Macht aber nix, ich hab das Prinzip verstanden.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    sag mal, das funktioniert doch nur mit r16 = 0,1 oder 2.
    Ich bin davon ausgegangen, das da noch mehr Texte kommen.

    Text4....
    Text5....
    usw...

    Wenn es nur 3 sind ?? OK.

    Gruß Jan

Berechtigungen

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

12V Akku bauen