Розробка алгоритму роботи програми, її загальна характеристика та функціональні особливості, умови ефективного використання. Способи виклику та адреса завантаження, відомості про використання оперативної пам"яті. Посібник системного програміста.
При низкой оригинальности работы "Розроблення алгоритму і програми а NASM асемблері для додавання / множення чисел з плаваючою крапкою", Вы можете повысить уникальность этой работы до 80-100%
Число з плаваючою крапкою - форма представлення дійсних чисел, в якій число зберігається у формі мантиси і показника степеня. Число вважається записаним в стандартному (нормалізованому) вигляді, якщо воно записане у вигляді, де, зване мантисою, таке, що, - ціле, називається показником ступеня та - ціле, основу системи числення (на письмі це зазвичай 10). Це означає, що записане число в 105 разів більше числа 1,528535047, тобто для отримання потрібного числа кома зсувається на 5 розрядів вправо. Додавання у прямому коді виконується тільки над числами одного знаку. Потім знак результату, який зберігається на прапорі Т, переносимо на прапор З Виконуючи зрушення вправо регістра порядку РА, вводимо знак числа в розряд 7 регістра РА Передачу молодшого біта порядку в старший розряд мантиси виконуємо за два кроки: спочатку з розряду Про регістра РВ в Т потім з Т в розряд 7 регістра місце старшого розряду мантиси.В ході виконання завдання курсової роботи мною було розроблено проект програми на NASM асемблер для множення / додавання чисел з плаваючою крапкою.Лістинг програми NASM асемблер model small code 386 start: mov ax,@data mov ds, ax mov es, ax main_loop: mov ax, 3; Очищаємо екран int 10h mov ah, 9 mov dx, offset string0 int 21h mov ah, 0 int 16h cmp al, "1" je a2 cmp al, "2" je a1 cmp ah, 1 jne main_loop exit: mov ah, 4Ch int 21h a0: mov ax, 3; int 10h mov ah, 9 mov dx, offset string1 int 21h mov string2 30,"A" mov di, offset A; завантажили число А fild B; завантажили число В fadd st(1), st; додамо А і В fst С; результат додавання в змінну С mov di, offset string5 fldz; загрузили в FPU ноль db 0DFH, 0F1h; fcomip st, st(1); порівняння числа з нулем jnz a3 mov byte ptr [di], "0"; Якщо ціла частина рівна 0 inc edi jmp b01 a3: fstcw control; Заокруглюємо до нуля or control, 0C00h fldcw control fld st; дублюємо вміст st(0) в st(1) frndint; int 10h mov ah, 9 mov dx, offset string1 int 21h mov string2 30,"A" mov string3 33,"A" mov di, offset A; завантажили число А fild B; завантажили число В fmul st(1), st; множимо А і В fst С; результат додавання в змінну С mov di, offset string5 fldz; загрузили в FPU ноль db 0DFH, 0F1h; fcomip st, st(1); порівняння числа з нулем jnz a3 mov byte ptr [di], "0"; Якщо ціла частина рівна 0 inc edi jmp b01 a3: fstcw control; Заокруглюємо до нуля or control, 0C00h fldcw control fld st; дублюємо вміст st(0) в st(1) frndint;
Вывод
В ході виконання завдання курсової роботи мною було розроблено проект програми на NASM асемблер для множення / додавання чисел з плаваючою крапкою.
Під час розробки і реалізації алгоритму задачі, мною було вивчено особливості роботи з мовою низького програмування асемблер, застосовано на практиці, отримані знання з лекційного курсу.
Програма повноцінно працює при будь-яких вхідних даних і може бути впроваджена у виробництво і застосовуватись кінцевими користувачами для заощадження сил і часу па проведення вище вказаних операцій над числами з плаваючою крапкою.
Список литературы
1. Аблязов Р.З. Программирование на ассемблера на платформе x86-64. - М.: ДМК Пресс, 2011. - 304 с.
2. Голубь Н.Г. Исскуство программирования на ассемблере. Лекции и упражнения. - 2-е изд., испр. и доп., - СПБ.: ДИАСОФТ, 2002. - 656 с.: ил.
3. Зубков С.В. Assembler для DOS, Windows и Unix. - 2 изд., испр. и доп., - М: ДМК, 2000. - 608 с.: ил.
4. Кип Р. Ирвин. Язык ассемблера для процесоров Intel. - 4-е изд., Пер. с англ. - М.: Издательский дом «Вильямс», 2005. - 912 с.: ил.