Программирование в машинных кодах микроконтроллера MSP430
Программирование в машинных кодах микроконтроллера MSP430
Как вы уже знаете:
Задача любого микроконтроллера:
- читать числа из регистров и памяти МК,
- делать что-то с числами, данными и
- записывать числа в регистры и память.
Только так программа может общаться с МК !!!.
Регистры МК - это ячейки-байты в памяти МК MSP430 ,которые имеют свое название, согласно Дата шиту ( инструкции пользователя на микроконтроллер на сайте производителя ) и так как числа в большинстве из них можно менять - для программы регистры являются по сути переменными.
Переменная- это набор ячеек в памяти в которых можно хранить число или числа и менять их. Переменная имеет адрес.
Константа- это как переменная но менять содержимое нельзя.
Мы изначально предполагаем , что читатель знаком с система исчисления – двоичной , восьмеричной , десятеричной и шестнадцатеричной.
Итак, поскольку мы с вами уже определились, что микроконтроллер должен читать числа из регистров и памяти, изменять их различными вычислениями и записывать обратно в регистры или память, нам необходимо, при знакомстве с любым микроконтроллером, изучить его карту памяти и регистры. Для этого нужно открыть руководство пользователя на конкретный микроконтроллер.
Остановимся на рассмотрении модели микроконтроллера MSP430 и обратимся к его руководству пользователя.
Полный набор команд семейства MSP430 содержит 27 команд ядра и 24 эмулированные команды.
Команды ядра - это команды, имеющие уникальный код операции, декодируемый ЦПУ.
Эмулированные команды - представляют собой инструкции, облегчающие чтение и написание кода, но не имеющие собственного кода операции,эти команды используются, как правило, языком программирования ассемблер и нами будут рассматриваться их эквивалентные команды ядра. Использование эмулированных команд не приводит к увеличению объема кода или снижению производительности.
Существует три формата команд ядра:
- С двойным операндом
- С одиночным операндом
- Команды перехода
Все команды с одним и двумя операндами могут быть командами для работы с байтами или командами для работы со словами, используя, соответственно, расширения «.B» или «.W». Байтовые команды используются для доступа к данным байта или к байту периферийного устройства. Команды-слова используются для доступа к данным слова или к слову периферийного устройства. Если никакое расширение не используется, команда является командой-словом.
Источник и получатель в команде определяются следующими полями: