 
        
        Лекція Основи програмування на асемблері
Мова програмування найповніше враховує особливості "рідного" мікропроцесора і що містить мнемонічні позначення машинних команд називається Асемблером. Програма, написана на Асемблері називається початковою програмою. Далі зупинимося на версії, званій Турбо Асемблер.
Розробка програми на Асемблері складається з наступних етапів:
- 1) Складання алгоритму у вигляді блок-схеми або структурного опису 
- 2) Введення в ЕОМ тексту початкової програми PROG.ASM за допомогою редактора текстів. Ім'я PROG може бути довільним, а розширення ASM - обов'язково 
- 3) Переклад (трансляція або асемблювання) початкової програми в машинні коди за допомогою транслятора TASM.EXE. На цьому етапі виходить проміжний продукт PROG.OBJ (об'єктний код). Виявлені при цьому синтаксичні і орфографічні помилки виправляються повтором пп.2 і 3 
- 4) Перетворення за допомогою програми TLINK.EXE об'єктної коди PROG.OBJ у здійснимий код PROG.EXE або PROG.COM. 
- 5) Виконання програми і її відладка починаючи з п.1, якщо зустрілися логічні помилки. 
 
Текст програми на Асемблері містить наступні операції:
- а) команди або інструкції 
- б) директиви або псевдооператори 
- в) оператори 
- г) зумовлені імена. 
Дії обумовлені операціями перерахованими в пп.б,в,г виконуються на етапі трансляції, тобто є командами Асемблеру. Операції, звані командами або інструкціями виконуються під час виконання програми, тобто є командами мікропроцесору.
Формат команд та їх класифікація
Інструкція записується на окремому рядку і включає до чотирьох полів, необов'язкові з яких виділені [ ]:
| [мітка:] | мнемоника_команды | [операнд(ы)] | [;коментар] | 
Влучна або символічну адресу містить до 31 символу з букв цифр і знаків ? @ . _ $. Причому цифра не повинна стояти першою, а крапка, якщо повинна бути першою.
Мнемоніка - скорочене позначення коди операції (КОП) команди, наприклад мнемоніка ADD позначає складання (addition).
Операндами можуть бути явно або двійкові набори, що неявно задаються, над якими проводяться операції.Операнди приводяться в одній з чотирьох систем числення і повинні закінчуватися символом b(B), про(O), d(D), h(H) для 2, 8, 10 або 16-ної СЧ. До шістнадцяткового числа додається зліва нуль, якщо воно починається з букви.
Система команд може бути класифікована по трьом основним ознакам -
- довжина команди або число займаних нею байтів 
- функціональне призначення і 
- спосіб адресації. 
Для МП 1810ВМ86 (8086) команда займає від одного до шести байтів. Першим байтом команди завжди є код операції, наприклад код команди INT XXh рівний CD(HEX).
За функціональною ознакою інструкції можна розбити на п'ять великих груп:
- 1) команди пересилки даних 
- 2) арифметичні команди 
- 3) логічні команди 
- 4) команди переходів і 
- 5) команди управління. 
Існує п'ять основних способів адресації:
- регістрова 
- безпосередня 
- пряма 
- непряма і 
- стекова. 
Більшість решти способів адресації є комбінаціями або видозмінами перечисленнных.
У першому випадку операнд(ы) розташовуються в регістрах мікропроцесора (МП)наприклад по команді MOV AX,CX пересилається вміст CX в AX.
При безпосередній адресації операнд розташовується в пам'яті безпосередньо за КОП, інструкція MOV AL,0f5h записує число 245(f5) в регістр AL.
У разі прямої адресації за КОП слідує не сам операнд, а адреса елементу пам'яті або зовнішнього пристрою, наприклад команда IN AL,40h вводить байт даних із зовнішнього пристрою з адресою 40h.
Непряма адресація відрізняється від регістрової тим, що в регістрі зберігається адреса операнда, тобто по команді MOV AL,[BX] в акумулятор al буде записано число з елементу пам'яті з адресою, що зберігається в регістрі BX.
Стекова адресація проводиться до операндів розташованим в області пам'яті, званої стек.
