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

Приклади міток

Приклад мітки

Коментар

START:

Допустима мітка

Start-

Допустима мітка

Start&Stop

Недопустима мітка (використання символу &)

4Me:

Недопустима мітка (мітка повинна починатись з літери або символу «_» )

Addlw:

Недопустима мітка, оскільки представляє собою код операції

Код операції

Поле коду операції повинно містити допустимий код операції мікроконтролера. Поле коду операції може також містити директиву, яка представляє собою спеціальну команду для асемблера або компонувальника. Може також містити ім'я макросу. Макрос - це група команд попередньо визначена користувачем і ідентифікується унікальною лексемою або ім'ям. Код операції може писатися як з використанням малих, так і заголовних букв, проте в більшій частині цієї книги використовуються великі літери, щоб уникнути помилок у прочитанні літери "I" та цифри "1". Так, наприклад, при використанні малих літер команда movlw може бути невірно прочитана як movlw, в той час як MOVLW важко сплутати з MOV1W. IDE використовує шрифт "CourierNew " при відображенні програми, а в цьому шрифт мала літера I і цифра 1 однакові. З цієї причини при використанні малих літер разом з цифрами помилки прочитання будуть звичайним явищем.

Операнд

Поле операнда вказує інформацію, з якої повинна працювати операція, що задається кодом операції. Воно розміщується праворуч від коду операції і може бути порожнім або містити будь-яке число полів, розділених комами. Таблиця 2.6 демонструє кілька команд, які використовують різну кількість операндів.

Коментар

Коментар - це все, що починається з символу крапки з комою. Все, що йде після символу крапки з комою, ігнорується до кінця рядка. Кожен рядок коментарю повинна починатися символом крапки з комою, оскільки в Асемблері немає способу продовження коментаря в кількох рядках, як це можливо в інших мовах. Хороша практика програмування пов'язана з коментуванням секцій програмного коду, а не окремих команд. Також хорошою практикою є поділ секцій коду принаймні одним порожнім рядком.

Директиви - ці спеціальні команди асемблеру, які можуть відображатися, а можуть і не відображатися в машинному коді.

Директиви об'єктного файлу керують тим, як асемблер генерує код в об'єктному файлі. Найбільш звичайними директивами об'єктного файлу є директиви CODE, UDATA і UDATA_ACS. Директива CODE визначає різні секції програмного коду. Мітка в даному випадку буде ім'ям секції програмного коду, операнд - це абсолютний адресу секції програмного коду. Наприклад, щоб помістити код за адресою вектора скидання, використовуйте оператор RESET_ VECTOR CODE 0x0000. Ця директива інформує асемблер про те, що вектор скидання починається за адресою програми 0x0000. Якщо директива CODE використовується без мітки або операнда, то тоді секцією коду зазвичай буде основний текст програми і асемблер сам визначає адресу.

Директиви UDATA і UDATA_ACS резервують простір в пам'яті даних для змінних. Програми набагато легше читаються, якщо в них мітки, а не числові адреси використовуються для ідентифікації адрес пам'яті даних.

Директиви IDATA і IDATA_ACS схожі на директиви UDATA і UDATA_ACS, за винятком того, що вони використовуються для ініціалізації пам'яті даними замість резервування простору пам'яті. Microchip зазначає, що директиви IDATA і IDATA_ACS можуть не функціонувати коректно у разі використання емулятора. З цієї причини вони не повинні використовуватися для ініціалізації даних.

Директиви управління. Директиви управління є наступною найбільш поширеною групою директив Асемблера, які управляють асемблером, а також, іноді, і процесом перегляду. Найбільш поширеними є наступні керуючі директиви: # include, end, processor, equ і set.

Директива #include включає файли кодів, часто звані файлами заголовків, мови С. Директива end повинна міститися в кінці файлу програми. Якщо цього не зробити, то файл не буде асемблюватись. Директива end є сигналом асемблеру завершити процес побудови, тому нічого, що буде написано після цієї директиви, не буде охоплено цим процесом.

Директива processor, яка ідентифікує процесор, використовується з файлом проекту, - вона може використовуватися, а може і не використовуватися в файлі. Якщо тип процесора обраний в секції конфігурації IDE, то немає необхідності включати цю директиву в файл програми. У багатьох випадках директива processor не включається в файл програми.

Директива equ або директива еквівалентності встановлює еквівалентність

значення або мітки інший мітці. Файли включення і директиви equ роблять програми на мові Асемблера більш легкими для написання і прочитання.

Директива set використовується для установки мітки, еквівалентній значенням, яке може бути змінене пізніше за допомогою нової установки значення цієї ж позначки. Директива set використовується менш часто при програмуванні, ніж директива equ, при цьому за дією вона схожа на директиву equ.

Директива List. Директива Iist призначена для управління процесом формування лістингу.

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