РефератыИнформатикаДоДослідження виконання арифметичних операцій у форматі з рухомою комою

Дослідження виконання арифметичних операцій у форматі з рухомою комою

Міністерство освіти і науки України


Національний університет „Львівська політехніка”


Кафедра ЕОМ


Звіт


з лабораторної роботи №6


з дисципліни: організація та функціонування комп’ютерів на тему:


Дослідження виконання арифметичних операцій у форматі з рухомою комою»


Виконав:


ст.гр. КІ-11


Cаноцький М.Т.


Прийняв:


ст..викл.


Кудрявцев О.Т.


Львів 2010


Мета роботи:


1. Ознайомитися з поданням чисел у нормальній формі. Засвоїти порядок нормалізації чисел з рухомою комою. Ознайомитися з поняттям “характеристика” для чисел з рухомою комою.


2. Вивчити правила додавання (віднімання) двійкових чисел з рухомою комою.


3. Розробити алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера - симулятора DeComp.


1. Теоретична частина


1.1 Подання чисел з рухомою комою


число рухомий кома алгоритм


У форматі з рухомою комою, який звичайно називають нормальною формою запису, числа записуються наступним чином:


A = М * d Р ,


де p – ціле число, яке називається порядком числа А;


d – основа системи числення;


М – мантиса числа А (звичайно |M| < 1).


При нормальній формі запис одного числа може приймати різний вигляд у залежності від обмежень, що накладаються на його форму. Фактично місце коми у мантисі М визначається величиною порядку р. Із зміною порядку р у більшу або меншу сторону кома відповідно переміщується ліворуч або праворуч, тобто рухається (“плаває”) у зображені мантиси. Наприклад:


23410 = 234 * 100 = 0,234 * 103 = 0,0234 * 104 = 2,34 * 102 ;


1011012 = 101101 * 100 = 0,101101 * 10110 = 0,00101101 * 101000 .


Можна зауважити, що хоча числа у наведених прикладах однакові за абсолютною величиною, проте мантиса потребує різної кількості розрядів. Для цього, щоб запобігти цьому, звичайно уводять деякі обмеження. Найбільш розповсюдженим і зручним для подання у комп’ютерах обмеженням є наступне:


d-1 M 1.


Числа, що записані у такій формі називаються нормалізованими. Іншими словами, у нормалізованих числах у мантисі першою цифрою перед комою стоїть 0, а перша цифра після коми – це цифра відмінна від нуля. Для двійкової системи числення вона дорівнює 1.


Таким чином, мантису розглядають як число менше одиниці, а порядок – як ціле число.


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


Приклад: нормалізувати наступні числа:


0,00237 * 105 = 0,237 * 103 – мантиса зсувається на два розряди вліво, тобто – збільшується, а порядок зменшується на дві одиниці.


10101,0112 * 1010 = 0,10101011 * 10 111 - мантиса зсувається вправо на 5 розрядів, тобто – зменшується, а порядок збільшується на 5 одиниць.


Нормалізоване подання чисел дозволяє зберігати у розрядній сітці комп’ютера більшу кількість цифр, що мають значення, тому точність обчислень підвищується. Зазвичай у комп’ютерах нормалізація здійснюється автоматично як при вводі чисел, так і у процесі обчислень (після виконання чергової операції). При цьому мантиса зсувається ліворуч на необхідну кількість розрядів і виконується відповідне зменшення порядку, тобто виконується “нормалізація вліво”.


При виконанні операції додавання або віднімання нормалізованих чисел з різними порядками одно з них “денормалізується” до вирівнювання порядків, а сума (або різниця) знову нормалізується.


У розрядній сітці комп’ютерів фіксуються знак числа, знак порядку, порядок числа і числовий вираз мантиси.





























0


1


2


...


...


...


...


...


...


m+n+1


0


0


1


2


...


m


1


2


...


n


Знак


мантиси


Знак


порядку


Порядок


Мантиса



У комп’ютерах із рухомою комою можливе переповнення розрядної сітки, так само, як і у комп’ютерах із фіксованою комою. Наприклад, переповнення може виникнути при додаванні нормалізованих чисел одного знаку з однаковими порядками. У цьому випадку з’являється “1” ліворуч від коми. Такого роду переповнення коригується зсувом мантиси вправо на один розряд і збільшенням порядку на одиницю, тобто виконується “нормалізація вправо”.


1.2 Правила додавання (віднімання) двійкових чисел з рухомою комою


