- •1 Аналіз індивідуального завдання
- •2 Загальна структура проекту
- •3 Розробка меню програми
- •4 Панель інструментів та рядок стану
- •4.1 Створення панелі інструментів
- •4.2 Рядок стану
- •5 Створення діалогових вікон
- •5.1 Етапи розробки діалогових вікон
- •5.2 Створення діалогу
- •6 Реалізація математичної функції мовою assembler
- •7 Створення та підключення бібліотеки dll
- •8 Основні операції над файлами
- •8.1 Відкриття файлу
- •8.2 Збереження файлу
- •8.3 Видалення файлу
- •9 Виведення результатів обчислень
- •9.1 Числове виведення результату
- •9.2 Графічне виведення результату
- •10 Керівництво системного програміста
- •11 Керівництво оператора
- •Висновки
- •Перелік посилань
- •Додаток а
- •Додаток б
Додаток б
Лістинг динамічної бібліотеки DLL
#include <windows.h>
extern "C" __declspec(dllexport) float Calc(float X){
float Y(0);
float A(0), B(12), C(24), D(10), E(3), F(30), G(1), H(2), K(0);
_asm { Finit
Fld C; //ST(3)
Fld B; //ST(2)
Fld A; //ST(1)
Fld X; //ST(0)
Fcomi ST(0), ST(1)
jbe REZ_I;
Fcomi ST(0), ST(2)
je REZ_II;
Fcomi ST(0), ST(3)
je REZ_III;
jmp EXIT
REZ_I:
Finit;
Fld K;//ST(3) = 0
Fld E;//ST(3) = 3
Fld D;//ST(2) = 10
Fld X;//ST(1)
Fld Y;//ST(0)
Fadd ST(0), ST(3)
Fadd ST(0), ST(1)
Fxch ST(4)
Fadd ST(0), ST(2)
Fmul ST(0), ST(1)
Fdiv ST(0), ST(4)
Fst Y;
jmp EXIT
REZ_II:
Finit;
Fld K;//ST(3) = 0
Fld G;//ST(3) = 1
Fld F;//ST(2) = 30
Fld X;//ST(1)
Fld Y;//ST(0)
Fadd ST(0), ST(3)
Fsub ST(0), ST(1)
Fxch ST(4)
Fadd ST(0), ST(1)
Fmul ST(0), ST(1)
Fmul ST(0), ST(1)
Fmul ST(0), ST(2)
Fdiv ST(0), ST(4)
Fst Y;
jmp EXIT
REZ_III:
Finit;
Fld H;//ST(1)
Fld Y;//ST(0)
Fadd ST(0), ST(1)
Fst Y;
jmp EXIT
EXIT:
} return Y; }
