Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PIC микроконтроллеры.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
22 Мб
Скачать
☆

Комментарии в программах на ассемблере

Использование комментариев в программе улучшает ее ясность, особенно там, где назначение набора команд непонятно. Комментарий всегда начинаются на любой строке исходного модуля с символа точка с запятой (;) и ассемблер полагает в этом случае, что все символы, находящиеся справа от (;) являются комментарием. Комментарий может содержать любые печатные символы, включая пробел.

Комментарий может занимать всю строку или следовать за командой на той же строке, как это показано в двух следующих примерах:

1. ………………… ;Эта строка полностью является комментарием

2. ADDLW .30 ; Комментарий на одной строке с командой

Комментарии появляются только в листингах ассемблирования исходного модуля и не приводят к генерации машинных кодов, поэтому можно включать любое количество комментариев, не оказывая влияния на эффективность выполнения программы.

Метка/Имя

Метка или имя является необязательным компонентом. Метка - точка программы, на которую передается управление, а имя - ячейка памяти. Следовательно, метка стоит в строке, содержащей команду; а имя стоит в строке, содержащей псевдокоманду.

Однако, физический смысл и метки, и имени - одинаков, это - адрес памяти. Во всех случаях, когда Ассемблер встречает в программе имя или метку, он заменяет ее на адрес той ячейки памяти, к которую имя/метка направляет.

Метка/имя должна начинаться в 1-й позиции строки, если метки/имени нет, то в 1-й позиции должен быть пробел.

Метки в языке ассемблера может содержать следующие символы:

Буквы: от A до Z и от a до z

Цифры: от 0 до 9

Первым символом в метке должна быть буква. Ассемблер не делает различия между ПРОПИСНЫМИ и строчными буквами.

Пример: COUNT, PAGE25, E10. Рекомендуется использовать описательные и смысловые метки. Имена регистров, например, STATUS, PORTA или PCL являются зарезервированными и используются только для указания соответствующих регистров. Например, в команде

ADDWF PCL, f ассемблер "знает", что PCL относится к регистрам.

MOVWF REGSAVE ассемблер воспримет имя REGSAVE только в том случае, если оно будет определено в начале программы.

Метку можно кодировать на одной строке с командой или на отдельной строке:

START ADDWF TEMP,F

START

ADDWF TEMP,F

Метка должна занимать крайнюю левую позицию на экране. Между меткой, командой и операндом обязательно должны быть пробелы в строке. Рекомендуется записывать метку, команду и операнд в колонку для большей удобочитаемости программы.

Формат кодирования

Основной формат кодирования команд ассемблера имеет следующий вид:

[метка]/[имя] команда/директива [операнд(ы)] комментарий

Метка/имя и команда/операнд разделяются, по крайней мере, одним пробелом или символом табуляции.

Пример:

Имя

Команда Операнд

Комментарий

COUNT

EQU 10H

; Регистр COUNT

;=====================================

; --Подсчет числа посетителей--------------------

;=====================================

START

MOVWF COUNT

; Копировать содержимое W в COUNT

………… ………….

GOTO START

; Вернуться к началу




ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ

  • При создании устройств на PICах, разработчик имеет дело с универсальным языком программирования ассемблер, при помощи команд которого задачи решаются гораздо проще и эффективнее.

  • Не забывайте ставить символ "точка с запятой" перед комментариями.

  • Завершайте программу директивой END.

  • Метка - точка программы, на которую передается управление, а имя - ячейка памяти.

  • Команда указывает ассемблеру, какое действие должен выполнить данный оператор, например, пересылка (MOV) или сложение (ADD). Обработка Ассемблером команды приводит к генерации машинного кода.

  • Директивы указывают ассемблеру, как проводить ассемблирование и исполняются только внутри него. Функции этих псевдокоманд состоят в подготовке к исполнению программы и определении границы, за которую программа выйти не может (директивы ORG и END).

  • Метка должна занимать крайнюю левую позицию на экране. Между меткой, командой и операндом обязательно должны быть пробелы в строке. Рекомендуется записывать метку, команду и операнд в колонку для большей удобочитаемости программы.

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

  1. По какой архитектуре построены PIC контроллеры?

  2. Какие из следующих имен неправильны: а) STATUS, б) $50, в) @$_Z, г) 34B7, д) РСL?

  3. Что подразумевает директива END.

  4. Укажите различия между директивой и командой.

  5. Что означают термины ассемблер и ассемблирование?

  6. Какую функцию выполняет директива ORG? EQU? END?

  7. Какие операторы не создают машинного кода?

  8. Как записать константу 12 в десятичной, двоичной и шестнадцатеричной системе счисления на языке ассемблер?

  9. Какую функцию выполняет команда? директива?

  10. Где расположены в программе Метка/Имя и что они определяют?

  11. Как закомментировать команду? Что это означает?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]