You are on page 1of 6

ПРАКТИЧНА РОБОТА

Компонування, виконання, програми. Арифметичні операції мікропроцесора


і8086

МЕТА РОБОТИ: вивчити команди арифметичних операцій мікропроцесору,


дослідити прапори, які використовуються в командах ADD та SUB.
Обладнання: персональний комп'ютер. Програмне забезпечення: ОСWindows,
emu8086.

Теоретичні відомості

Рисунок 1 – Структурна схема МК i8086

Операційний пристрій складається з РЗП (регістрів загального призначення),


призначених для зберігання проміжних результатів обчислень - даних та адрес; АЛУ з
буферними регістрами; регістра прапорів; схеми управління та синхронізації, яка
дешифрує коди команд та генерує керуючі сигнали всім блоків схеми мікропроцесора.
Шинний інтерфейс складається з шести байтної регістрової пам'яті, яка називається
чергою команд, чотирьох сегментних регістрів: CS. DS. ES, SS, покажчика команд IP,
суматора, а також допоміжних регістрів зв'язку та буферних схем шин адреси/даних.
Черга команд працює за принципом FIFO (First Input First Output, тобто "перший
прийшов - перший вийшов") і зберігає на виході порядок надходження команд.
Довжина черги - 6 байт. Якщо операційний пристрій зайнятий виконанням команди,
шинний інтерфейс самостійно ініціює випереджальну вибірку кодів команд із пам'яті в
чергу команд. Вибірка з пам'яті чергового командного слова здійснюється тоді, коли в
черзі виявляються два вільні байти. Черга збільшує швидкодію процесора у разі
послідовного виконання команд. При вибірці команд переходів, запитів та повернень з
підпрограм, обробки запитів переривань черга команд скидається, та Вибірка
починається з нового місця програмної пам'яті. Ще одним завданням шинного
інтерфейсу є формування фізичного 20-розрядної адреси із двох 16-розрядних слів.
Першим словом є вміст одного із сегментних регістрів CS, SS, DS, ES, а друге слово
залежить від типу адресації операнду чи коду команди. Підсумовування 16-розрядних
слів відбувається зі зміщенням на 4 розряди і здійснюється за допомогою суматора, що
входить до складу шинного інтерфейсу.

Рисунок 2 – Програмна модель мікропроцесора i8086

Програмна модель МП I8086 (рисунок 2) складається з РЗН, сегментних


регістрів, покажчика команд IP та регістру прапорів F. Регістри загального
призначення поділяються на регістри даних та регістри-покажчики. До регістрів даних
відносяться чотири 16-розрядні регістри: АХ, ВХ, СХ, DX. Будь-який із цих регістрів
складається з двох 8-розрядних регістрів, які можна незалежно адресувати
символічними іменами АН, ВН, СН, DH (старші байти - High) та AL, BL, CL, DL
(молодші байти – Low). Регістри-покажчики SP (Stack Pointer, покажчик стека), ВР
(Base Pointer, базовий регістр, SI (Source Index, індекс джерела), DI (Destination Index,
індекс призначення) є 16-розрядними та призначені для зберігання адрес операндів
при непрямій адресації. Всі РЗП можна використовувати для зберігання даних, але в
деяких командах допускає використання певного регістру за умовчанням: АХ – при
множення, розподіл, введення та виведення слів; AL – при множенні, розподілі,
введенні та виведення байтів, десяткової корекції, перетворення байтів (команда
XLAT); АН - при множенні та розподілі байтів; ВX – при трансляції; СХ як лічильник
циклів та покажчик довжини рядків у малих командах: CL - для зберігання числа
зрушень у командах; DХ - при множенні та розподілі слів, введенні та виведенні з
непрямою адресацією; SP – при операціях зі стеком; SI, DI – при рядкових операціях.
У регістрі SP 16-розрядних процесорів зберігається зміщення останньої зайнятої
комірки стека щодо початку сегмента стека, а повна адреса стека визначається як
SS:SP. Сегментні регістри CS, DS, ES, SS визначають початкові адреси чотирьох
сегментів пам'яті Використання сегментних регістрів визначається типом звернення до
пам'яті.

Хід роботи

1. Запустити емулятор EMU8086.


2.Прапори, які використовуються в командах ADD та SUB
Завдання 2.1 Якщо після виконання команд ADD або SUB виходить нульовий
результат, встановлюється прапор нуля, і якщо результат негативний, встановлюється
прапор знака. У наступних прикладах у рядку 1 виходить нульовий результат, а в
рядку 4 результат дорівнюватиме -1 (FFFFh)

Записати значення у регістрах та значення регістру прапорів, та дати визначення цих


регістрів прапорів (Таблиця 2)

Завдання 2.2 Прапор нуля встановлюється, коли результат арифметичної операції


дорівнює 0. Слід зазначити, що команди INC та DEC використовують прапор нуля, але
не використовують прапор перен есення.

Записати значення у регістрах та значення регістру прапорів, та дати визначення цих


регістрів прапорів (Таблиця 2)

Завдання 3.2

Операнди без знаку. Коли виконуються арифметичні операції, прапор переносу


використовується. Якщо в результаті операції додавання виходить більше, ніж це
допустимо для цільового операнда, встановлюється прапор перенесення. Наприклад,
сума 0FFh + 1 дорівнює l00h, але тільки дві цифри (00) запишуться в регістр АL, при
цьому встановиться прапор перенесення:
Записати значення у регістрах та значення регістру прапорів, та дати визначення цих
регістрів прапорів (Таблиця 2)

В цьому випадку використовувалося 8-розрядне додавання, оскільки був задіяний


регістр AL. Для отримання правильної відповіді необхідно використовувати 16-
розрядне додавання, що означає використання регістру АХ:

Записати значення у регістрах та значення регістру прапорів, та дати визначення цих


регістрів прапорів (Таблиця 2)

3. Визначити значення прапорів після виконання ADD AL, BL


(підсумовування вмісту 8-розрядних регістрів AL, BL; результат передається в
AL), якщо у регістрі AL знаходиться число 49h, а регістрі BL — 68h.
Записати після виконання команди підсумовування прапори встановляться
наступним чином:
AF = , CF = , OF = , SF = , PF = , ZF = .

Поясніть встановлення прапорів.

3. У регістрах АХ та ВХ задана послідовність кодів. Написати програму побайтного


пересилання регістрів AH, AL, BH, BL відповідно до CH, CL, DH, DL.

Таблиця варіантів завдання (Таблиця 1)


Контрольні питання:
1. Призначення прапора ZF?
2. Призначення прапора СF?
3. Призначення прапора AF?
4. Призначення прапора SF?

ЗМІСТ ЗВІТУ:
1) Титульний лист.
2) Тема, мета практичної роботи.
3) Короткі теоретичні відомості.
4) Хід роботи (виконане практичне завдання; скріншоти).
5) Висновок.
6) Відповіді на контрольні запитання до практичної роботи.

You might also like