МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Синтаксис команд мовою асемблера
Програма мовою асемблера – набір речень, які можуть бути командами, макрокомандами, директивами або коментарями. Для запису речень використовуються наступні поняття: · ім’я мітки – ідентифікатор, значенням якого є адреса першого байта того речення, яке він позначає; · ім’я – ідентифікатор, за допомогою якого можна відрізнити дану директиву від інших; · код операції (коп) і директива – мнемонічне позначення машинної команди, макрокоманди або директиви; · операнди – частини команди, макрокоманди або директиви, які позначають об’єкти, над якими виконуються дії. Операнди описуються виразами з числовими і текстовими сталими, мітками і ідентифікаторами змінних з використанням знаків операцій і певних зарезервованих слів. Припустимі символи: 1. Всі латинські букви A-Z, a-z. Великі і малі букви не розрізняються за домовленістю. 2. Цифри від 0 до 9. 3. Знаки ?, @, $, _, &. 4. Розділювачі , . : [ ] ( ) < > { } + – * / % ! “ ” ? \ = # ^ Речення формуються з лексем – наборів, які синтаксично нероздільні для мови допустимих символів. Лексемами є: · Ідентифікатори – набори символів, які використовуються для позначення кодів операцій, імен змінних і міток. Ідентифікатор може складатися з одного або декількох символів. Як символ можна використовувати букви латинського алфавіту, цифри і спеціальні знаки – _, ?, $, @. Ідентифікатор не може починатися символом цифри. Довжина ідентифікатора до 255 символів, хоча транслятор сприймає лише перші 32, а решту ігнорує. Можна регулювати довжину ідентифікаторів, використовуючи опцію /mvn. Можна вказати, щоб транслятор розрізняв (опція /ml), не розрізняв (опція /mu) великі і малі букви (або розрізняв великі і малі букви (опція /mx) тільки в спільних ідентифікаторах); · ланцюжки символів – набори символів, які знаходяться між апострофами або взяті в лапки; · цілі числа в одній із систем числення: двійковій (набір двійкових цифр, після якого вказано символ b. Наприклад, 11010001b), десятковій та шістнадцятковій, причому шістнадцяткові числа – набір шістнадцяткових цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, A, b, B, c, C, d, D, e, E, f, F), який закінчується символом h. Якщо цей набір починається символами a, A, b, B, c, C, d, D, e, E, f, F, то перед цим числом потрібно писати обов’язково 0; Складові частини речень називаються операндами. Вони описують об’єкти, над якими або за допомогою яких виконуються певні дії. Наведемо класифікацію операндів: · сталі (безпосередні операнди) – число, рядок, ім’я або вираз, які мають певні фіксовані значення. Ім’я не повинно бути переміщуваним, тобто залежати від адреси завантаження програми в пам’ять. Воно може бути визначене операторами equ або = const equ 7 ind = const – 3 mov bl, ind; еквівалентно mov bl, 4; 4 тут безпосередній операнд · переміщуваний операнд – будь-яке символьне ім’я, яке зображує деяку адресу пам’яті. Може позначати розташування команди в пам’яті (якщо це мітка) або даних (якщо це ім’я області пам’яті в сегменті даних). · лічильник адреси – специфічний операнд. Позначається знаком $. Специфіка в тому, що коли транслятор зустрічає в початковій програмі цей символ, то підставляє замість нього поточне значення лічильника адреси. · регістровий операнд – ім’я регістра (імена регістрів визначені в програмній моделі процесора). Операнди можуть бути складовими частинами виразів, які є комбінаціями операндів і операторів. Вкажемо деякі оператори. · арифметичні оператори. До них відносяться унарні оператори “+” і “–”, бінарні “+”, “–”, оператори множення “*”, цілочислового ділення “/”, одержання залишку від ділення “mod”; · індексний оператор []. Наприклад mov dx, mas[si] ; пересилка слова за адресою mas+(si) в регістр dx · оператор перевизначення типу type ptr для перевизначення або уточнення типу мітки або змінної. Тип type може набувати значень: byte, word, dword, qword, tbyte, near, far. Наприклад: d_wrd dd 0 … mov al, byte ptr d_wrd +1; пересилка другого байта з подвійного слова · оператор перевизначення сегмента : (дві крапки) заставляє обчислювати адресу відносно конкретної сегментної складової, яка задається явно … mov bx, fs:array; сегментна складова змінної array обчислюватиметься ;відносно сегментної складової з регістра fs · оператор одержання сегментної складової seg повертає фізичну адресу сегмента для виразу, яким може бути мітка, змінна, ім’я сегмента або деяке символьне ім’я. Синтаксис цього оператора seg вираз · оператор одержання зміщення виразу offset, синтаксис якого offset вираз Приклад застосування останніх двох операторів data segment x dw 14 … code segment … mov ax, seg x mov es, ax mov di, offset x; У парі регістрів es:di повна адреса x
Читайте також:
|
||||||||
|