Вот еще насчет смещений. Компилятору, чтобы положить Х.., тьфу, "величину Х", в Мassiv[10] - не надо вычислять смещение (Massiv+10), т.к. начальный адрес &Massiv[0] постоянный и никуда не убежит. Компилятор "в уме" посчитает сумму начального адреса и смещение до 5-го элемента (в единицах хранения массива), и сразу типа MOV ADDR, X. А для доступа по Указателю компилятор бессилен предположить что сейчас содержит указатель, поэтому сгенерирует в асм-коде "честное" вычисление адреса [10], и МК будет корячиться тратить время и код под вычисления.