Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Організація та функціонування комп’ютерів

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №6 з дисципліни: “Організація та функціонування комп’ютерів” на тему: Дослідження виконання арифметичних операцій у форматі з рухомою комою» Тема: Дослідження виконання арифметичних операцій у форматі з рухомою комою. Мета роботи: Ознайомитися з поданням чисел у нормальній формі. Засвоїти порядок нормалізації чисел з рухомою комою. Ознайомитися з поняттям “характеристика” для чисел з рухомою комою. Вивчити правила додавання (віднімання) двійкових чисел з рухомою комою. Розробити алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'.ютера - симулятора DeComp. Теоретична частина 1.Подання чисел з рухомою комою У форматі з рухомою комою, який звичайно називають нормальною формою запису, числа записуються наступним чином: A = ( М * d ( Р , де p – ціле число, яке називається порядком числа А; d – основа системи числення; М – мантиса числа А (звичайно |M| < 1). Числа, що записані у такій формі називаються нормалізованими. Іншими словами, у нормалізованих числах у мантисі першою цифрою перед комою стоїть 0, а перша цифра після коми – це цифра відмінна від нуля. Для двійкової системи числення вона дорівнює 1. Таким чином, мантису розглядають як число менше одиниці, а порядок – як ціле число. Операція нормалізації виконується шляхом зсуву мантиси вліво із зменшенням порядку, або вправо із збільшення порядку на величину, яка дорівнює кількості розрядів, на яку була зсунута мантиса. Нормалізоване подання чисел дозволяє зберігати у розрядній сітці комп’ютера більшу кількість цифр, що мають значення, тому точність обчислень підвищується. Зазвичай у комп’ютерах нормалізація здійснюється автоматично як при вводі чисел, так і у процесі обчислень (після виконання чергової операції). При цьому мантиса зсувається ліворуч на необхідну кількість розрядів і виконується відповідне зменшення порядку, тобто виконується “нормалізація вліво”. При виконанні операції додавання або віднімання нормалізованих чисел з різними порядками одно з них “денормалізується” до вирівнювання порядків, а сума (або різниця) знову нормалізується. 1.2. Правила додавання (віднімання) двійкових чисел з рухомою комою Додавання і віднімання чисел з рухомою комою виконується у декілька етапів. Вирівнювання порядків; Як відомо, реальна величина (вага) Ni одиниці і-го розряду мантиси визначається не тільки позицією даного розряду, але й порядком р числа, тобто Ni = d p-і, де і – номер позиції, рахуючи вправо від коми. 2.Додавання мантис; Додавання мантис із вирівненими порядками виконується згідно правил додавання чисел з фіксованою комою. Зазвичай використовується модифікований доповнювальний код. 3. Переведення результату додавання мантис у прямий код. У результаті додавання мантис може виникнути один з трьох випадків: а). Виникає переповнення розрядної сітки комп’ютера (порушення нормалізації вправо). Ознакою переповнення є невизначенність знакових розрядів, коли результат неможливо віднести ні до додатних, ні до від’ємних чисел (код 01 або 10). У цьому випадку необхідно виконати корекцію результату додавання мантис шляхом його зсуву вправо на один розряд і одночасного збільшення порядку на 1. 4. Нормалізація результату. Остаточний результат додавання двох чисел з рухомою комою: сума мантис – це мантиса результату, порядок результату – вирівняний порядок доданків, із врахуванням всіх проведених корекцій 2.Хід роботи: Розробили алгоритм і написали програму додавання довільних (додатних і від’ємних) двійкових чисел із рухомою комою у модифікованому доповнювальному коді в інструкціях симулятора DeComp. Блок-схема написаної програми так ні так ні так ні так ні ні так ні так ні так ні так Попередньо в такі комірки заношу такі дані: Номер комірки Значення Коментар  110 Значення заноситься користувачем Перше число  111 Значення заноситься користувачем Друге число  112 0000 0000 0000 1111 Маска для виділення порядку  113 0000 0000 0000 0000 Порядок першого числа  114 0000 0000 0000 0000 Порядок другого числа  115 0000 0000 0011 1111 Маска для визначення знаку порядку  116 0000 0000 0000 0001 Одиниця  117 0000 0000 0000 0000 Різниця порядків  118 0000 0000 0000 0000 Лічильник для визначення, яке число має більший порядок  119 0000 0000 0000 0000 Для проміжних обчислень  120 1111 1111 1111 0000 Маска для виділення числа без порядку  121 0000 0000 0000 0000 Перша мантиса  122 0000 0000 0000 0000 Друга мантиса  123 0000 0000 0000 0000 Порядок результату  124 1100 0000 0000 0000 Маска для обробітку знаків  125 0000 0000 0000 0000 Результат додавання мантис  126 0000 0000 0000 0000 Для проміжних обчислень   Код програми: №п/п Адреса комірки Код інструкції Мнемонічний запис Коментар  1 0 0000 0000 0110 1110 Load 110 Визначення порядку 1-го числа  2 1 0100 0000 0111 0000 And 112   3 2 0001 0000 0111 0001 Store 113   4 3 0000 0000 0110 1111 Load 111 Визначення порядку 2-го числа  5 4 0100 0000 0111 0000 And 112   6 5 0001 0000 0111 0010 Store 114   7 6 0111 0000 0000 0000 NOT Визначення різниці порядків чисел  8 7 0010 0000 0111 0100 Add 116   9 8 0100 0000 0111 0011 And 115   10 9 0010 0000 0111 0001 Add 113   11 10 0001 0000 0111 0101 Store 117   12 11 1111 0010 0000 0000 LSR Перевірка чи від’ємна різниця між порядками  13 12 1111 0010 0000 0000 LSR   14 13 1111 0010 0000 0000 LSR   15 14 1111 0010 0000 0000 LSR   16 15 1111 1110 0000 0000 RCR   17 16 1100 0000 0001 1000 JNC 24 Якщо не від’ємна, то перейти на 24-у комірку  18 17 0000 0000 0111 0101 Load 117 Переведенння від’ємного числа в прямий код  19 18 0111 0000 0000 0000 NOT   20 19 0010 0000 0111 0100 Add 116   21 20 0001 0000 0111 0101 Store 117   22 21 0000 0000 0111 0110 Load 118 Встановлення в лічильнику одиниці  23 22 0010 0000 0111 0100 Add 116   24 23 0001 0000 0111 0110 Store 118   25 24 0000 0000 0111 0101 Load 117 Використання проміжної комірки, щоб не втратити результат  26 25 0001 0000 0111 0111 Store 119   27 26 0000 0000 0110 1110 Load 110 Виділення першого числа без порядку  28 27 0100 0000 0111 1000 And 120   29 28 0001 0000 0111 1001 Store 121   30 29 1111 1100 0000 0000 RCL Перевірка чи 1-е число від’ємне  31 30 1100 0000 0010 0100 JNC 36   32 31 0000 0000 0111 1001 Load 121 Переведення числа в модифікований доповняльний код  33 32 0111 0000 0000 0000 NOT   34 33 0010 0000 0111 0100 Add 116   35 34 0101 0000 0111 1100 OR 124   36 35 0001 0000 0111 1001 Store 121   37 36 0000 0000 0110 1111 Load 111 Виділення другого числа без порядку  38 37 0100 0000 0111 1000 And 120   39 38 0001 0000 0111 1010 Store 122   40 39 1111 1100 0000 0000 RCL Перевірка чи друге число від’ємне  41 40 1100 0000 0010 1110 JNC 46   42 41 0000 0000 0111 1010 Load 122 Переведення числа в модифікований доповняльний код  43 42 0111 0000 0000 0000 NOT   44 43 0010 0000 0111 0100 Add 116   45 44 0101 0000 0111 1100 OR 124   46 45 0001 0000 0111 1010 Store 122   47 46 0000 0000 0111 0110 Load 118 Перевірка лічильника  48 47 1111 1110 0000 0000 RCR   49 48 1100 0000 0011 1010 JNC 58   50 49 0000 0000 0111 1010 Load 122 Денормалізація мантиси 2-го числа  51 50 1111 0010 0000 0000 LSR   52 51 0001 0000 0111 1010 Store 122   53 52 0000 0000 0111 0001 Load 113   54 53 0001 0000 0111 1011 Store 123   55 54 0000 0000 0111 0101 Load 117 Зміна параметрів циклу  56 55 0011 0000 0111 0100 Sub 116   57 56 0001 0000 0111 0101 Store 117   58 57 1000 0000 0011 0001 JNZ 49 Керування циклом  59 58 0000 0000 0111 1001 Load 121 Денормалізація 1-го мантиси числа  60 59 1111 0010 0000 0000 LSR   61 60 0001 0000 0111 1001 Store 123   62 61 0000 0000 0111 0101 Load 117 Зміна параметрів циклу  63 62 0011 0000 0111 0100 Sub 116   64 63 0001 0000 0111 0101 Store 117   65 64 1000 0000 0011 1010 JNZ 58 Керування циклом  66 65 0000 0000 0111 1010 Load 122 Формування результату  67 66 0001 0000 0111 1001 Add 121   68 67 0001 0000 0111 1101 Store 125   69 68 0100 0000 0111 1000 AND 120 Виділення результату без розрядів порядку  70 69 0001 0000 0111 1110 Store 126   71 70 0000 0000 0111 1101 Load 125 Виділення знаку результату  72 71 0100 0000 0111 1100 AND 124   73 72 0001 0000 0111 1111 Store 127   74 73 0000 0000 0111 1110 Load 126 Підготовка до перевірки на денормалізацію  75 74 1111 0000 0000 0000 LSL   76 75 1111 0000 0000 0000 LSL   77 76 0001 0000 0111 1110 Store 126   78 77 0000 0000 0111 1110 Load 126 Перевірка старшого розряду результату  79 78 1111 1100 0000 0000 RCL   80 79 0001 0000 0111 1110 Store 126   81 80 1101 0000 0101 1010 JC 90 Якщо не денормалізована, перейти на наступну перевірку  82 81 0000 0000 0111 1101 Load 125 Нормалізація мантиси  83 82 1111 0000 0000 0000 LSL   84 83 0001 0000 0111 1101 Store 125   85 84 0000 0000 0111 1011 Load 123 Зміна порядку числа  86 85 0011 0000 0111 0100 Sub 116   87 86 0001 0000 0111 1011 Store 123   88 87 0000 0000 0111 1110 Load 126 Перевірка наступного розряду  89 88 1111 1100 0000 0000 RCL   90 89 1100 0000 0100 1101 JNC 77   91 90 0000 0000 0111 1111 Load 127 Перевірка на переповнення розрядної сітки  92 91 1111 1100 0000 0000 RCL   93 92 0001 0000 0111 1111 Store 127   94 93 1100 0000 0110 0101 JNC 101 Якщо С = 0, перейти на 101-у комірку  95 94 0000 0000 0111 1111 Load 127 Перевірка наступного розряду  96 95 1111 1100 0000 0000 RCL   97 96 1101 0000 0110 1011 JC 107 Якщо переповнення нема, вийти з програми  98 97 0000 0000 0111 1101 Load 127 Якщо було виявлено переповнення, то коректувати результат  99 98 1111 0010 0000 0000 LSR   100 99 1111 0010 0000 0000 LSR   101 100 0001 0000 0111 1101 Store 125   102 101 0000 0000 0111 1111 Load 127 Перевірка знакового розряду  103 102 1111 1100 0000 0000 RCL   104 103 1100 0000 0110 1011 JNC 107 Якщо переповнення нема, вийти з програми  105 104 0000 0000 0111 1101 Load 125 Якщо було виявлено переповнення, то коректувати результат  106 105 1111 0010 0000 0000 LSR   107 106 0001 0000 0111 1101 Store 125   108 107 0111 1100 0000 0000 HALT Зупинка виконання програми   Висновки: На даній лабораторній роботі -ознайомилася з поданням чисел у нормальній формі. Засвоїла порядок нормалізації чисел з рухомою комою. Ознайомилася з поняттям “характеристика” для чисел з рухомою комою. -вивчила правила додавання (віднімання) двійкових чисел з рухомою комою. -розробила алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'.ютера - симулятора DeComp.
Антиботан аватар за замовчуванням

08.05.2013 10:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!