Додавання і віднімання чисел з рухомою комою виконується у декілька етапів.


1. Вирівнювання порядків;


Як відомо, реальна величина (вага) Ni одиниці і-го розряду мантиси визначається не тільки позицією даного розряду, але й порядком р числа, тобто


Ni = d p-і,


де і – номер позиції, рахуючи вправо від коми.


При додаванні (відніманні) необхідно, щоб ваги однойменних розрядів мантис чисел були однаковими. Для цього мантиси зсувають одна щодо одної так, щоб їх порядки вирівнялися. Щоб при вирівнюванні порядків не отримати мантиси більшої за одиницю, їх потрібно вирівнювати від меншого до більшого порядку. Мантиса з меншим порядком зсувається вправо (у бік молодших розрядів) на кількість розрядів, що дорівнює різниці порядків і одночасно коректується порядок (збільшується до значення спільного порядку).


1. Додавання мантис;


Додавання мантис із вирівненими порядками виконується згідно правил додавання чисел з фіксованою комою. Зазвичай використовується модифікований доповнювальний код. (Пригадайте правила подання від’ємних чисел з використанням доповнювального або оберненого модифікованого коду).


3. Переведення результату додавання мантис у прямий код.


У результаті додавання мантис може виникнути один з трьох випадків:


а). Виникає переповнення розрядної сітки комп’ютера (порушення нормалізації вправо). Ознакою переповнення є невизначенність знакових розрядів, коли результат неможливо віднести ні до додатних, ні до від’ємних чисел (код 01 або 10). У цьому випадку необхідно виконати корекцію результату додавання мантис шляхом його зсуву вправо на один розряд і одночасного збільшення порядку на 1.


Наприклад, після додавання мантис отримуємо число 01,00001. Нормалізуємо його зсувом вправо на один розряд і одночасно збільшуємо порядок на 1. В результаті отримуємо:


(А + В)доп = 00,100001 * 10к+1


Переводимо у прямий код: (А + В)пр = 00,100001 * 10к+1.


Внаслідок корекції результату шляхом зсуву вліво точність його погіршилася.


б). Результат від’ємний. Переведення результату додавання мантис у прямий код віконується шляхом виконання другого доповнення (тобто, виконується інверсія результату і до отриманого коду додається 1 у молодший розряд) або другого обертання (тобто, виконується інверсія результату);


в). Результат додатний. У прямому коді додатний результат залишається без змін;


4. Нормалізація результату.


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


1. Остаточний результат додавання двох чисел з рухомою комою: сума мантис – це мантиса результату, порядок результату – вирівняний порядок доданків, із врахуванням всіх проведених корекцій. .


Розглянемо приклади виконання операції додавання двійкових чисел з рухомою комою. Всі арифметичні дії будемо виконувати у модифікованому доповнювальному коді.


Приклад 1: Додати A = - 0,1101 * 10101 i B = + 0,1100 * 10011.


а) Вирівнюємо порядки.. Спочатку, визначаємо арифметичну різницю між порядками, віднімаючи від значення порядку числа А значення порядку числа В. При цьому операцію віднімання замінюємо операцією додавання у доповнювальному модифікованому коді.


рА – рВ = рА + (– рВ) = (pA доп(м) = 00,101) + (pB доп(м) = 11,101) = 00,010 – різниця порядків


Аналіз отриманої різниці:


· знак різниці показує, що порядок числа А більше порядку числа В;


· порядки відрізняються на дві одиниці.


Через те, що рА > pB, зсуваємо мантису числа В вправо на два розряди, тобто


МВ пр= 00,001100 і Впр= 00,001100 * 10101.


Розряди мантиси числа В, які вийшли за межі розрядної сітки процесора, будуть втрачені, що погіршить точність обчислень.


б) Переводимо мантиси обох чисел у модифікований доповнювальний код (в межах 4-х розрядів):


МА пр = 11,1101 МА доп(М) =.11,0011


МВ пр = 00,0011 МВ доп(М) =.00,0011


в) Додаємо модифіковані доповнювальні коди мантис чисел А та В і отримуємо результат у модифікованому доповнювальному коді:


(А + В)доп (М) = 11,0011 + 00,0011 = 11,0110


г) Аналіз результату додавання мантис починається із знакових розрядів. Знакові розряди показують, що переповнення розрядної сітки у нас не виникло. Результат – від'ємний, тому переводимо мантису результату у прямий код шляхом виконання другого доповнення і дописуємо спільний порядок:


