→ Пошук по сайту       Увійти / Зареєструватися
Знання Асемблер

Основи програмування на асемблері

Підготовка і відладка програми

Підготовка початкового тексту програми виконується за допомогою будь-якого текстового редактора, хоч би редактора, вбудованого в програму Norton Commander, або ще зручнішого редактора Norton Editor. При використанні одного з досконаліших текстових процесорів, ніби Microsoft Word, слід мати на увазі, що ці програми додають у вихідний файл службову інформацію про формат (розмір сторінок, тип шрифту і ін.), яка буде незрозуміла транслятору. Проте практично всі текстові редактори і процесори дозволяють вивести у вихідний файл "чистий текст", без яких-небудь службових символів. Саме таким режимом і належить скористатися в нашому випадку.

Представлення даних

У мові асемблера є засоби запису цілих і речових чисел, а також символьних рядків і окремих символів. Цілі числа можуть бути із знаком і без знаку, а також записаними в двійково-десятковому форматі. Для цілих чисел і символів у складі команд мікропроцесора і, відповідно, в мові асемблера, є засоби обробки - аналізу, порівняння, пошуку і інш. Для дійсних чисел таких засобів в самому мікропроцесорі немає, вони містяться в арифметичному співпроцесорі. Оскільки програмування співпроцесора в справжній книзі не розглядається, то і дійсними числами ми займатися не будемо.

Опис даних

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

Структури і записи

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

Способи адресації

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

Переходи

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

Виклики підпрограм

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

Макрозасоби асемблера

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