Міністерство освіти та науки України
Кіровоградський Державний Технічний університетКафедра програмного забезпечення
Курсова робота
з дисципліни “Програмування на мові ASM-86” на тему:
Реалізація функцій ABS(X), [X], {x}
ЗМІСТ
1. Вступ
2. Постановка задачі
3. Обґрунтування вибору методів розв’язку задачі
4. Алгоритм програми.
5. Реалізація програми
6. Системні вимоги
7. Інструкція для користувача
8. Висновки
9. Використана література
Додаток. Лістинг програми
1. Вступ
У процесі роботи з комп’ютером виникає необхідність роботи з різними видами даних. Так, наприклад, мови високого рівня можуть працювати з цілими, дробовими числами, символами, рядками і т.д. Програмуючи на мові асемблера, найчастіше маємо справу з цілими числами. Стандартні розміри чисел такі: 8-розрядні (байти), 16-розрядні (слова), 32-розрядні (подвійні слова). У пам’яті вони записуються послідовно, починаючи з молодшого байта.
Також в асемблері є можливість роботи з дробовими числами. Для роботи з ними використовується математичний сопроцесор або його емулятор (він входить до складу основного процесора починаючи з 486DX). Цей сопроцесор оперує з цілими числами та з числами з плаваючою комою. Використовуються 32-, 64- та 80-розрядні формати запису чисел. Наприклад, формат 32-бітного дробового числа має такий формат (тип float в С, REAL в PASCAL):
Найстарший біт – знак мантиси (0- “+”, 1- “-“).
Далі – 8 розрядів порядку, до якого додано 127.
Потім – 23-розрядна мантиса.
Отже, з цими числами можуть робити різні операції як сопроцесор, так і основний процесор.
2. Постановка задачі
Необхідно створити програму, яка б перетворювала ціле число в дробове і навпаки, а також функції [x], {x}, |X|.
3. Обґрунтування вибору методів розв’язку задачі
У зв’язку з тим, що не на кожній машині присутній сопроцесор, то програма буде оперувати з 32-розрядними числами з плаваючою комою, які розташовані у простій пам’яті. Вони матимуть стандартний запис, і тому з ними може проводити роботу і сопроцесор, і програми, які його замінюють.
Робота буде полягати в конвертуванні бітів у числах і деяких обчисленнях. Для цього використовуються команди мови асемблер передачі інформації, обчислень, зсувів та логіки. Також, для демонстрації роботи програми використовується завантаження даних в регістри сопроцесора (fld, fst).
4. Алгоритм програми
а) Алгоритм перетворення цілого числа в дійсне
1. Обчислити знак числа, якщо число від’ємне – обернути його.
2. Записати число без знака у вигляді мантиси.
3. Взяти початкове значення порядку – 127.
4. Зсувати мантису вліво до тих пір, поки старший біт не стане рівним 1. Зсунути ще раз (старший біт мантиси ігнорується). Збільшити порядок на кількість зсувів.
5. Скомбінувати отримані знак, мантису і порядок у відповідності з форматом.
б) Алгоритм переведення числа з дійсного в ціле
1. Визначити знак дійсного числа.
2. Визначити мантису і порядок
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]
mov si,seg r
mov ds,si
mov si,offset r
call REAL_TO_WORD
в) визначення [X]
mov si,seg r
mov ds,si
mov si,offset r
call REAL_TRUNC
г) визначення {X}
mov si,seg r
mov ds,si
mov si,offset r
call REAL_REAL
д) визначення {X}
mov si,seg r
mov ds,si
mov si,offset r
call REAL_ABS
... нарешті, останній крок розробки модуля означає завершення перевірки модуля (за допомогою компілятора) і перехід до процесу налагодження модуля. 3. Атестація програмних засобів Завершальним етапом розробки ПЗ є атестація, що підводить підсумок усій розробці. Атестація - це авторитетне підтвердження якості ПЗ. Звичайно для атестації ПЗ створюється атестаційна комісія з експертів, представник ...
... При цьому враховане, що при завершенні формування вектора показання лічильника перевищують на одиницю реальну розмірність. Це враховано при виводі вектора на відображення (блок№33) і при обчисленні функції (блок№37). БАЗОВА ПРОГРАМА РЕАЛІЗАЦІЇ АЛГОРИТМУ Program Generalna; {Программа формирования квадратной матрицы по выражению для A[i,j], вектора Х по транспонированной матрице и вычисления ...
... ібності для нормального розподілу . Тоді . Звідси, Тут,. Тому статистика критерію матиме вигляд: . У наступному розділі ми більш детально розглянемо застосування критерію відношення правдоподібності для великих вибірок до перевірки статистичних гіпотез. 3. Приклади застосування критерію відношення правдоподібності для великих вибірок Розглянемо декілька прикладів на ...
... риски; - способи управління ризиком; - оцінка вартості і економії при прийнятті певних способів управління ризиком; - рекомендації по ухваленню рішень. Отже класифікаційні суспільства грають важливу роль в забезпеченні безпеки судноплавства проводячи найважливішу роботу по систематизації і аналізу аварійності з метою впровадження на практиці сучасних рішень, отриманих на основі цих досліджень. ...
0 комментариев