(А + В)пр (М) = (11,1001 + 00,0001) * 10 101 = 11,1010 * 10101 - остаточний результат.


При переведенні у прямий код знак результату не міняється.


Подальший аналіз показує, що порушення нормалізації результату вправо немає.


Приклад 2. : Додати двійкові числа: А = + 0,10100 * 10101 та В = - 0,10110 * 10100 .


а) Для вирівнювання порядків доданків необхідно із порядку числа А відняти порядок числа В. Віднімання замінимо додаванням у модифікованому доповняльному коді.


(рА доп(м)= 00,101) + (рВ доп(м) = 11,100) = ,101 – 00,100 = 00,101 + (- 00,100) = 00,101 + (11,011 + 00,001) = 00,101 + 1,100 = 00,001


Через те, що рА > pB на +1, виконуємо зсув мантиси числа В вправо на 1 розряд.


МВ пр = 11,010110 і В = 11,010110 * 10101.


б) Переведемо мантиси доданків у модифікований доповняльний код.


МА пр = 00,10100 МА доп(М) = 00,10100.


МВ пр = 11,010110 МВ доп(М) = 11,101010.


в) Додаємо мантиси чисел А і В у модифікованих доповняльних кодах:


(МА доп(М) = 00,10100) + (МВ доп(М) = 11,10101) = 00,01001


г) Переводимо результат у прямий код (виконуємо друге доповнення). У нашому випадку прямий код суми мантис збігається з доповнювальним кодом суми мантис, тому що результат є число додатне.


(МА + МВ) пр(м) = 00,01001


Як видно, виникло порушення нормалізації вправо, тому що вправо від коми розряд дорівнює 0.


д) Виконуємо нормалізацію результату, тобто зсув мантиси ліворуч на 1 розряд з одночасним відповідним зменшенням порядку:


(А + В)пр = 0,1001 * 10100 – остаточний результат.


2.Хід роботи:


· Розробити алгоритм і написати програму додавання довільних (додатних і від’ємних) двійкових чисел із рухомою комою у модифікованому доповнювальному коді в інструкціях симулятора DeComp. Числа подаються у форматі:












Знак порядку


Знак мантиси


Порядок


Мантиса


2 розряди


2 розряди


4 розряди


8 розрядів



У алгоритмі передбачити аналіз отриманого результату на:


· переповнення розрядної сітки (порушення нормалізації вліво);


· наявність порушення нормалізації вправо;


· від'ємний результат


Передбачити відповідні заходи з корекції результату.


Блок-схема написаної програми


Попередньо в такі комірки заношу такі дані:






































































































































































350


хххх хххх хххх хххх


Число а


351


хххх хххх хххх хххх


Число b


352


1100 0000 0000 0000


Маска для знаку порядку


353


0000 1111 0000 0000


Маска для порядку


354


0000 0000 0000 0000


Порядок числа а


355


0000 0000 0000 0000


Знак порадка числа а


356


0000 0000 0000 0000


Порядок числа b


357


0000 0000 0000 0000


Знак порядку числа b


358


0000 0000 0000 0000


Порядок зі знаком числа a


359


0000 0000 0000 0000


Порядок зі знаком числа b


360


0000 0000 0000 0001


Одиниця для додавання


361


0000 0000 0000 0010


Нормалізація порядку


362


0011 1100 0000 0000


Маска для нормалізації інвертації порядка


363


0000 0000 0000 0000


Мантиса числа a


364


0000 0000 0000 0000


Мантиса числа b


365


0000 0000 0000 0000


Знак мантиси числа a


366


0000 0000 0000 0000


Знак мантиси числа b


367


0011 0000 0000 0000


маска для відокремлення знаку мантиси


368


0000 0000 1111 1111


Маска для відокремлення мантиси


369


0000 0000 0000 0000


Мантиса зі знаком числа a


370


0000 0000 0000 0000


Мантиса зі знаком числа a


371


0000 0000 0000 0000


Різниця порядків


372


0011 1110 0000 0000


Маска для взяття різниці порядків


373


1011 1111 1111 1111


Обернена маска для взяття модуля різниці


374


0000 0000 0000 1001


Нормалізація різниці порядків


375


0000 0000 0000 0101


Підготовка мантиси


376


0000 0000 0000 0101


Підготовка мантиси


377


0000 0000 0000 0010


