- •5 Задача 44
- •1. Відкрита архітектура пеом
- •2. Функціональна схема базової моделі мікропроцесора. Схеми напівсуматора і суматора. Дії над двійковими та двійково-десятковими числами.
- •Додавання
- •Віднімання
- •3. Логічна структура мікропроцесора
- •Сегментные регистры
- •Регистры общего назначения
- •Флаги состояния
- •Флаг направления
- •Системные флаги
- •Регистр управления
- •4. Адресація пам’яті
- •Сегментная адресация памяти
- •Параграфы
- •Понятия команды и формата команды
- •5. Сторінкова організ оп пам’яті. Таблиці, дескриптори
- •Понятие о страничной модели памяти
- •6. Структура таблиц idt. Дескриптор шлюза.
- •Дескриптор шлюза
- •7. Формування фізичної адреси з логічної адреси для сегментної та сторінкової схем організації пам’яті Страничная организация
- •8. Принципи роботи vmm
- •Обзор Администратора виртуальной памяти (vmm)
- •9. Використання регістрів загального призначення
- •10. Організація стеку. Адресація стекової пам’яті
- •11. Архітектура регістру ознак (flags)
- •12. Апаратно-програмні засоби певм.
- •13. Механізм переривань
- •14. Апаратні переривання, їх призначення. Архітектура мікросхеми 8859. Обробка апаратних переривань.
- •15. Контролер apic
- •16. Принцип роботи сопроцесора
- •17. Загальні поняття про канали та порти
- •18. Мікросхема паралельного інтерфейсу
- •19. Структура cmos-memory
- •20. Архітектура мікросхеми таймера
- •1 Задача
- •2 Задача
- •Програма може бути якась така:
- •5 Задача
- •6 Задача
Додавання
Кожна цифра десяткового числа може бути представлена кодом від 0000 до 1001, тому якщо при додаванні розряду j двійковій-десяткового числа результат менше, або дорівнює 9, то корекції не потрібно, оскільки двійковій-десятковий код результату повністю збігається з його двійковим кодом.
Якщо при додаванні j-розрядів чисел результат Zj буде більше або дорівнює 10, то потрібна корекція результату.
У таких випадках треба робити корекцію результату. Додаємо до остаточного результату 610 або 0110 і отримуємо:
Таким чином, можна сформулювати правило, за яким слід здійснювати корекцію кожного десяткового розряду результату:
якщо при додаванні багаторозрядних двійковій-десяткових чисел виникло перенесення з розряду або f = 1, то цей розряд вимагає корекції (додавання 610). При цьому коригуються всі тетради послідовно, починаючи з молодшої.
Приклад:
Віднімання
За аналогією з операціями віднімання в двійковому коді операцію XY можна представити як X + ( - Y). При цьому негативне число представляється в додатковому коді , аналогічному додатковому коду в двійковій арифметиці . Цей код використовується тільки для виконання операцій віднімання. Зберігаються двійковій- десяткові числа ( як позитивні , так і негативні) в прямому коді зі знаком .
Алгоритм виконання операції полягає в наступному:
Модуль позитивного числа представляється у прямому двійковій- десятковому коді
Модуль від'ємного числа - в додатковому коді (ДК) з надлишком 6 .
Для отримання ДК необхідно:
Інвертувати значення розрядів всіх тетрад числа;
До молодшого розряду молодшої тетради додати 1 .
Таким чином , ланцюжок ПК ( mod ) ОК ОК +1 ДК аналогічна ланцюжку у двійковій арифметиці . Тільки тут виходить ДК з надлишком 6 , так як доповнення йде не до 10 , а до 16.
Провести додавання операндів (X) в ПК і (Y) в ДК .
Якщо при додаванні тетрад виник перенесення зі старшої тетради , то він відкидається, а результату присвоюється знак " +" , тобто результат виходить у прямому надмірному коді. Він коригується за тими ж правилами , що і при додаванні модулів.
Якщо при додаванні тетрад не виникає перенесення зі старшої тетради , то результату присвоюється знак "-" , тобто результат виходить в надлишковій ДК . У цьому випадку необхідно перейти до надлишкового ПК (тобто інвертувати всі двійкові розряди двійковій- десяткового числа і додати до молодшого розряду 1).
Отриманий в цьому випадку результат в ПК коригується. Для цього до тих зошитів, з яких виникав перенесення при виконанні пункту 2 (при підсумовуванні ) , необхідно додати 10 ( 10 ) або 1010 ( 2). Виниклі при цьому міжтетрадного переноси не враховуються. Таким чином , коригування відбувається в тих тетрадах , які в позитивних числах не коригуються . Слід зазначити , що при виконанні операції віднімання більшого числа з меншого ( X - Y = Z , при | X | | Y | ) , тобто при Z 0 алгоритм корекції результату після переведення Z з ДК в ПК вимагає уточнення. А саме , після переведення Z в ПК необхідність корекції визначається не тільки наведеними правилами, але й наступними вимогами :
нульовий результат не коригується ;
значущі нулі праворуч в результаті не коригуються;
якщо Z 0 і в ньому відсутні значущі нулі праворуч (тобто пп. а, б не мають місця), необхідно аналізувати Y. Якщо в Y є значущі нулі праворуч , то відповідні їм розряди ( тетради ) Z вимагають обов'язкової корекції, незалежно від наявності переносів при додаванні XПК і YДК .
Відсутність перенесення зі старшої тетради є ознакою того, що результат вийшов в ДК (тобто негативний).
Перейдемо до нескоректована надлишкового ПК:
Оскільки раніше результат виходив в ДК, тобто негативний, необхідно додати знак (-). Остаточний результат буде наступний:
Z = - (0001 1000 1001) = -189 10
