Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.90/20: Рейтинг темы: голосов - 20, средняя оценка - 4.90
Norby
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
1

Вычислить выражение, используя сопроцессор

13.11.2009, 01:08. Просмотров 3952. Ответов 5
Метки нет (Все метки)

В общем надо посчитать Y=(1+x*x)*arctg(x)/2. x задать произвольно. Со сложением, делением и умножением проблем нет. А вот вычисление арктангенса представляет для меня сложности. Во-первых, в литературе написано, что команда FPATAN считает выражение atan(x/y), а откуда берется второе число? Во-вторых, вычисление этого выражения предполагает, что мы получим число с плавающей точкой, типа DD. А как им потом оперировать? Ну поделить-то я поделю, умножу, опять же сопроцессором, а как его потом на экран вывести? И еще, если я x задаю, например, 3 мне надо писать
Assembler
1
x DD 3
или
Assembler
1
x DD 3.0
или как еще? PS. Писать надо на Турбо асме. МАСМ, не подойдет.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2009, 01:08
Ответы с готовыми решениями:

Как поделить dd на dq, используя математический сопроцессор?
Когда пробую вот так: ;..... X dd 33 X1 dq 22 ;..... fld X fdiv X1 ;.....То...

Вычислить используя FPU выражение. Ассемблер
Помогите реализовать тригонометрическое выражение с вещественными числами на TASM. Как их вообще...

Вычислить, используя FPU, следующее выражение
Вычислите, используя FPU, следующее выражение. Исходные данные необходимо вводить с клавиатуры,...

Вычислить заданное условное целочисленное выражение, используя команды сравнения
Вычислить заданное условное целочисленное выражение, используя команды сравнения, условного и...

Вычислите, используя FPU, следующее выражение
Вычислите, используя FPU, следующее выражение: s=\sum_{i=1}^{N}\prod_{j=1}^{i}\frac{j!}{i!}...

5
Goodwin98
2526 / 822 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
13.11.2009, 14:47 2
"fpatan" вычисляет арктангенс значения в ST1, деленного на значение в ST0, сохраняет результат в ST1 и выдвигает стек регистров FPU.
Т.е. если до этого поместить в стек 1, он вычислит arctg(х/1).

Цитата Сообщение от Norby Посмотреть сообщение
И еще, если я x задаю, например, 3 мне надо писать
Впринципе можете и так и так. Для загрузки в стек целых чисел используют команду fild, а для загрузки с плавающей точкой - fld.
1
Norby
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
13.11.2009, 14:55  [ТС] 3
Цитата Сообщение от Goodwin98 Посмотреть сообщение
"fpatan" вычисляет арктангенс значения в ST1, деленного на значение в ST0, сохраняет результат в ST1 и выдвигает стек регистров FPU.
Т.е. чтобы мне посчитать арктангенс 3, надо писать
Assembler
1
2
3
4
5
6
7
a dd 9
b dd 3
y dd ?
fld a
fld b
fpatan
fstp y
и после этого у меня в y будет нужное значение? Или я что-то недопонял?
0
Goodwin98
2526 / 822 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
13.11.2009, 15:28 4
Assembler
1
2
3
4
a dd 3
fild [a]
fld1
fpatan
0
Norby
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
13.11.2009, 15:56  [ТС] 5
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Assembler
1
2
3
4
a dd 3
fild [a]
fld1
fpatan
А зачем a в квадратных скобках?
0
Goodwin98
2526 / 822 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
13.11.2009, 16:13 6
Цитата Сообщение от Norby Посмотреть сообщение
А зачем a в квадратных скобках?
Так правильнее писать. Т.е. здесь берется то, что находится по метке a, а не ее аддрес.
Если используете масм или тасм, то можете их не ставить они не обидятся и подставят значение, а не аддрес.
1
13.11.2009, 16:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2009, 16:13

Вычислите, используя FPU, следующее выражение:
Исходные данные необходимо вводить с клавиатуры, результат выводить на консоль.Очень нужно,заранее...

Вычислите, используя FPU, следующее выражение
Исходные данные необходимо вводить с клавиатуры, результат выводить на консоль.

Вычислите, используя FPU, следующее выражение.
Вычислите, используя FPU, следующее выражение. Исходные данные необходимо вводить с клавиатуры,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru