Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 00:21   #1
Inguldima
Новичок
Джуниор
 
Регистрация: 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.
Inguldima вне форума Ответить с цитированием
Старый 29.11.2011, 10:05   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Чтобы не мучиться с fcomp или fxam и флагами, определить отрицательное число можно так:
Код:
mov ax,0x8000	//единица в старшем бите числа означает что оно отрицательное (справедливо и для float)
  lea bx,d
  test [bx+2],ax
  jnz otric
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка наличия интернета через прокси сервер. 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