Нет лишних тысяч баксов, пишу на ассемблере. Пока даже на CCS компайлер за 150 баксов жабу не победил.
Ок, ближе к делу.
Хочется написать чегото типа message map в Виндоус - условно:
ON_CMD 'bg' GOTO Address1
ON_CMD 'ge' GOTO Address2.
'bg' и 'ge' читаются с RS232 порта.
Хочется иметь макро, чтоб потом опять его использовать в другой программе - добавил строчку и готово.
делаю примерно так:
GO_NOT_EQUAL_AA MACRO ADDRESS1, ADDRESS2, LABEL
MOVF ADDRESS1
SUBWF ADDRESS2, W
BTFSS STATUS, Z
GOTO LABEL
ENDM
ON_CMD MACRO CMD_BUFFER, CMD_DATA, CMD_LABEL
GO_NOT_EQUAL_AA CMD_BUFFER, CMD_DATA, NEXT
GO_EQUAL_AA CMD_BUFFER, CMD_DATA + 1, CMD_LABEL
NEXT:
ENDM
MESSAGE_LOOP MACRO CMD_BUFFER, CMD_DATA, CMD_LABEL
ON_CMD CMD_BUFFER, CMD_DATA, CMD_LABEL
ON_CMD CMD_BUFFER, CMD_DATA+2, CMD_LABEL+2
GOTO MAIN_LOOP
ENDM
проблемка в конце с ON_CMD CMD_BUFFER, CMD_DATA, CMD_LABEL
ON_CMD CMD_BUFFER, CMD_DATA+2, CMD_LABEL+2
Хорошо бы обьявить массив комманд и массив ссылок
где бы индех комманды соответсвовал индексу label.
Ну в ассемблере вроде такого нет.
Никто не изворачивался для PIC16?