Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
.686
.xmm
.model flat,stdcall
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
 
.const
db 11
g_a REAL8 2.0
g_b REAL8 4.0
g_c REAL8 -6.0
g_4 REAL8 4.0
g_noRoots db "Has not roots",0
 
.data?
x1 REAL8 ?
x2 REAL8 ?
 
.code
start:
        movq XMM1, g_4
        movq XMM6, g_a
        mulsd XMM1, XMM6
        mulsd XMM1, g_c
        movq XMM7, g_b
        movq XMM2, XMM7
        mulsd XMM2, XMM2
        subsd XMM2, XMM1    ;XMM2 = b * b - 4 * a * c;
        xorpd XMM0, XMM0
        comisd XMM0, XMM2
        jz oneRoot            ;XMM2 == 0 ?
        jnc noRoots            ;XMM2 < 0 ?
 
        subsd XMM0, XMM7
        movq XMM1, XMM0
        sqrtsd XMM2, XMM2
        subsd XMM0, XMM2
        addsd XMM1, XMM2
        addsd XMM6, XMM6
        divsd XMM0, XMM6
        divsd XMM1, XMM6
        movq x1, XMM0        ;x1 = (-b - sqrt(XMM2)) / (2 * a);
        movq x2, XMM1        ;x2 = (-b + sqrt(XMM2)) / (2 * a);
        jmp _ret
 
oneRoot:
        subsd XMM0, XMM7
        addsd XMM6, XMM6
        divsd XMM0, XMM6
        movlpd x1, XMM0        ;x1 = (0 - b) / (2 * a);
        jmp _ret
 
noRoots:
        invoke MessageBoxA, 0, OFFSET g_noRoots, 0, 0
_ret:
        invoke ExitProcess, 0
END start

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 17:18 08-06-2014 | Исправлено: ne_viens, 17:18 08-06-2014
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru