Курсовая работа: Реалізація функцій ABS(X), [X], {x}
3. Від порядку відняти 127 – це дорівнює Х.
4. Зсунути мантису на Х вправо – це і буде ціле число.
в) Функція [Х]
1. Перетворити дійсне число в ціле
2. Результат знову перетворити в дійсне
г) Функція |X|
1. Поставити в 0 знак мантиси дробового числа
д) Функція {X}
1. Виділити цілу і дробову частину (аналогічно як при переведенні дійсного в ціле) і відкинути цілу.
2. Взяти порядок рівний 127.
3. Зсувати мантису вліво поки старший біт рівний 1 не вийде за межі мантиси.
4. Зменшити порядок на кількість зсувів.
5. Записати результат у відповідний формат.
5. Реалізація програми
Програма написана на мові ASM-86 з використанням команд сопроцесора та команд процесора 286/386. Вона складається з функцій, які мають цілі вхідні та вихідні дані в регістрі AX, а дробові дані – за адресою DS:SI та ES:DI. Для роботи необхідно записати у відповідні регістри дані або їх адреси, викликати функції і прочитати результат з вказаного місця.
Програма компілюється Turbo Assembler, зв’язується за допомогою TLINK.
6. Системні вимоги
- Математичний сопроцесор (для демонстрації)
- Мікропроцесор Intel 80386 або старший.
- Для перегляду результатів – Turbo Debugger або інший відлагоджувач.
7. Інструкція для користувача
Програма для роботи з числами містить 5 функцій. Розглянемо приклади їх викликів.
Необхідно описати такі дані:
r dd 0 ;дійсне число
I dw 0 ;ціле число
а) перетворення цілого в дійсне:
mov ax,word ptr [I]
mov di,seg r
mov es,di
mov di,offset r
call WORD_TO_REAL
б) перетворення дійсного в ціле
mov ax,word ptr [I]