Нормалізація порядку


378


0000 0000 1111 1111


Маска для виділення мантиси


379


1000 0000 0000 0000


Відновлення знаку мантиси


380


0000 0000 0000 0000


Сума двох чисел


381


0000 0000 0000 0000


Мантиса результату


382


0000 0000 0000 0000


Знак мантиси результату


383


0000 0000 0000 0000


Порядок результату


384


0000 0000 0000 0000


Знак порядоку результату


385


0011 1111 1110 0000


Маска для вибору мантиси результату


386


0000 0000 0000 0110


Зсув мантиси до молодших розрядів


387


0000 0000 0000 0000


Результат (Зн. П, Зн.М, Порядок, Мантиса)


388


0000 0100 0000 0000


Додавання одиниці для переведення порядку


389


0000 0010 0000 0000


Одиниця для переведення різниці порядків


390


0000 0000 0010 0000


Додавання одиниці для переведення мантиси



Код програми:






















































































































































































































































































































































































































































































































































































































































































































































































































































































0


0000 0001 0101 1110


LOAD 350


Виділення порядка 1-го числа


1


0100 0001 0110 0001


AND 353


2


0001 0001 0110 0010


STORE 354


Переміщення порядку до старших розрядів


3


0000 0001 0110 0010


LOAD 354


4


1111 0010 0000 0000


LSL


5


0001 0001 0110 0010


STORE 354


6


0000 0001 0110 1001


LOAD 361


7


0011 0001 0110 1000


SUB 360


8


0001 0001 0110 1001


STORE 361


9


1000 0000 0000 0011


JNZ 3


10


0000 0001 0101 1110


LOAD 350


Виділення знаку порядку 1-го числа


11


0100 0001 0110 0000


AND 352


12


0001 0001 0110 0011


STORE 355


13


1111 1100 0000 0000


LSL


Перевірка на відємність порядка 1-го числа


14


1100 0000 0001 0100


JNC 20


15


0000 0001 0110 0010


LOAD 354


Якщо порядок 1-го числа відємний інвертуєм порядок перевести в доповняльний код


16


0111 0000 0000 0000


NOT


17


0100 0001 0110 1010


AND 362


18


0010 0001 1000 0100


ADD 388


19


0001 0001 0110 0010


STORE 354


20


0000 0001 0110 0010


LOAD 354


Обєднання знаку і порядку в одне число


21


0010 0001 0110 0011


ADD 355


22


0001 0001 0110 0110


STORE 358


23


0000 0001 0101 1111


LOAD 351


Виділення порядка 2-го числа


24


0100 0001 0110 0001


AND 353


25


0001 0001 0110 0100


STORE 356


26


0000 0001 0110 0100


LOAD 356


Переміщення порядку до старших розрядів


27


1111 0010 0000 0000


LSL


28


0001 0001 0110 0100


STORE 356


29


0000 0001 0110 1001


LOAD 377


30


0011 0001 0110 1000


SUB 360


31


0001 0001 0110 1001


STORE 377


32


1000 0000 0001 1010


JNZ 26


33


0000 0001 0101 1111


LOAD 351


Виділення знаку порядку 2-го числа


34


0100 0001 0110 0000


AND 352


35


0001 0001 0110 0101


STORE 357


36


1111 1100 0000 0000


LSL


Перевірка на відємність порядка 2-го числа


37


1100 0000 00

10 1011


JNC 43


38


0000 0001 0110 0100


LOAD 356


Якщо порядок 2-го числа відємний інвертуєм порядок


39


0111 0000 0000 0000


NOT


40


0100 0001 0110 1010


AND 362


41


0010 0001 1000 0100


ADD 388


42


0001 0001 0110 0100


STORE 356


43


0000 0001 0110 0100


LOAD 356


Обєднання знаку і порядку в одне число


44


0010 0001 0110 0101


ADD 357


45


0001 0001 0110 0111


STORE 359


46


0000 0001 0101 1110


LOAD 350


Виділення мантиси


47


0100 0001 0111 0000


AND 368


48


0001 0001 0110 1011


STORE 363


49


0000 0001 0101 1110


LOAD 350


Виділення і нормалізація знаку


50


0100 0001 0110 1111


AND 367


51


1111 1100 0000 0000


LSL


52


1111 1100 0000 0000


LSL


53


0001 0001 0110 1101


STORE 365


54


0000 0001 0101 1111


LOAD 351


Виділення мантиси


55


