- •Теоретичні відомості
- •1. Структура простої програми мовою асемблера. Формат кодування програми.
- •2. Основні директиви : segment , end, ends, proc, endp, assume.
- •3. Основні вимоги при створенні програми. Приклади простих програм мовою асемблера.
- •4. Трансляція програми. Опції компіляції та загальна характеристика.
- •6. Застосування програми налагодження для пошуку помилок.
- •Розв’язування задач за тематикою заняття
- •Завдання для самостійної роботи
- •Теоретичні відомості
- •1. Директиви визначення даних.
- •2. Директива повторення dup.
- •3. Сталі.
- •5. Представлення в пам’яті цілих чисел.
- •6. Команда пересилки даних mov.
- •7. Команди двійкового додавання та віднімання.
- •Команда зміни знаку операнда neg
- •8. Обчислення цілих арифметичних виразів.
- •Розв’язування задач за тематикою заняття
- •Завдання для самостійної роботи.
- •Теоретичні відомості
- •1. Команда безумовного переходу jmp. Типи адресів переходу short,near та far.
- •2. Команди організації циклів ( loop,loopn,loopnz). Команда loop. Керування циклом за ecx/cx.
- •Керування циклом за ecx/cx із врахуванням ознаки zf
- •3. Команди умовних переходів.
- •5. Команда lea
- •Команда роботи зі стеком push та pop
- •Розв’язування задач за тематикою заняття
- •Завдання для самостійної роботи.
- •Розв’язування задач за тематикою заняття
- •Завдання для самостійної роботи.
- •Логічні операції та операції зсувів.
- •2. Команди логічних операцій (and, test, or, xor, not).
- •3. Команди зсувів та циклічних зсувів.
- •Команди зсувів (sal, sar, shl,shr)
- •Команда зсуву логічного операнда вправо – shr
- •3.2 Команди циклічних зсувів (rol, ror ,rcl, rcr). Циклічний зсув операнда вліво - rol
- •Циклічний зсув операнда вправо ror
- •Циклічний зсув операнда вліво через ознаку переносу - rcl
- •Циклічний зсув операнда вправо через ознаку переносу – rcr
- •Бітові маски.
- •Розв’язування задач за тематикою заняття
- •Завдання для самостійної роботи
- •1. Множення цілих чисел
- •2. Ділення цілих чисел
- •3. Перетворення в регістрах
- •Алгоритм введення–виведення цілих чисел
- •Виведення цілих чисел.
- •Введення цілих чисел.
- •Розв’язування задач за тематикою заняття
- •Завдання для самостійної роботи.
- •Теоретичні відомості
- •Особливості команд обробки рядків.
- •Ознака df. Команди зміни ознаки ( cld, std ).
- •Префікси повторення( rep, repe, repz, repne, repze ).
- •Команди обробки символьних рядків
2. Команди логічних операцій (and, test, or, xor, not).
Команди AND, TEST, OR, XOR та NOT – є логічними командами мови Асемблера. Логічні команди використовуються для встановлення значень бітів, виділення бітів, для роботи з ознаками, в арифметичних командах для роботи з кодуванням ASCII, тощо. Логічні команди мови Асемблера є порозрядними бітовими операціями. Ці команди виконуються логічні операції для кожного бітового розряду даних.
Команда логічного множення – AND ( Логічне І)
Схема команди :AND приймач, джерело
Призначення: операція логічного множення для операндів, приймач і джерело розмірністю байт, або слово подвійне слово.
Алгоритм роботи:
виконати операцію логічного множення над бітами операндів, при цьому кожен біт результату дорівнює 1, якщо відповідні біти операндів рівні 1, в інших випадках біт результату дорівнює 0;
записати результат операції в приймач;
встановити ознаки.
Типове використання команди — примусової установки або встановлення нуля у визначених розрядах першого операнда.
Команда TEST також виконує логічне множення, як команда AND, встановлює ознаки, але не змінює операнд(приймач).
Команда логічного додавання – OR ( Логічне АБО)
Схема команди : OR приймач, маска
Призначення: операція логічного АБО над бітами операндів.
Алгоритм роботи:
виконати операцію логічного додавання над бітами операндів, при цьому біт результату дорівнює 0, якщо відповідні біти операндів маска і приймач рівні 0, у противному випадку біт дорівнює.
записати результат операції в – приймач (операнд маска залишається незмінним);
встановити ознаки.
Типове використання команди — установка визначених розрядів першого операнда в одиницю.
Команда логічного додавання за модулем двійки – XOR
Схема команди : XOR приймач , джерело
Призначення: операція логічного виключного АБО над двома операндами розмірністю байт, або слово подвійне слово.
Алгоритм роботи:
виконати операцію логічного виключного АБО над бітами операндів, причому біт результату дорівнює 1, якщо значення відповідних бітів операндів різні, в інших випадках біт результату дорівнює 0;
записати результат в приймач;
встановити ознаки.
Стан ознак після виконання команди AND, TEST, OR та XOR: OF та CF встановлюються 0, значення , SF, ZF та PF – залежить від результату роботи команди, AF -невизначена.
Цю операцію зручно використовувати для інвертування або порівняння визначених бітів операндів.
Команда логічного заперечення бітів операнда – NOT
Схема команди: NOT джерело
Призначення: інвертування всіх бітів операнда джерело.
Алгоритм роботи: інвертувати всі біти операнда джерела: з 1 у 0, з 0 у 1. Стан ознак після виконання команди: виконання команди не впливає на ознаки.
Команду NOT можна використовувати для зміни байта, що виконує роль деякої ознаки, з метою відстеження деяких логічних умов у програмі. Але такий спосіб не оптимальний.
3. Команди зсувів та циклічних зсувів.
Команди зсувів та циклічних зсувів, представляють частину логічних можливостей комп’ютера, володіють наступними властивостями:
можуть обробляти операнди розміром у байт, слово та подвійне слово;
операнд може бути в регістрі або пам’яті;
зсувати операнди вліво та право;
величина зсуву не може бути більша 31 біт;
зсуви можуть бути логічними(для операндів без знаку) та арифметичні ( для операндів – зі знаком).
зсуви можуть бути циклічними.
Команди зсувів використовуються для множення та ділення цілочислових операндів степеня 2(для беззнакових даних використовують логічні зсуви, а для знакових арифметичні зсуви), компактного представлення інформації, встановлення та занулення бітів, для роботи з ознаками, арифметичних командах в коді ASCII, тощо.