- •Лабораторний практикум
- •Та організація обчислювальних робіт”
- •1.Основи комп’ютерної техніки
- •1.1.1. Основні теоретичні відомості
- •1.1.2. Варіанти завдань
- •1.2.1 Основні теоретичні відомості
- •1.2.2 Варіанти завдань
- •1.3.1 Основні теоретичні відомості
- •1.3.2 Варіанти завдань
- •1.4.1 Основні теоретичні відомості
- •1.4.2 Варіанти завдань
- •2.Мова assembler
- •2.5.1 Основні теоретичні відомості
- •Movs-пересилка рядка
- •2.5.2. Варіанти завдань
- •2.6.1 Основні теоретичні відомості
- •Imul – цілочисельне множення
- •IDlV-цілочисельне ділення
- •2.6.2. Варіанти завдань
- •2.7.1 Основні теоретичні відомості
- •Ja/jnbe – перехід, якщо більше/перехід, якщо не менше або рівно
- •Jae/jnb/jnc – перехід, якщо більше чи рівно/перехід, якщо не менше/перехід, якщо нема переносу
- •Jb/jnae/jc – перехід, якщо менше/перехід, якщо не більше або рівно/перехід,тобто, перенесення
- •Jbe/jna-перехід, якщо менше або рівно/перехід, якщо не більше
- •Jcxz-перехід, якщо вміст регістра сх рівний нулю
- •Je/jz-перехід, якщо рівно/перехід по нулю
- •Jg/jnle-переход, якщо більше ніж/переход, якщо не менше ніж або рівно
- •Jge/jnl-nepexід, якщо більше або рівно/перехід, якщо не менше ніж
- •Jl/jnge-перехід, якщо меньше/перехід, якщо не більше або рівно
- •Jle/jng-перехід, якщо менше або рівно/перехід, якщо більше
- •Jne/jnz-переход по нерівності /переход, якщо не нуль
- •Jnp/jpo-переход за відсутності парності
- •Jp/jpe-перехід по парності
- •2.7.2. Варіанти завдань
- •2.8.1. Основні теоретичні відомості
- •Основні засоби bios для роботи з відеоадаптером
- •Зовнішні регістри контролера vga (03c2h – 03cFh):
- •Регістри контролера атрибутів (03c0h – 03c1h):
- •Регістри графічного контролера (03cЕh – 03cFh):
- •Регістри контролера crt (03d4h – 03d4h):
- •Регістри синхронізатора (03с4h – 03c5h):
- •Регістри vga dac (03c6h – 03c9h):
- •Вибір режиму роботи відеоадаптера
- •Зміна форми курсора
- •Зміна положення курсору
- •Визначення положення і форми курсору
- •Зміна активної сторінки відеопам'яті
- •Згортка текстового вікна вверх
- •Згортка текстового вікна вниз
- •Читання символу і його атрибутів
- •Запис символу з атрибутами в поточній позиції курсору
- •Запис символу в поточній позиції курсору
- •Запис символу в режимі телетайпу
- •Визначення поточного режиму роботи відеоадаптеру
- •2.8.2. Варіанти завдань
- •3.Розрахунки в mathcad
- •Інтерфейс користувача
- •Основне меню
- •Панелі інструментів
- •Довідникова інформація
- •3.9.1. Основні теоретичні відомості
- •3.9.2. Варіанти завдань
- •3.10.1. Основні теоретичні відомості
- •3.10.2. Варіанти завдань
- •3.11.1. Основні теоретичні відомості
- •3.11.2. Варіанти завдань
- •3.12.1. Основні теоретичні відомості
- •3.12.2. Варіанти завдань
- •4.Табличний процеcор excel
- •4.13.1. Основні теоретичні відомості
- •4.13.2. Варіанти завдань
- •4.14.1. Основні теоретичні відомості
- •4.14.2. Варіанти завдань
- •4.15.1. Основні теоретичні відомості
- •4.15.2. Варіанти завдань
- •4.16.1. Основні теоретичні відомості
- •4.16.2. Завдання
2.6.1 Основні теоретичні відомості
ADD – додавання
(1-й операнд) (1-й операнд) + (2-й операнд)
Цією командою додаєтья до першого другий операнд. Результат розміщується у місце зберігання першого операнду. Попереднє значення першого операнду втрачається. Вміст комірки другого операнду залишається незмінним.
Місцем зберігання першого операнду може бути регістр або комірка пам'яті; другого операнда – регістр або комірка пам'яті, або він може бути заданий безпосередньо числом. Не дозволяється використовувати для запису операндів сегментні регістри, а також комірки пам'яті для одночасного зберігання двох операндів. Операнди можуть бути числами із знаком або без нього і бути байтами або словами.
Приклад. Нехай регістр DL містить число 58Н, однобайтова комірка пам'яті TEST_BYTE містить 27Н, а в регістрі прапорців процесора записано число F046H. Після виконання команди ADD TEST_BYTE,DL в комірку пам'яті буде записане число 7FH.
Вміст регістра DL 0101 1000 = 58Н
Вміст комірки TEST_BYTE 0010 0111 = 27Н
Новий вміст комірки TEST_BYTE 0111 1111 = 7FH
Число одиничних бітів в комірці пам'яті TEST_BYTE після виконання команди рівне семи, тобто непарне число, тому прапор паритету PF скидається в нуль. Прапори SF і ZF обнуляються, оскільки результат операції – позитивне, відмінне від нуля число. Прапори CF і OF також обнуляються, зважаючи на відсутність перенесення і переповнювання відповідно. Прапор AF має нульове значення, оскільки немає перенесення з третього розряду.
Змінюються значення прапорів: OF, SF, ZF, AF, PF, CF.
ADC – додавання з перенесенням
(1-й операнд) (1-й операнд) + (2-й операнд) + (прапор CF)
Командою здійснюється додавання першого і другого операндів і до результату додається значення прапорця перенесення CF. Результат записується в перший операнд, а початкове значення першого операнда втрачається. Другий операнд залишається незмінним.
Перший операнд може зберігатися в регістрі або комірці пам'яті. Другий операнд може бути заданий в регістрі, комірці пам'яті або безпосереднім числовим значенням. Не дозволяється задавати операнди в регістрах сегментів, а також зберігання двох операндів одночасно в комірках пам'яті. Операнди можуть бути байтами або словами, представляти числа із знаком або без знаку. Оскільки команда ADC використовує прапор перенесення CF, вона може застосовуватися для додавання чисел будь-якої довжини.
Приклад. Нехай регістр АХ містить число 4803Н, а прапор перенесення CF рівний 1. Після виконання команди ADC АХ,2517Н в регістрі АХ буде записане 6D1BH, а в регістрі прапорів буде нове значення F006H.
Вміст АХ 0100 1000 0000 0011 = 4803Н
0010 0101 0001 0111 = 2517Н
Прапор перенесення CF 1
Новий вміст АХ 0110 1101 0001 1011 = 6D1BH
Після виконання команди змінюються значення прапорів: OF; SF; ZF; AF; PF;CF.
INC-інкремент
(Операнд) (Операнд) + 1
Цією командою початковий операнд збільшується на 1. Операнд може бути заданий в регістрі загального призначення або в комірці пам'яті. Сегментні регістри не можуть бути використані для зберігання операндів. Команда INC може використовуватися як з однобайтовими, так і двобайтовими операндами. Операнди інтерпретуються як числа без знаку.
Команда змінює прапори AF, OF, PF, SF і ZF.
Приклад. Нехай регістр ВХ задає двобайтову комірку пам'яті з вмістом FE00H і виконується команда INC WORD PTR [ВХ]. Новим вмістом пам'яті після виконання команди буде число FE01H. Оскільки результатом операції є негативне, відмінне від нуля число в додатковому коді, прапор SF встановлений в 1, а прапор ZF — в 0. Наявність тільки одного відмінного від нуля розряду в молодшому байті слова обумовлює скидання прапора паритету в 0.
Після виконання команди змінюються значення прапорів: OF, SF, AF, PF і ZF.
SUВ – віднімання
(1-й операнд) ← (1-й операнд) – (2-й операнд).
Вміст другого операнда при виконанні команди віднімається з вмісту першого операнда і результат розміщується на місце першого операнда. Перший операнд при цьому втрачається, а другий зберігається незмінним.
Перший операнд може бути заданий в регістрі або комірці пам'яті. Другий операнд може бути заданий в регістрі, комірці пам'яті або безпосередньо. Не допускається використовування сегментного регістра або одночасний запис обох операндів в комірках пам'яті. Операнди можуть бути як знаковими, так і беззнаковими числами. Можливе виконання 8- і 16-розрядних операцій.
Приклад. Розглянемо випадок, коли регістр DL містить число 58Н, регістр DH – число 20Н і регістр прапорів процесора – число F046H. Після виконання команди SUB DL, DH в регістрі DL буде записано число 38Н, а в регістрі прапорів – число F002H.
Після виконання команди змінюються значення прапорів: OF, SF, ZF, АF, PF, CF.
SBB-віднімання із запозиченням
(1-й операнд) ← (1-й операнд) – (2-й операнд) – (прапор перенесення CF).
Командою SBB виконується віднімання значення прапора CF і другого операнда з першого операнда. Результат розміщується на місце першого операнда, попереднє значення якого втрачається. Вміст другого операнда не змінюється.
Перший операнд може бути заданий в регістрі або комірці пам'яті. Другий операнд, крім того, може бути заданий безпосередньо. Не допускається використовувати для запису операндів сегментні регістри або задавати обидва операнди в комірках пам'яті. Операнди можуть бути однобайтовими або двобайтовими числами із знаком або без знаку. Можливість займу, дозволяє використовувати команду SBB для організації віднімання чисел з розрядністю, що перевищує 16 біт.
Приклад. Нехай регістр АХ містить число 4803Н, регістр прапорців – F047H, прапор CF встановлений в 1. Після виконання команди SBB AX, 1500H в регістрі АХ буде записано 3302Н, а вміст регістру прапорів буде дорівнювати F002H.
Після виконання команди змінюються значення прапорів: OF, SF, ZF, АF, PF, CF.
DEC-декремент
(Операнд) (Операнд) — 1
Цією командою початковий вміст операнда, визначеного в команді, зменшується на 1. Операнд може берегтися в регістрі загального призначення або елементі пам'яті. Не допускається завдання операндів в регістрах сегментів. Операція виконується як над однобайтовими, так і над двобайтовими числами. Операнд розглядається як беззнакове число. Команда DEC не впливає на прапор CF.
Приклад. Хай в регістрі BL записано 00 і виконується командиа DEC BL. Новим вмістом регістра BL буде число FFH. Оскільки результат є відмінним від нуля числом в додатковому коді, прапор знаку SF встановлюється в 1, а прапор нуля ZF скидається в 0. Оскільки в результаті присутні вісім відмінних від нуля бітів, тобто парне число, прапор паритету PF теж встановлений в 1.
Після виконання команди змінюються значення прапорів: OF; SF; ZF; AF; PF.
MUL-множення
Командою MUL виконується беззнакове множення вмісту акумулятора і операнду – джерела. Якщо операнд є байтом, то він множиться на вміст регістру AL і результат подвійної довжини (слово) записується в регістр АХ. Якщо операнд – слово, то він множиться на вміст регістру АХ і результат (подвійне слово) записується в пару регістрів DX і АХ, причому регістр DX містить старші розряди результату. Операнд може бути заданий в регістрі загального призначення або комірці пам'яті і інтерпретується як число без знаку.
Якщо вміст регістру АН після однобайтового множення або вміст регістру DX після двобайтового множення не рівні нулю, прапори CF і OF встановлюються в 1. Інакше вони скидаються в 0. Значення прапорів AF, PF, SF і ZF після виконання команди MUL не визначено.
Приклад. Нехай регістр AL містить число 30Н, однобайтова комірка пам'яті NEXT_L містить 12Н і виконується команда MUL NEXT_L. Результат множення (12Н 30Н = 360Н) записується в регістр АХ. Оскільки вміст регістру АН відмінний від 0 прапори CF і OF встановлені в 1.
Нехай тепер регістр АХ містить число 1000Н, регістр ВХ – число 550Н. Тоді після виконання команди MUL ВХ результат множення (1000Н 550Н = 550000Н) буде записаний в пару регістрів DX і АХ. Оскільки нове значення регистру DX(0055H) відмінне від нуля, прапори CF і OF встановлюються в 1.
Після виконання команди змінюються значення прапорів: OF; SF; ZF; AF; PF; CF.