Теперь немного предложений и замечаний от меня

1 Стоит полностью перенести итерпретатор на строну ПК,я думаю Вы уже это поняли как разработчики даннного девайса ,начав
модификацию операторов в некое внутреннее представление,это серьезно увеличит перспективность и возможности разработки и мало в чем прийдется себя ограничивать.
Сделать типа транслятора Бейсика в АСМ на тип CodeVision ,дальше дело за компиллятором.
Я например уже давненько сделал чисто для себя редактор с примитивным Бейсиком и тычу дули всем средам

,я тоже человек и нелюблю ненаглядность асма,но от его возможностей отказаться не могу.

Вот например пишу:
USART.Mode=9600,N,1(8Mhz)
Генерит:
ldi R16,$00 ;USART.Mode=9600,N,1(8Mhz)
out UCSRA,R16
ldi R16,$86
out UCSRC,R16
ldi R16,$33
out UBRRL,R16
ldi R16,$00
out UBRRH,R16
ldi R16,$F9
out UCSRB,R16
Далее пишу:
GOSUB Button
Генерит:
call SUB_Button ;GOSUB Button
и т.д.
Тоесть увеличив наглядность соответственно и скорость написания программы у меня остаются возможности асма (я могу перемешивать в программе асм и типа бейсик свободно).
плюс прикрутил всякие удобства ,терминалку,компиллер и отладчик протеуса,еще нужно будет AVReal для полного фарша.
При таком подходе ,можно делать очень гибкие программы с хорошим синтаксисом и обеспечить практически любые запросы.
В конечном итоге пользователю все равно ,где будет "сидеть" интерпретатор ,он будет больше смотреть на возможности языка,а если загонять в контроллер "чистый" код - это уже совсем другая песня

2 Смотрел команды и прерывания ,в прерываниях еще не полностью все понятно ,но думаю подпрограммы и прерывания лучше обозначать отдельными метками ,соответственно и выход
из них раздельный RET для обычной и RETI (типа RETURNI ) для прерывания и вызов также GOSUB и GOSUBI.В этом случае интерпретатору будет понятнее как компоновать код.
3 С остальным только практика покажет.