Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ассемблер. Почему сравнение работает некорректно?

dfdfsfsdf sdfdsfdsf Ученик (77), открыт 1 неделю назад
При таком сравнении всегда выводит "value > eps", хоть делаю eps 1000000000 или -1000000000. Что изменить, чтобы работало?

#include <iostream>
using namespace std;

int main() {
double x, fa, fb, fx, eps, ans, c = 111;
double three = 3;
double two = 2;
double zero = 0;
double a = 3.141592653589793;
double b = (3 * a) / 2;
cout << "Enter eps:" << endl;
cin >> eps;
_asm {
fld b
fsub a
fabs
fld eps
fcomip st(0), st(1)
fstsw ax
sahf
jl endd
jge topp

endd:
fld zero
fstp ans
jmp poka

topp:
fld three
fstp ans

poka:
};
if (ans == 3)
cout << "value > eps" << endl;
else if (ans == 0)
cout << "value <= eps" << endl;
}
0 ответов
Похожие вопросы