- •Основи програмування на мові асемблер та знайомство з програмним забезпеченням для виконання лабораторних робіт
- •Теоретичні відомості
- •1.1 Особливості архітектури мікропроцесора типу Intel 80х86
- •Головні регістри мп Intel 8086 та їх призначення
- •1.2 Організація обчислень та узагальнена архітектура комп’ютера ibm pc
- •1.3 Основи програмування на мові асемблер та її синтаксис. Позначки, коди команд, операнди та директиви
- •1.4. Перетворення програми з тексту на мові асемблера у виконуваний модуль
- •1.5. Основи роботи з програмою afd
- •1.6. Основи роботи з програмою td
- •2. Порядок виконання роботи
- •4. Контрольні питання:
- •Сегментація програми. Сегменти коду, даних та стеку. Їх розташування в пам’яті еом. Директиви мови асемблера segment та ends.
- •Арифметичні та логічні операції мови асемблер
- •1. Теоретичні відомості
- •Директиви визначення даних
- •1.2. Команда перенесення даних
- •1.3. Арифметичні операції над двійковими числами
- •1.4. Команди логічних операцій
- •1.5. Команди зсуву бітів числа
- •1.6. Команди циклічного зсуву бітів числа
- •1.7. Структура асемблерних програм для com- та exe-модулів. Виклик процедур та стек
- •Таким чином, структура com-програми повинна бути такою:
- •2. Варіанти індивідуальні завдання для лабораторної роботи
- •3. Порядок виконання роботи
- •5. Контрольні питання
- •Структура програми на мові асемблер. Команди вітвлення та циклу
- •1. Теоретичні відомості
- •1.1 Механізми передачі керування та зміна послідовності виконання команд. Їх реалізація у мові асемблера. Типи адресації
- •1.2 Команда безумовного переходу jmp
- •1.3 Команда циклу loop
- •1.4 Команда порівняння cmp
- •1.5. Команди умовного переходу в мові асемблер
- •2. Варіанти індивідуальних завдань
- •3. Порядок виконання роботи
- •Виведення даних на монітор персонального комп’ютера
- •1. Теоретичні відомості
- •1.1. Представлення арифметичних та рядкових даних. Формати ascii та bcd. Команди корекції
- •1.2. Команди обробки рядкових даних мови асемблера
- •1.3. Переведення ascii-формату у двійковий формат та навпаки
- •Починаючи з молодшого байту обробляти число у лівому напрямку.
- •Вилучати трійки з шістнадцятирічних цифр кожного ascii-байту.
- •Множити отримані цифри на ваговий коефіцієнт кожного з розрядів та складати результати.
- •1.4. Введення та виведення даних в мові асемблера
- •1.5. Реалізація екранних операцій у мові програмування асемблер
- •2. Індивідуальні завдання для виконання лабораторної роботи №4
- •3. Порядок виконання роботи
- •5. Контрольні питання
- •Перелік рекомендованої літератури
- •Додаток 1 загальні вимоги до оформлення протоколів лабораторних робіт
- •Додаток 2 головні функції перериваннь bios та операційної системи ms-dos д2.1 переривання bios
- •Int 05h. Друк екрану.
- •Int 10h. Керування монітором (більш досконало функції переривання 10н описані у теоретичних відомостях до лабораторної роботи №4).
- •Int 11h. Запит списку приєднаного обладнання.
- •Д2.2 переривання ms-dos
- •Д2.3 головні функції перивання ms-dos int 21н
- •Додаток 3
2. Варіанти індивідуальних завдань
При виконанні індивідуальних завдань цієї роботи використовуються початкові дані, отримані у роботі №2. Тому програма, яку Ви напишите, мусить бути продовженням програми, яка була написана Вами раніше. Номери варіантів для цих обох робіт обов’язково повинен співпадати (табл. 20).
Таблиця 20. Індивідуальні завдання для лабораторної роботи №3
№ варіанту |
Завдання |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX, доки значення регістра CX не стане дорівнювати 2. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі зменшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX, доки значення регістра CX не стане дорівнювати 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX, доки значення регістра CX не стане дорівнювати 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX, доки значення регістра CX не стане дорівнювати 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX, у тому випадку, коли в регістрі CX знаходиться парне число, доки значення регістра CX не стане меншим ніж 3. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 5. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX та зменшувати на величину, що знаходиться у регістрі CX, доки значення регістра CX не стане меншим ніж 5. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 5H. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX та зменшувати на величину, що знаходиться у регістрі CX, доки значення регістра CX не стане меншим ніж –7H. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX, у тому випадку, коли в регістрі CX знаходиться непарне число, доки значення регістра CX не стане менше ніж –5. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3Н. У циклі зменшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX, у тому випадку, коли в регістрі CX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі СХ, якщо у регістрі СХ знаходиться непарне число, доки значення регістра CX не стане менше ніж 5H. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі АX, у тому випадку, коли сума чисел в регістрах BX та CX є парне число, та збільшувати його на величину, що знаходиться в регістрі СХ, якщо сума чисел в регістрах BX та CX є непарне число, доки значення регістра CX не стане менше ніж 8. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 6. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі CX, у тому випадку, коли в регістрі CX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі AХ, якщо у СХ знаходиться непарне число, доки значення регістра CX не стане менше ніж –9. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX, у тому випадку, коли в регістрі CX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі СХ, якщо у СХ знаходиться непарне число, доки значення регістра CX не стане дорівнювати 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на BH. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі АX, та зменшувати на величину, яка знаходиться в регістрі CX у тому випадку, коли сума чисел в регістрах BX та CX є парне число, доки значення регістра CX не стане менше ніж -10H. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX, у тому випадку, коли в регістрі CX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі СХ, якщо у регістрі СХ знаходиться непарне число, доки значення регістра CX не стане менше ніж -12H. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3H. У циклі зменшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі СX, у тому випадку, коли в регістрі CX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі BХ, якщо у СХ знаходиться непарне число, доки значення регістра CX не стане менше ніж –ЕH. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі СX, у тому випадку, коли в регістрі CX знаходиться парне число, та зменшувати його на величину, що знаходиться в регістрі BХ, якщо у регістрі СХ знаходиться непарне число, доки значення регістра CX не стане дорівнювати 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 5. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі АX, у тому випадку, коли сума чисел в регістрах BX та CX є парне число, та зменшувати його на величину, що з находиться у регістрі СX, якщо ця сума є непарне число, доки значення регістра CX не стане менше ніж 8. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 7H. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX та збільшувати на величину, що знаходиться в регістрі CX, у тому випадку, коли сума чисел, що |
|
знаходяться в регістрах CX та BX є парною, доки значення регістра CX не стане менше ніж –ЕH. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX у тому випадку, коли сума чисел в регістрах AX та CX є парне число, та зменшувати на величину, що знаходиться у регістрі CX у тому випадку, коли сума чисел в регістрах AX та CX є непарне число, доки значення регістра CX не стане дорівнювати 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі BX, у тому випадку, коли в регістрі AX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі СХ, якщо у регістрі АХ знаходиться непарне число, доки значення регістра CX не стане рівним 0. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX, у тому випадку, коли в регістрі CX знаходиться парне число, доки значення регістра CX не стане меншим за 3. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 5. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі AX та зменшувати на величину, що знаходиться в регістрі CX, доки значення регістра CX не стане меншим за 3. |
|
|
з находиться у регістрі СX в тому випадку, коли у регістрі ВX знаходиться парне число, або збільшувати те ж саме число на величину, що міститься у регістрі АХ в тому випадку, коли в регістрі ВХ міститься непарне число, доки значення регістра CX не стане меншим за 3. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 6. У циклі зменшувати число, що знаходиться у регістрі ВX на величину, що з находиться у регістрі СX, у тому випадку, коли в регістрі ВX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі АХ, якщо у регістрі ВХ знаходиться непарне число, доки значення регістра CX не стане меншим за –3. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3h. У циклі зменшувати число, що знаходиться у регістрі AX на величину, що з находиться у регістрі СX, у тому випадку, коли в регістрі AX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі BХ, якщо у регістрі AХ знаходиться непарне число, доки значення регістра CX не стане меншим за –Eh. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 2. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з находиться у регістрі СX, у тому випадку, коли в регістрі BX знаходиться парне число, та збільшувати його на величину, що |
|
знаходиться в регістрі AХ, якщо у регістрі BХ знаходиться непарне число, доки значення регістра CX не стане від’ємним. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 3h. У циклі зменшувати число, що знаходиться у регістрі AX на величину, що з знаходиться у регістрі BX, у тому випадку, коли в регістрі CX знаходиться парне число, та збільшувати його на величину, що знаходиться в регістрі BХ, якщо у регістрі CХ знаходиться непарне число, доки значення регістра CX не стане від’ємним. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі зменшувати число, що знаходиться у регістрі BX на величину, що з знаходиться у регістрі AX, у тому випадку, коли сума чисел у регістрах BX та AX є парною, та збільшувати його на величину, що знаходиться в регістрі СХ, якщо вказана сума є непарною, доки значення регістру BX не стане від’ємним. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 9Н. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з знаходиться у регістрі AX та зменшувати його на величину, що знаходиться у регістрі СХ, у тому випадку, коли сума чисел в регістрах ВХ та CX є парною, доки значення регістра CX не стане від’ємним. |
|
|
Організувати цикл, послідовно зменшуючи число у регістрі CX на 1. У циклі збільшувати число, що знаходиться у регістрі BX на величину, що з знаходиться у регістрі AX у тому випадку, коли сума чисел в регістрах ВХ та CX є парною, та зменшувати його на величину, що знаходиться в регістрі СХ, якщо вказана сума є непарною, доки значення регістра CX не стане рівним 0. |
