grundsätzlich würde ich diese aufgabe nicht über pointer lösen sondern mit simplen oder gattern.
du bearbeitest einen datenbereich mit pointern, hast aber ausserhalb deiner funktion die das tut die möglichkeit die speicherbereiche zu verändern, das wird irgendwann bei späteren änderungen zur kathastrophe führen. schneller wird es ohnehin kaum sein.
zum beispiel unten solltest du auf keinen fall eine variable zum popinter addieren, das verwesit dann auf einen undefinierten speicherbereich und würde memeory überschreiben.
wenn du word bearbeitest musst du um zum nächsten word im speicher zu gelangen 2 bytes addieren, für dword 4 bytes und für bytes eben 1.
grundsätzlich verstehe ich aber deinen zähler gar nicht, denn du hast ja nur ein einziges word und das bearbeitest du bereits im ersten durchlauf.
streng genommen darfst du das gar nicht denn du hast im word ja nur 2 bits (0,1) belegt.
nochmnals ich würde hier auf keinen fall pointer verwenden viel zu gefährlich und unsicher eine veränderung ausserhalb deiner routine kann die sps abstürzen lassen.
pointer sollte man nur dann einsetzen wenn innerhalb der routine sichergestellt werden kann das man nie ins leere greift, egal was sich ausserhalb der routine verändert.