0100 0001 0111 0000


AND 368


56


0001 0001 0110 1100


STORE 364


57


0000 0001 0101 1111


LOAD 351


Виділення і нормалізація знаку


58


0100 0001 0110 1111


AND 367


59


1111 1100 0000 0000


LSL


60


1111 1100 0000 0000


LSL


61


0001 0001 0110 1110


STORE 366


62


0000 0001 0110 0110


LOAD 358


Визначення різниці порядків


63


0010 0001 0110 0111


ADD 359


64


0001 0001 0111 0011


STORE 371


65


1011 0000 0100 1100


JM 76


Визначення знаку різниці


66


1111 0010 0000 0000


LSR


Корекція результату


67


0100 0001 0111 0100


AND 372


68


0001 0001 0111 0011


STORE 371


69


0000 0001 0111 0011


LOAD 371


Нормалізація різниці порядків


70


1111 0010 0000 0000


LSR


71


0001 0001 0111 0011


STORE 371


72


0000 0001 0111 0110


LOAD 374


73


0011 0001 0110 1000


SUB 360


74


0001 0001 0111 0110


STORE 374


75


1000 0000 0100 0101


JNZ 69


76


0000 0001 0111 0011


LOAD 371


77


0010 0001 0110 1000


ADD 360


78


0001 0001 0111 0011


STORE 371


79


0000 0001 0110 0111


LOAD 359


Збільшення меншого порядку на величину різниці


80


0010 0001 0111 0011


ADD 371


81


0001 0001 0110 0111


STORE 359


82


0000 0001 0111 0011


LOAD 371


Зсув мантиси на величину різниці порядків


83


0011 0001 0110 1000


SUB 360


84


1001 0000 0101 1010


JZ 90


85


0001 0001 0111 0011


STORE 371


86


0000 0001 0110 1100


LOAD 364


87


1111 0010 0000 0000


LSR


88


0001 0000 0110 1100


STORE 364


89


1110 0000 0101 0010


JMP 82


90


1111 0010 0000 0000


LSR


Корекція результату


91


0100 0001 0111 0101


AND 373


92


0001 0001 0111 0011


STORE 371


93


0100 0001 0111 0100


AND 372


Переведення числа в прямий код


94


0111 0000 0000 0000


NOT


95


0010 0001 1000 0101


ADD 389


96


0000 0001 0110 0110


LOAD 358


Збільшення меншого порядку на величину різниці


97


0010 0001 0111 0011


ADD 371


98


0001 0001 0110 0110


STORE 358


99


0001 0001 0111 0011


STORE 371


Нормалізація різниці порядків


100


0000 0001 0111 0011


LOAD 371


101


1111 0010 0000 0000


LSR


102


0001 0001 0111 0011


STORE 371


103


0000 0001 0111 0110


LOAD 374


104


0011 0001 0110 1000


SUB 360


105


0001 0001 0111 0110


STORE 374


106


1000 0000 0110 0011


JNZ 99


107


0000 0001 0111 0011


LOAD 371


Зсув мантиси на величину різниці порядків


108


0011 0001 0110 1000


SUB 360


109


1001 0000 0111 0011


JZ 115


110


0001 0001 0111 0011


STORE 371


111


0001 0001 0110 1011


LOAD 363


112


1111 0010 0000 0000


LSR


113


0000 0001 0110 1011


STORE 363


114


1110 0000 0110 1011


JMP 107


115


0000 0001 0110 1101


LOAD 365


Переведення числа в доповняльний код


116


1111 1100 0000 0000


LSL


117


1100 0000 0110 1110


JNC 110


118


0001 0000 0110 1011


LOAD 363


119


0111 0000 0000 0000


NOT


120


0010 0001 0110 1000


ADD 360


121


0100 0001 0111 1010


AND 378


122


0000 0000 0110 1011


STORE 363


123


0000 0001 0110 1110


LOAD 366


Переведення числа в доповняльний код


124


1111 1100 0000 0000


LSL


125


1100 0000 0111 0110


JNC 118


126


0000 0000 0110 1100


LOAD 364


127


0111 0000 0000 0000


NOT


128


0010 0001 0110 1000


ADD 360


129


0100 0001 0111 1010


AND 378


130


0001 0001 0110 1100


STORE 364


131


0001 0001 0110 1011


LOAD 363


Зсув мантиси до старших розрядів


132


1111 1100 0000 0000


LSL


133


0001 0001 0110 1011


