Пишем и парсим на ассемблере MCS- 5. Бейсике / Хабрахабр. Доброго времени суток, уважаемые.
Перевод документации по использованию дизассемблера DIS8051. Пишем и парсим на ассемблере MCS-51, как на Бейсике.
В свободное от работы время увлекаюсь программированием микроконтроллеров, на ассемблере. Пока вожусь в основном со всякими PIC(1. AVR, но и MCS- 5. Уровень мой — «вечно начинающий». Это типа светодиодиком уже умею мигать, даже по таймеру.
Сейчас поставил себе задачу написать программу для взаимодействия с GSM модулем SIM9. Для этого необходимо уметь слать что- то в UART, и принимать что- то оттуда. По грамотному на все это дело заводится 2 кольцевых буфера: на прием, и на передачу. Вроде как классика жанра, ничего нового не придумаешь. Но я такой человек, что не люблю костыли, но при этом обожаю велосипеды.
Захотелось придумать свой. У меня не мультизадачная система, предполагаеться отправка 1 команды в модуль, затем ожидание 1 ответа. А значит отправку уже можно делать не на прерываниях, а просто в основном цикле. Обойдемся без буфера на отправку. Ответ от модуля меня устраивает только один (хотя если проверять например уровень сигнала, это уже не так), и я ожидаю, каким он должен быть. Поэтому я решил обойтись без буфера и парсить тоже прямо в основном цикле. И чтобы все было удобно и красиво, оформить все это дело в макросы.
Дизассемблеры MCS-51. Дизассемблер предназначен для преобразования исполняемого кода микроконтроллеров MCS-51 в текст программы на .
Основой моего кода стал пример из статьи «МК для начинающих» из журнала «Радиолюбитель», . По факту это будет адрес 1 символа строки. String,0. Dh,0. Ah,0. Print. Вот что получилось: ; Тип: процедура, вызываемая в макросе. Передаваемые параметры: String,Label,waiting. По факту это будет адрес 1 символа строки. String,0. Dh,0. Ah,0.
В DPTR у нас адрес команды после строки, вернемся по этому адресу. Швейная Машинка Tur 2 Инструкция. Wait: ; Принимаем и сравниваем полученный символ с символом из строки. ACC ; Сохраним символ из флеша. A,parsing. В DPTR у нас адрес команды после строки, вернемся по этому адресу. Кварц 1. 1,0. 59. МГц позволяет «принтить» и парсить строки на скорости 5. При кварце в 2. 2,1.
Мгц ожидаемо можно будет проделывать аналогичное на скорости 1.