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