розширеною точністю (відповідає типам real * 10 і більше в мові Фортран і long double в С)
Кількість в поданні з простою точністю займає 32 двійкових розряди: 23 розряду займає мантиса і 8 розрядів відведено для порядку. Старший розряд є знаковим.
Числа з плаваючою точкою зберігаються в нормалізованому вигляді:
? У нормалізованому формі точка розташована перед першої значущої, тобто, відмінною від нуля цифрою мантиси.
? Старший біт мантиси завжди дорівнює одиниці, він явно не вказується, а вільна позиція відводиться під знак мантиси. Таким чином при фіксованій кількості розрядів можна записати найбільшу кількість значущих цифр і забезпечити найбільшу точність представлення дійсного числа.
Мантиса нормалізованого числа, якщо вона не дорівнює нулю, належить діапазону [0.5, 1), у загальному випадку:
Порядок задається у форматі з надлишком (зміщенням) - істинне значення порядку збільшується на 127, сума завжди позитивна. Фактичне значення порядку знаходиться в проміжку від - 126 до +127. Підставою є 2.
Молодший біт мантиси у форматі з простою точністю представляє значення 2-24 (приблизно 10-7), що відповідає 7 значущим цифрам десяткового подання.
Значущі цифри числа допускають точне уявлення. Наступні значення мають однакове (рівне чотирьом) число значущих цифр: 3.142, 0.003142, 3.142е3.
У форматі з простою точністю не має сенсу зберігати значення, що містять більше 8 десяткових розрядів мантиси. Мінімальне значення порядку - 126 визначає мінімальне по модулю, відмінне від нуля, машинне число (близько 1.17х10-38). Максимальне значення порядку становить 127, що приблизно відповідає значенню 1.70х1038.
Кількість в поданні з подвійною точністю займає 64 двійкових розряди, з яких 52 розряду відводяться мантисі і 11 розрядів порядку.
Для чисел з подвійною точністю в десятковій системі діапазон значень становить 2.22х10-308 до 1.79х10308
Кількість значущих цифр і межі зміни в цьому випадку більше, ніж у форматі з простою точністю (до 16 значущих цифр).
Розширений формат використовується для підвищення точності проміжних результатів обчислень. Діапазон значень від 3.4х10-4932 до 1.2х104932.
Розглянемо отримані знання на прикладі числа, заданого в моєму варіанті курсового проекту:
C1 70 FD A4
1100000111100001111110110100100
Де 1 в старшому розряді (варто пам'ятати, що старший розряд тут A4, т. е. з кінця) - знак числа, в нашому випадку, як видно, негативний.
Наступні 8 розрядів - це зміщений порядок (01001001), т. е. в нашому випадку це +4916 і 7310. Тепер, що б знайти знак числа і модуль порядку, потрібно відняти з цього числа порядок зміщення p128. У 16-річної системі це 4916-8016. Очевидно, що порядок негативний, тому, як і буде п?? оісходіть в моїй програмі, робимо навпаки: 8016-4916=+3716. Це і є модуль порядку. Тепер необхідно повернути мантисі 1 в старший розряд (так званий неявний біт). Але т. К. Вона була і так, то нічого не змінюється, і мантиса залишається FD 70 C1 (в пам'яті мантиса буде виглядати навпаки, т. К., За умовою завдання, старший байт числа записується в старшому адресу).
. Практична частина. Блок-схема
Підпрограма виводу службових слів та отриманих даних.
. 1 Розподіл пам'яті і лістинг програми з коментарем
АдресДанниеАссемблерний кодКомментарій400011LXI D, 6000hЗагрузка в пару регістрів D, E адреси, за якою буде збережений знак чісла.400100400260400321LXI H, 5003hЗагрузка в пару регістрів H, L адреси, за якою буде завантажений старший байт чісла.40040340055040067EMOV A , MЗагрузка старшого байта в аккумулятор.400717RALСмещеніе числа на 1 крок вліво, в CY з'являється знак чісла.4008DAJC 4011hПроверка знака числа. Якщо знак 1 - перехід за адресою 4011h.400911400A40400B3EMVI A, 00Загрузка 00 в акумулятор. Число положітельное.400C00400D12STAX DЗапісь знака числа з акумулятора за адресою в D, E.400EC3JMP 4014hПрижок на 4014h.400F1440104040113EMVI A, 01Загрузка 01 в акумулятор. Число отріцательное.401201401312STAX DЗапісь за адресою в D, E.401413INX DУвелічіть адресу в D, E на 1. Тепер 6001h.401521LXI H, 5002hЗапісь в пару регістрів H, L адреси, за якою буде завантажено чісло.40160240175040187EMOV A, MЗапісать число з 5002h в аккумулятор.401917RALСдвіг числа вліво. Тепер в CY знаходиться бракуючий біт зміщеного порядка.401A23INX HУвелічіть адресу в H, L на 1. Тепер 5003h.401B7EMOV A, MПеренесті за адресою з H, L чісло.401C17RALСдвіг вліво на 1 б...