дин операнд знаходиться в основній пам'яті або регістрі, а інший безпосередньо в команді (випадок безпосередньої адресації, що представляється адресою типу I). Команди різних форматів мають різну довжину, але команди будь-якого формату повинні мати адресу, що є целочисленной кордоном для півслова. У курсовій роботі передбачається можливість безпосередньої передачі інформації з основної пам'яті (наявність поля m) в регістри або в операційний пристрій. На практиці для цього необхідно виконати додаткові команди завантаження. p align="justify"> Приклад розташування команд у пам'яті представлений на малюнку 13.
В
Рис. 13. Приклад розташування команд у пам'яті
Для позначки порядку проходження команд у структуру процесора вводиться тригер переходу ТП. Якщо команди виконуються в природному порядку, то ТП: = 1. Стан ТП визначає можливість використання інформації з раніше обраного слова, збереженої на БР. Якщо ТП: = 0, той вміст буферного регістра БР може бути використано для утворення наступної команди. Якщо ТП: = +1, то управління передано іншому слову, відсутньому на БР, і, отже, вміст БР не може бути використано для формування наступної команди. p align="justify"> Слово ОП може містити повністю команду або тільки її частину. У 32-розрядному слові ОП може міститися тільки одна команда, наприклад RX, або два поля по півслова, що належать різним командам. В останньому випадку використання БР для зберігання другого півслова дозволяє виключити читання з ОП того ж слова. Роль БР збільшується при 64-розрядному слові ОП. p align="justify"> Послідовна вибірка команд і їх обробка, при якій тригер переходу ТП зберігає нульове значення, має свої особливості. У цьому випадку вся команда, якщо вона має формат RR, або частина команди формату RX може зберігатися на буферному регістрі. Значення перших розрядів БР визначає формат зберігається на ньому команди, у випадку команди формату RR досить вміст БР передати на РК і лічильник адреси збільшити на 1. Звернення до пам'яті не потрібно. Якщо ж на БР знаходиться перший півслово команди формату RX, його необхідно переслати на РК (наприклад, 0:15), потім збільшити СчК на 2 і прочитати з ОП слово. Першим півсловом доповнюється регістр команд, а друге півслово заноситься на БР. Для занесення інформації на регістр команд рекомендується використовувати систему шин, представлену на малюнку 16. Шина Z перед підключенням її до регістру РК розділяється на дві подшіни Z (0:15) і Z (16:31). Кожна з подшін може підключитися як до старших, так і до молодшим розрядам регістра РК. br/>В
Рис. 16. Ланцюги, використовувані при вибірці команд
.6 Вибірка операндів
Виконавчий Алреса операнда визначається по полях (mod, d, w, reg) формату команди. У рамках курсового проектування використовуються способи адресації представлені в таблиці 4. br/>
Таблиця 4
Приклад команд
АдресаціяПрімер командиНепосредственнаяMov eax, 12345678hРегістроваяMov eax, ecxРегістровая косвеннаяMov eax, [ecx] Індексний зі смещеніемMov eax, ecx +1200 hБазовая індексна зі смещеніемMov eax, [ecx] [edx] +40 hІндексная із зсувом і масштабірованіемMov eax, [ edx] [ecx * 2]
Процес формування адреси операнда при заданій індексної адресації зі зміщенням і масштабуванням представлений на малюнку 17.
В
Рис. 17. Формування виконавчої адреси операнда
Виконавчий адресу операнда в ОП обчислюється складанням трьох складових: Трехразрядное поле базового регістра, зміщення, зазначеного в команді поля disp, вмісту індексного регістра, помноженого на масштабний коефіцієнт. Обчислений виконавчий адреса може бути некоректний, тобто порушена адресація або специфікація.
Неправильна адресація виникає в тому випадку, еcли адресу виходить за межі ємності пам'яті. При неправильному адресі тригер переривання встановлюється в 1 і операція не виконується. Неправильна специфікація є наслідком порушення цілочисельності кордони для оброблюваної одиниці інформації Обробка адрес проводиться операційним автоматом. br/>
.7 Виконання операцій двійковій арифметики
Операції двійковій арифметики виконуються як над цілими двійковими числами так числами з плаваючою комою. Негативне число зберігається і набирає операцію в додатковому коді. Застосування додаткових кодів (єдине уявлення 0) значно спрощує алгоритми складання-віднімання, в результаті чого отримують економію в часі виконання цих операцій. Операції множення і ділення цілих чисел можна виконати відразу в додаткових кодах. Дозволяється використовувати алгоритми множення і ділення у прямих кодах, для чого операнди перед початком операції слід перетворити на прямий код і негативний результат - у додатковий код (за умови, що дані в ОП зберігаються в додатко...