Код
UARTCmdListTable:
.DB 8, /*ОБЩЕЕ ЧИСЛО КОМАНД в ШТУКАХ!*/ \
2, "UP", /*01: Кнопка "Вверх"*/ \
3, "DWN", /*02: Кнопка "Вниз"*/ \
4, "LAMP", /*03: Кнопка "Вкл-Выкл" (ON|OFF)*/ \
.DB 8, /*ОБЩЕЕ ЧИСЛО КОМАНД в ШТУКАХ!*/ \
2, "UP", /*01: Кнопка "Вверх"*/ \
3, "DWN", /*02: Кнопка "Вниз"*/ \
4, "LAMP", /*03: Кнопка "Вкл-Выкл" (ON|OFF)*/ \
Соответственно - считаем числа, грузим в счётчики - и циклом крутимся. Нашли - из таблицы
Код
UARTCmdProcTable:
.DW UARTCommand_UP;01
.DW UARTCommand_DWN;02
.DW UARTCommand_LAMP;03
.DW UARTCommand_UP;01
.DW UARTCommand_DWN;02
.DW UARTCommand_LAMP;03
выбираем нужный адрес и ICALL. Работает. Получилось, видимо,также как на СИ с массивом. Команда получает позицию её аргументов в буфере и делает с ними что хочет.