• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Проверка дискриминанта через ассемблер

Inguldima

Ученик
Регистрация
29 Ноя 2011
Сообщения
1
Реакции
0
Баллы
0
Проверка дискриминанта через ассемблер

Нужно в С++ через ассемблер решить квадратное уравнение с плавающей точкой.
Я решил только вот немогу проверить дискриминант на отрицательность....
Нужна ваша помощ
вот код моей программы
#include <iostream.h>
#include <conio.h>
void main()
{
float a=1.0;
float b=5.0;
float c=6.0;
float d=0.0;
float p=4.0,aa=2.0,x1=0.0,x2=0.0;


__asm
{

fld b
fmul b
fstp b // Haxo)I(deHue b^2
fld a
fld c
fmul
fstp c //a*c
fld c
fld p
fmul
fstp c //4*a*c
fld c
fld b
fsubr
fstp d //b^2-4*a*c


fld d
fsqrt
fstp d //sqr(d)
//x1:
fld b
fchs
fstp b //-(b^2)
fld d
fld b
fsubr //-(b^2)-sqr(d)
fstp c
fld c
fld a
fdiv //(-(b^2)-sqr(d))/a
fstp c
fld c
fld aa
fdiv //(-(b^2)-sqr(d))/(2*a)
fstp x1
//x2:
fld d
fld b
fadd //-(b^2)-sqr(d)
fstp c
fld c
fld a
fdiv //(-(b^2)-sqr(d))/a
fstp c
fld c
fld aa
fdiv //(-(b^2)-sqr(d))/(2*a)
fstp x2

}
cout<<x1<<" "<<x2;

}
 
Назад
Сверху