Лабораторная работа: Дослідження виконання арифметичних операцій у форматі з рухомою комою
· переповнення розрядної сітки (порушення нормалізації вліво);
· наявність порушення нормалізації вправо;
· від'ємний результат
Передбачити відповідні заходи з корекції результату.
Блок-схема написаної програми
Попередньо в такі комірки заношу такі дані:
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 | Додавання одиниці для переведення мантиси |
Код програми: