|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.11.2011, 00:21 | #1 |
Новичок
Джуниор
Регистрация: 29.11.2011
Сообщений: 1
|
Проверка дискриминанта через ассемблер
Нужно в С++ через ассемблер решить квадратное уравнение с плавающей точкой.
Я решил только вот немогу проверить дискриминант на отрицательность.... Нужна ваша помощ вот код моей программы #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; } Последний раз редактировалось Inguldima; 29.11.2011 в 00:43. |
29.11.2011, 10:05 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Чтобы не мучиться с fcomp или fxam и флагами, определить отрицательное число можно так:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка наличия интернета через прокси сервер. | Crunkordie | Общие вопросы Delphi | 0 | 20.07.2011 11:35 |
excel.Проверка VBA и проверка функции | Будда | Помощь студентам | 0 | 14.04.2011 21:10 |
Ассемблер. Лаба по процедурам с передачей параметров через стек | Poprigun777 | Помощь студентам | 0 | 14.03.2011 19:13 |
Связь с кучей dbf файлов (таблиц) через OLEDB через UNION ALL | Sasha811 | SQL, базы данных | 0 | 01.01.2009 14:04 |
Проверка Edit, через val.. | r-tem | Компоненты Delphi | 2 | 13.12.2007 20:19 |