Hm war mir gar nicht aufgefallen. Natürlich musst Du ein RCALL einsetzen. Da wird ja dann die Adresse auf dem Stack abgelegt, wo nach dem RET wieder zurückgesprungen werden soll. Ein relativer Sprung springt ja nur und merkt sich, lapidar gesagt, nicht, wo er her kommt. Trotz dem meine ich, dass Du in R16 eine 255 schreibst und im nächsten Schritt mit 0 vergleichst. Oder sollte ich mich da irren.

Allerdings finde ich, dass Deine Fragen eher Off Topic sind und in den ASM Bereich sollten. Da kennen sich bestimmt mehr Leute mit aus als hier. Ich selbst progge hauptsächlich in Hochsprachen und nutze nur für Zeitkritisches oder Platzkritisches Inline ASM. Habe also eher wenig Erfahrung und sehe so gut wie jedesmal neu im Datenblatt nach, wie die Befehle zu nutzen sind...