logo
МПиС

Правила програмування на мові Асемблер для мп і8080.

Мова Асемблер зорієнтована на найефективніші використанням структури і апаратних можливостей.

Початкова програма на мові асемблер, це файл у текстовому форматі який не повинен мати ускладнених атрибутів (стиль, вид шрифту, відступи, вирівнювання ті ін.) об’єктів, що властиві документам, розроблених у середовищі сучасних офісних програм.

Також у такому файлі не допускається наявність рисунків, таблиць та ін. Тому для роботи з асемблером підходять найпростіші тестові редактори(Notepad MS Windows) в сучасних умовах для роботи з МП і контролерами, розроблені інтегровані програмні середовища, до складу яких входять текстові редактори(MS Developer Studio, MPLAB, Microchip, AVR Studio, Atmel)

Первинна програма на мові асемблер виглядала як сукупність (послідовність) рядків такту. Рядок може бути перетворений у машинну команду. На запис однієї машинної команди виділяється один рядок . формат рядка програми на мові асемблер стандартизований і має наступний вид (рис. 1). На рис. 1 позначають частини рядка або поля, які не є обов’язковими. Кожне поле складається з однієї або кількох лексем.

Лексема – найменша осмислена одиниця інформації, яка сприймається асемблером.

В якості лексем можуть служити ідентифікатори (імена) і числові константи. Приклади: символічні імена (мнемоніки) машинних команд. Для вказування кінця лексеми використовують спеціальні символи - роздільники. Найбільш частим символом - роздільником є пробіл. Крім того цю ж функцію можуть використовувати символі: «кома», «переведення рядка», символ «табуляції». Символ – роздільник відділяє одне моле від іншого. Звичайно асемблер допускає використовувати довільне число пробілів, часто це використовується для вирівнювання полів програми від рядка до рядка, що полегшує використання програми.

Поле мітки

Містить символічне ім’я і закінчується двокрапкою. Мітка складається з послідовністю латинських літер і цифр, до 6 символів. Мітка – це адреса повної точки програми, на яку при необхідності може починатися програма.

Крім того міткою можуть позначатися певні змінні данні (PROD:) полегшують програмування.

Поле операції містить мнемонічне позначення машинної команди. ІМР – перехід SUB – відняти.

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

Директиви:

COUNTER EQU 20h, START ORG 1000

Поле операнда: В окремі операнди можуть бути представлені const, змінними або спеціальними символічними іменами, що позначають регістри МП.

Операнди можуть містити прості вирази типу: COUNTER + 5; ten-two

Поле коментар: починається з ( ; ) і призначене виключно для програміста, або іншого читача програми. Всі символи, що містяться правіше ( ; ) асемблером не сприймаються і ігноруються. Коментарі слугують для пояснення тексту програми. В принципі існують неписані правила написання програми, вони вимагають вказувати місце і число операндів які використовує програма і вихідні операнди. Бажано, щоб коментарі були короткими, і ефективними.

Готова версія програми подається у спеціальну програму – компілятор, власне програму асемблеру. Вона аналізує текст програми, перевіряє на правильність правилам мови і на виході створює послідовність команд в машиних кодах.

Вказана послідовність називається об’єктним модулем. У випадку наявності синтаксичних помилок програми компілятор їх виявляє і вказує місце помилки і причину.

Програма може складатися з кількох модулів, тоді повна програма є результатом об’єднання об’єктних модулів і називається завантажувальним модулем . Крім того до складу команд може входити стандартизовані програмні модулі, які зберігаються в бібліотеках. Вони при необхідності беруться з бібліотеки і підключаються до програми, що роботу здійснює програма LIB.EXE (бібліотека) асемблер генерує спеціальну програму з розширенням *.ASM.