Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Проверка дискриминанта через ассемблер (http://www.tehnari.ru/f41/t60470/)

Inguldima 29.11.2011 01:42

Проверка дискриминанта через ассемблер
 
Нужно в С++ через ассемблер решить квадратное уравнение с плавающей точкой.
Я решил только вот немогу проверить дискриминант на отрицательность....
Нужна ваша помощ
вот код моей программы
#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;

}


Часовой пояс GMT +4, время: 23:42.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.