STORE 363


134


0000 0001 0111 1101


LOAD 375


135


0011 0001 0110 1000


SUB 360


136


0001 0001 0111 1101


STORE 375


137


1000 0000 1000 0011


JNZ 131


138


0000 0001 0110 1100


LOAD 364


Зсув мантиси до старших розрядів


139


1111 1100 0000 0000


LSL


140


0001 0001 0110 1100


STORE 364


141


0000 0001 0111 1110


LOAD 376


142


0011 0001 0110 1000


SUB 360


143


0001 0001 0111 1110


STORE 376


144


1000 0000 1000 1010


JNZ 138


145


0001 0001 0110 1011


LOAD 363


Обєднання знаку і мантиси в одне число 1-го числа


146


0010 0001 0110 1101


ADD 365


147


0001 0001 0111 0001


STORE 369


148


0000 0001 0110 1100


LOAD 364


Обєднання знаку і мантиси в одне число 2-го числа


149


0010 0001 0110 1110


ADD 366


150


0001 0001 0111 0010


STORE 370


151


0000 0001 0111 0001


LOAD 369


Додавання мантис двох чисел


152


0000 0001 0111 0001


ADD 370


153


1011 0000 1001 1100


JM 156


Збереження результату при додатньому результаті


154


1111 1100 0000 0000


LSL


155


0001 0001 0111 1100


STORE 380


156


1111 1100 0000 0000


LSL


Збереження результату при відємному результаті


157


0010 0001 0111 1011


ADD 379


158


0111 0000 0000 0000


NOT


Переведення відємного результату в прямий код


159


0100 0001 1000 0001


AND 385


160


0010 0001 1000 0110


ADD 390


161


0010 0001 0110 0000


ADD 352


162


0001 0001 0111 1100


STORE 380


163


0000 0001 0110 0010


LOAD 354


Збереження порядку результату


164


1111 0010 0000 0000


LSR


165


1111 0010 0000 0000


LSR


166


0001 0001 0111 1111


STORE 383


167


0000 0001 0110 0011


LOAD 355


Збереження знаку порядку результату


168


0001 0001 1000 0000


STORE 384


169


0000 0001 0111 1100


LOAD 380


Перевірка денормалізації в право і корекція результату


170


0100 0001 1000 0001


AND 385


171


1111 1100 0000 0000


LSL


172


1111 1100 0000 0000


LSL


173


1111 1100 0000 0000


RCL


174


1101 0000 1011 0110


JC 182


175


1111 1100 0000 0000


RCL


176


1101 0000 1011 0110


JC 182


177


0000 0001 0111 1111


LOAD 383


178


0010 0001 0110 1000


ADD 360


179


0001 0001 0111 1111


STORE 383


180


0000 0001 0111 1101


LOAD 381


181


1110 0000 1010 1001


JMP 169


182


1111 1110 0000 0000


RCR


183


0001 0001 0111 1101


STORE 381


184


0000 0001 0111 1101


LOAD 381


Збереження мантиси результату


185


1111 0010 0000 0000


LSR


186


0001 0001 0111 1101


STORE 381


187


0000 0001 1000 0010


LOAD 386


188


0011 0001 0110 1000


SUB 360


189


0001 0001 1000 0010


STORE 386


190


1000 0000 1011 1000


JNZ 184


191


0000 0001 0111 1100


LOAD 380


Збереження знаку мантиси результату


192


0100 0001 0110 0000


AND 352


193


1111 0010 0000 0000


LSR


194


1111 0010 0000 0000


LSR


195


0001 0001 0111 1110


STORE 382


196


0000 0001 0111 1101


LOAD 381


Формування результату


197


0010 0001 0111 1110


ADD 382


198


0010 0001 0111 1111


ADD 383


199


0010 0001 1000 0000


ADD 384


200


0001 0001 1000 0011


STORE 387


201


0111 1100 0000 0000


HALT


Завершення програми



Висновки


На даній лабораторній роботі - ознайомився з поданням чисел у нормальній формі. Засвоїв порядок нормалізації чисел з рухомою комою. Ознайомився з поняттям “характеристика” для чисел з рухомою комою.


-вивчив правила додавання (віднімання) двійкових чисел з рухомою комою.


-розробив алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'.ютера - симулятора DeComp.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Дослідження виконання арифметичних операцій у форматі з рухомою комою

Слов:5817
Символов:51725
Размер:101.03 Кб.