Primero , entiendo que con arreglo te refieres a vector o array
¿correcto? .
Bien... pues con la suposición anterior te cuento
:
Primero hay que saber que al ser el tamaño de cada posición de caracter esto implica que cada posicion es un byte el desplazaminento siempre comienza en cero.
En Masm creo recordar que se podía hacer igual que en un lenguaje de alto nivel:
suponiendo el vecto "V" de "n" posiciones se podía plantear como: V[0], V[1]... o incluso utilizando un registro en lugar de los números: V[si]
Hay otra forma de hacerlo, que es tomando la dirección donde comienza tu vector, y marcando el desplazamiento en un registro, Supongamos definido el vector "V" de "n" posiciones:
lea si,V ; la primera posición del vector estará en el segmento ds desplazamiento si
mov ax, byte ptr ds:[si] ; pasamos la primera posición del vector a "ax"
inc si ;apuntamos a la segunda posición del vector
mov byte ptr ds:[si],cx ; pasamos "cx" a la segunda posición del vector
lea si,V ; esto para volver a la primera posición del vector en cualquier momento
Un saludo.