Нет лишних тысяч баксов, пишу на ассемблере. Пока даже на 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?
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|