Du hast ne kleinigkeit übersehen:
Für die erste Adresse stimmt die berechnung wohl (Adr2 + 1), für Adr3 kommt 2 raus. Für die nachfolgenden Adressen ist die berechnung aber unzulässig:
Adr2 wird immer um 1 hochgezählt. Für die erste Adresse gilt also: 1+1=2 -> Adr3 wird 2 (was die Adresse für's MSB darstellt). Für die zweite Adresse gilt dann aber 2+1=3 -> Adr3 wird 3, was logischerweise aber die LSB adresse darstellen sollte (die LSB Adresse wäre hier 2 was nicht stimmen kann!).

Wenn man die Variable Adr2 immer um 2 hochzählen lässt stimmt die ganze Sache

Hoffe du bist nicht böse das ich dich verbessert hab...!

MfG