![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Реалізація функцій ABS(X), [X], {x} |
Міністерство освіти та науки України Кіровоградський Державний Технічний університет Кафедра програмного забезпеченняКурсова робота з дисципліни “Програмування на мові ASM-86” на тему: “Реалізація функцій ABS (X), , {x} Зміст1. Вступ 2. Постановка задачі 3. Обґрунтування вибору методів розв’язку задачі 4. Алгоритм програми 5. Реалізація програми 6. Системні вимоги 7. Інструкція для користувача 8. Висновки 9. Використана література Додаток. Лістинг програми 1. ВступУ процесі роботи з комп’ютером виникає необхідність роботи з різними видами даних. Так, наприклад, мови високого рівня можуть працювати з цілими, дробовими числами, символами, рядками і т.д. Програмуючи на мові асемблера, найчастіше маємо справу з цілими числами. Стандартні розміри чисел такі: 8-розрядні (байти), 16-розрядні (слова), 32-розрядні (подвійні слова). У пам’яті вони записуються послідовно, починаючи з молодшого байта. Також в асемблері є можливість роботи з дробовими числами. Для роботи з ними використовується математичний сопроцесор або його емулятор (він входить до складу основного процесора починаючи з 486DX). Цей сопроцесор оперує з цілими числами та з числами з плаваючою комою. Використовуються 32-, 64 - та 80-розрядні формати запису чисел. Наприклад, формат 32-бітного дробового числа має такий формат (тип floa в С, REAL в PASCAL): Найстарший біт - знак мантиси (0 - “ &quo ;, 1 - “-“). Далі - 8 розрядів порядку, до якого додано 127. Потім - 23-розрядна мантиса. Отже, з цими числами можуть робити різні операції як сопроцесор, так і основний процесор. 2. Постановка задачіНеобхідно створити програму, яка б перетворювала ціле число в дробове і навпаки, а також функції , {x}, X . 3. Обґрунтування вибору методів розв’язку задачіУ зв’язку з тим, що не на кожній машині присутній сопроцесор, то програма буде оперувати з 32-розрядними числами з плаваючою комою, які розташовані у простій пам’яті. Вони матимуть стандартний запис, і тому з ними може проводити роботу і сопроцесор, і програми, які його замінюють. Робота буде полягати в конвертуванні бітів у числах і деяких обчисленнях. Для цього використовуються команди мови асемблер передачі інформації, обчислень, зсувів та логіки. Також, для демонстрації роботи програми використовується завантаження даних в регістри сопроцесора (fld, fs ). 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. Для роботи необхідно записати у відповідні регістри дані або їх адреси, викликати функції і прочитати результат з вказаного місця. Програма компілюється urbo Assembler, зв’язується за допомогою LI K. 6. Системні вимогиМатематичний сопроцесор (для демонстрації) Мікропроцесор I el 80386 або старший. Для перегляду результатів - urbo Debugger або інший відлагоджувач. 7. Інструкція для користувачаПрограма для роботи з числами містить 5 функцій. Розглянемо приклади їх викликів. Необхідно описати такі дані:rdd0; дійсне число Idw0; ціле число а) перетворення цілого в дійсне: mov ax,word p r mov di,seg r mov es,di mov di,offse r call WORD O REAL б) перетворення дійсного в ціле mov ax,word p r mov si,seg r mov ds,si mov si,offse r call REAL O WORD в) визначення mov si,seg r mov ds,si mov si,offse r call REAL RU C г) визначення {X} mov si,seg r mov ds,si mov si,offse r call REAL REAL д) визначення {X} mov si,seg r mov ds,si mov si,offse r call REAL ABS 8. ВисновкиОтже, є розробленою програма, яка виконує операції з дробовими та цілими числами - конвертування, {X} X . Був розглянутий формат дійсних чисел, і наведені алгоритми розв’язку. 9. Використана література Ровдо А.А. Микропроцессоры от 8086 до Pe ium III Xeo и AMD-K6-3.М., ДМК, 2000. Додаток. Лістинг програми. model small . s ack 100 .486 . da a f dd 0 . code s ar : jmp begi ; - ; обчислення функцiї ABS (x) - DS: SI - REAL REAL ABS proc push bx mov bh,by e p r ds: ,bh pop bx re REAL ABS e dp ; - ; конвертор REAL в DS: SI в WORD (AX) REAL O WORD proc jmp s ar proc x dw 0; тимчасовий параметр AX s ar proc: pusha ; 1) видiлити окремо знак, порядок i мантису ; bh - знак, bl - порядок, ax - мантиса mov bh,by e p r ds: a d bh,80h; видiлили знак mov bl,by e p r ds: shr ah,7 or bl,ah; видiлили порядок mov ah,by e p r ds: shl ax,1; видiлили мантису cmp bl,127; перевiрка на нуль jb res zero sub bl,127 mov cl,15 sub cl,bl; cl-кiлькiсть зсувiв вправо мантиси s c; старший розряд завжди 1 rcr ax,1 shr ax,cl mov word p r cs: ,ax;. i отримаємо результат! cmp bh,0; враховуємо знак je res ok eg ax mov word p r cs: ,0 res ok: popa mov ax,word p r cs: re REAL O WORD e dp ; - ; конвертор 16-бiтного слова в AX в коротке дiйсне es: di (4 байта) WORD O REAL proc pusha ; нуль? cmp ax,0 j e o zero mov dword p r es: ,0 popa re o zero: push di ; 1) якщо d15=1 - bh=80h (знак), iнакше bh=0 xor bh,bh es ax,8000h jz plus eg ax mov bh,80h plus: ; 2) зсунути AX влiво так, щоб старша одиниця була в CF.
; пiдрахувати кiлькiсть зсувiв xor di,di mov cx,16 shif : i c di shl ax,1 jc s op shif loop shif s op shif : ; 3) обчислити порядок: bl=127 16-di mov cx,di mov bl,127 16 sub bl,cl pop di ; отже, маємо: bh-знак,bl-порядок,ax-мантиса ; ставимо найстарший байт (3) в 0 mov by e p r es: ,0 ; ставимо молодший байт: знак 7 старших бiтiв порядку mov dl,bh push bx shr bl,1 or dl,bl pop bx mov by e p r es: ,dl ; ставимо 1-й байт: останнiй байт порядку i 7 ст байт мантиси a d bl,1 shl bl,7 shr ax,1 or bl,ah mov by e p r es: ,bl ; ставимо 2-й байт: молодшi 8 байт мантиси mov by e p r es: ,al popa re WORD O REAL e dp ; - ; обчислення функцiї - DS: SI - REAL REAL RU C proc push ax call REAL O WORD call WORD O REAL pop ax re REAL RU C e dp ; - ; обчислення функцiї {X} - DS: SI - REAL REAL REAL proc push eax push edx push bx push cx ; в EDX записати у зворотньому порядку число mov dh,by e p r ds: xor bh,bh mov bl,dh shl bl,1 adc bh,0 shl bh,7 mov dl,by e p r ds: mov ah,dl a d ah,80h shr ah,7 or bl,ah; в BH - знак, в BL - порядок, в EDX - число shl edx,16 mov dh,by e p r ds: cmp bl,127 jb s op r; це вже число &l ;0! shl edx,9; прибрати все зайве (знак i порядок) sub bl,127; кiлькiсть зсувiв (бiтiв з цiлою частиною) mov cl,bl shl edx,cl; вiдкинути цiлу частину ; зараз в EDX - дробова частина ; тепер обчислюємо порядок mov bl,127 shif l: dec bl shl edx,1 j c shif l; отже, тепер порядок в bl, а в edx готова мантиса ; тепер зсунути EDX вправо на 9 shr edx,9 xor eax,eax mov al,bh shl eax,1 or al,bl shl eax,23 or edx,eax; i комбiнуємо! ; тепер записати в пам`ять mov by e p r ds: ,dh shr edx,16 mov by e p r ds: ,dh s op r:; вихiд pop cx pop bx pop edx pop eax re REAL REAL e dp ; - begi : mov ax,@da a mov es,ax mov ds,ax mov di,offse f mov si,offse f ; mov ax,-32768 ; call WORD O REAL ; fs dword p r es: ; call REAL O WORD call REAL REAL fld dword p r es: mov ah,4ch i 21h e d s ar
Жнки, як мають дтей вком вд трьох до чотирнадцяти рокв або дитину-нвалда, можуть залучатись до надурочних робт лише за х згодою (стаття 177). Залучення нвалдв до надурочних робт можливе лише за х згодою за умови, що це не суперечить медичним рекомендацям (стаття 172). Стаття 64 Необхднсть одержання дозволу виборного органу первинно профсплково органзац (профсплкового представника) пдпримства, установи, органзац для проведення надурочних робт Надурочн роботи можуть провадитися лише з дозволу виборного органу первинно профсплково органзац (профсплкового представника) пдпримства, установи, органзац. Стаття 65 Граничн норми застосування надурочних робт (Дю статт 65 припинено Постановою Верховно Ради УРСР вд 4 липня 1991 року (ВВР 1991, N 36, ст.474) на перод реалзац Програми надзвичайних заходв щодо стаблзац економки Украни та виходу з кризового стану (1991 рк перше пврччя 1993 року)Надурочн роботи не повинн перевищувати для кожного працвника чотирьох годин протягом двох днв пдряд 120 годин на рк
1. Дослідження графіку функції y=cos(x)*ln(x)
2. Шляхи вдосконалення реалізації соціальної функції держави
3. Реалізація контрольної функції з використанням концепції контролінгу
4. Аналіз випуску готової продукції та її реалізації
5. Механізм реалізації форфейтингу
9. Облік реалізації продукції (робіт, послуг) та розрахунків з покупцями та замовниками
10. Практична реалізація електронного документообігу на прикладі конкретної організації
11. Договір позики (проблеми правової реалізації)
12. Застосування права як особлива форма його реалізації
13. Проблеми реалізації норм права
15. Реалізація права на житло шляхом будівництва
16. Теорія розподілу влади на законодавчу, виконавчу і судову та її реалізація в Україні
17. Роль ведучого в реалізації авторського задуму на Запорізькому телебаченні
18. Реалізація категорії ретроспекції в сучасних газетних текстах
19. Програмна реалізація криптографічного алгоритму RC5
20. Проектування web-додатку для обліку поставки та реалізації товарів
25. Економічний інтерес та шляхи його реалізації в рекламній діяльності
26. Розробка і реалізація стратегії виходу підприємства на зовнішній ринок
28. Оперативно-тактичні плани та бюджети як інструменти реалізації стратегічних планів і програм
29. Соціальні гарантії безробітним та практика їх реалізації
30. Головні напрямки реалізації завдань реформування освіти
31. Реалізація принципу наступності у процесі опанування учнями основ образотворчої грамоти
32. Трудова поведінка як форма реалізації особистих здібностей особистості
33. Бюджетний процес України та етапи його реалізації
34. Способи реалізації інвестиційних проектів
35. Міжнародне співробітництво в реалізації глобальних екологічних проектів
36. Аналіз обсягів виробництва та реалізації продукції на СТОВ "Світанок"
37. Особливості реалізації цілей економічної статистки в Україні
41. Театральные реформы в России конца 1980-x - начала 1990-x годов
42. Указатель "x-y" координат (история создания "мышки")
43. Вычисление интеграла фукции f (x) (методом Симпсона WinWord)
44. Политические интересы молодежи 90-x годов
45. Финансовый анализ рентабельности и ликвидности предприятия на примере ООО "X"
46. Арабские путешественники на Великом шелковом пути (IX-X в.в.)
47. Культурная жизнь в Мавераннахре в IX - X вв
48. Учение о государстве и праве в эпоху раннего средневековья (X —XV вв.)
49. Пропедевтика истории политических учений России X - начала XX вв.
52. Нахождение всех комбинаций расстановки n ферзей на доске n X n
53. Generation X
58. Китай в конце VI - начале X веков
59. Киевская Русь и норманны в X в.
60. Славянские племена на территории России в X в.
61. Внутренний строй Киевского княжества в X в.
62. Русь на рубеже X - XI веков. Войны Владимира Святославича
65. Искусство Византии времени Македонского возрождения (IX-X вв.)
66. Международные отношения Киевской Руси X – нач. XII вв.
67. Развитие экономики Китая в XI-XІІІ веках
68. Русская культура в X–XVII веках
74. Кризове явище функціонування та розвитку організації
75. Організація функціонального управління на підприємстві ДП "Рівнестандартметрологія"
76. Функции белков в организмах живых существ
77. Синапсы (строение, структура, функции)
79. Слуховой анализатор. Строение и функции сердца
80. Налоги: эволюция, определения и формы. Принципы налоговой политики и функции налогов
81. Защитная функция адвокатуры как правовая традиция
83. Парламент Великобритании и его основные характеристики. Функции палат
84. Экономические функции государства. Государственное регулирование экономики
85. Уголовное преследование как функция государства
89. Возникновение и развитие, понятие и признаки права. Понятие правосознания, основные функции, виды
90. Понятие, классификация и содержание основных функций государства
92. Феодальное государство (экономическая основа, сущность, механизм, функции и формы)
93. Структура и функции государственного аппарата
94. Деньги и их функции(MONEY)
95. Культура, её структура и функции
96. Культура, ее функции, субъекты
97. Падежи: второй родительный и предложный. Функции и значения