Ich kann zwar keinen Assemblercode lesen, aber ich würde jetzt Geld wetten dass der Compiler den gleichen Code aus meinArray[meinePosition] := 42
und irgendeiner wilden Pointer-Arithmetik macht.
Wenn du einen wahlfreien Zugriff hast, dann ist es relativ egal, aber das ist in diesem Fall ja gar nicht gefordert. Hier geht es darum der Reihe nach Werte zu schreiben.
Der Zugriff über den Index beinhaltet dabei immer die Berechnung der Speicherposition, während du bei Verwendung eines Pointers lediglich den Pointer inkrementieren musst. Das bedeutet ca. halb so viele Assemblerbefehle. In manuellem Assembler ginge es denke ich noch besser. Der generierte Code sieht auf den ersten Blick nicht optimal aus.