Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗКП ДЮП.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
286.21 Кб
Скачать

2 Теоретична частина

2.1 Принципи побудови програми на мові асемблер

Речення мови асемблера описують команди чи псевдокоманди (директиви). Речення-команди задають машинні команди обчислювальної системи. Обробка асемблером команди призводить до генерації машинного коду. Обробка псевдокоманди не призводить до безпосередньої генерації коду, псевдокоманда керує роботою самого асемблера. Для тієї самої апаратної архітектури можуть бути побудовані різні асемблери, в яких команди будуть обов'язково однакові, проте псевдокоманди можуть бути різні [3].

В усіх мовах асемблерів кожне нове речення мови починається з нового рядка. Кожне речення, як правило, займає один рядок, хоча іноді допускається продовження речення в наступному рядку або рядках. Формат запису речень мови може бути жорсткий або вільний. При запису у жорсткому форматі складові речення мають розташовуватися у фіксованих позиціях рядка. (Наприклад: мітка має розташовуватися у позиціях 1-8; позиція 9 порожня; позиції 10-12 - мнемоніка команди; позиція 13 - порожня; починаючи з позиції 14 - операнди; позиція 72 - ознака продовження). Зазвичай для запису програм при жорсткому форматі створюються бланки. Жорсткий формат зручний для обробки асемблером (зручний і для читання). Вільний формат допускає будь-яку кількість пропусків (пробілів) між складовими речення.

У загальних випадках речення мови асемблера складаються з таких компонентів: мітка або ім'я, мнемоніка, операнди, коментарі.

Мітка або ім'я є необов'язковим компонентом. Не в усіх мовах асемблерів ці поняття відрізняються. Якщо вони відрізняються (наприклад, MASM), то мітка - це точка програми, на яку передається керування; отже, мітка стоїть у реченні, що містить команду; ім'я - ім'я змінної програми, комірки пам'яті; отже, ім'я стоїть у реченні, що містить псевдокоманду резервування пам'яті або визначення константи. У деяких випадках мітка та ім'я можуть відрізнятися навіть синтаксично. Так, у MASM/TASM після мітки ставиться двокрапка, а після імені - ні.

Однак фізичний сенс і мітки, й імені однаковий - це адреса пам'яті. У всіх випадках, коли асемблер зустрічає в програмі ім'я (крім випадку визначення константи) або мітку, він замінює її на адресу тієї комірки пам'яті, яку ім'я або мітка іменує. Правила формування імен або міток збігаються з такими для мов програмування високого рівня. У деяких асемблерах (HLAM S/390) не має різниці між міткою та ім'ям.

У мові повинні передбачатися деякі спеціальні правила, які дозволяють асемблеру розпізнати і виділити мітку або ім'я. Наприклад, мітка/ім'я там, де воно є, має бути першим компонентом рядка, за яким слідує пропуск або двокрапка.

Мнемоніка - символічне позначення команди/псевдокоманди.

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

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

Система команд може бути класифікована по трьох основних ознаках : довжина команди або число займаних нею байтів, функціональне призначення й спосіб адресації.

TASM перетворює текст програми в об'єктний код. Ім'я програми задається у командному рядку. Проте, тут потрібно зробити декілька зауважень:

- TASM завжди створює вихідні файли на поточному диску і якщо диск для запису закритий, він не повинен бути поточним;

- TASM не запускається "просто так". Потрібно вказати повний шлях до нього.

За наявності помилок об'єктний файл не створюється. Коли транслятору щось не зовсім зрозуміле, він н амагається це домислити сам, видаючи попередження. У правильної програми не повинно бути ні помилок, ні попереджень. Кількість проходів показує скільки разів транслятор проглянув програму з початку до кінця. Звичайно це число не перевищує 5. Кількість пам'яті дозволяє, прогнозувати, чи зможе TASM працювати при збільшенні розмірів програми[4].

Перетворення за допомогою програми TLINK.EXE об'єктного коду PROG.OBJ у здійсненний код PROG.EXE або PROG.COM. Формат командного рядка TLINK схожий на TASM. Але оскільки компонувальник виконує іншу роботу, набір ключів і файлів у нього інший. При роботі він не видає ніякої статистики.

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