Цитата(_Bill @ Sep 4 2006, 14:22)

Накладные расходы невелики и не зависят от расположения таблицы.
Как это не зависят?
Одно дело, когда таблица выровнена по границе 256 байт, и не пересекает следующую:
Код
ldi ZH, high(table * 2)
mov ZL, offset
lpm
...
другое, когда таблица не выровнена по границе 256 байт:
Код
ldi ZH, high(table * 2)
ldi ZL, low(table * 2)
add ZL, offset
lpm
...
и совсем другое, когда не выровнена по границе 256 байт, и пересекает следующую:
Код
ldi ZH, high(table * 2)
ldi ZL, low(table * 2)
add ZL, offset
brcc PC+0x02
inc ZH
lpm
...
Разница по скорости почти в 2 раза: 5 и 8 тактов.
Цитата(_Bill @ Sep 4 2006, 14:22)

А насчет стека могу сказать, что в PIC16 его необходимо расходовать очень экономно...
"Расход" стека случается только при использовании вложенных подпрограмм. Как правило, программы уровня PIC16 позволяют обойтись минимальным количеством вложений.