Also das in r0 eine 16 Bit-Zahl gespeichert ist

Wer hat Dir das gesagt ?
Ich dachte, weil in r0 immer der aktuelle Wert aus der db steht, und da stehen ja nun 16 Bit Werte drinne.

Das heißt, ich brauche einen zweiten Pointer-Register? Aber denn kann ich ja dann auch nicht mit r0 füllen, wenn in r0 anscheinend schon das falsche steht