116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
1 | |
Команды сопроцессора.17.04.2012, 11:49. Показов 18855. Ответов 21
Метки нет Все метки)
(
Подскажите, пожайлуста, как выполнить умножение при помощи сопроцессора и еще, как вводить числа с запятой (например, 2.5). Заранее спасибо
0
|
|
17.04.2012, 11:49 | |
Ответы с готовыми решениями:
21
Команды сопроцессора и его стек Команды арифметического сопроцессора и ввод Константы сопроцессора Стек сопроцессора |
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
17.04.2012, 12:46 [ТС] | 3 |
Спасибо, сейчас понял. Поясни, пожайлуста ещё, что делают fld и fstp.
Добавлено через 2 минуты А ещё, как вычислить синус, косинус. А угол вводится в градусах или радианах?
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
17.04.2012, 12:58 | 4 |
programmisto, в радианах
синус можно вычислить несколькими командами например fsin, fsincos косинус проще всего через fsincos fld загрузить что-либо в стек сопроцессора, fstp вытолкнуть в переменную содержимое вершины стека сопроцессора
1
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 10:45 [ТС] | 5 |
И ещё, как округлять при помощи сопроцессора? И есть ли возможность указания разряда, до которого округлять?
Добавлено через 20 часов 13 минут И ещё, зачем нужна функция finit? В других руководствах я читал, но в примерах этой строки не было.
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
||||||
18.04.2012, 12:55 | 6 | |||||
programmisto, finit - инициализация FPU, устанавливает некоторые регистры FPU в их начальное состояние, незавимо от предыдущих значений. Слово управления CW устанавливается в 037Fh (округлять к ближайшему, все особые ситуации замаскированы, точность 64 бита). Слово состояния SW очищается (флаги особых ситуаций сброшены, регистр стека R0 является вершиной стека). Все стековые регистры помечаются как пустые. Указатели команды и данных очищаются.
Добавлено через 1 час 5 минут Допустим у нас есть число Пи = 3,1415926535897932384626433832795 требуется округлить его до пятой цифры после запятой 3,1415926535897932384626433832795*100000 то, что получилось округляем до целого и снова делим на 100000
1
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 13:02 [ТС] | 7 |
А процессор надо деинициализировать? В ООП если создали объект надо уничтожить. А здесь как?
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 13:04 | 8 |
programmisto, следующая программа, которая будет обращается к сопроцессору (если ее пишет не жопорукий программист) также начнется с команды finit
0
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 13:33 [ТС] | 9 |
А как вычислять ArcSin, ArcCos?
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 13:52 | 10 |
programmisto, для вычисления arcsin(x), arccos(x) используется свойство
"Это же элементарно, Ватсон!"
0
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 14:00 [ТС] | 11 |
Ошибочка выходит.
arctg(tg(x)) = x. Тогда что-ли arcsin(x)=0 При любом x?
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 14:13 | 12 |
programmisto, если arcsin(x)=0, тогда x=0 при чём здесь любое значение Х, если ищется конкретное?
Y=sin(Х) X=arcsin(Y) у сопроцессора есть только команда извлечения арктангенса так понятнее?
1
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 14:16 [ТС] | 13 |
Arcsin (x)= arctg(tg(x))
arcsin (x) = x ? при угле в 90 arcsin (90) = 90? 1 = 90?
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 14:20 | 14 |
programmisto, посмотри сообщение выше твоего и не цепляйся к словам, с таким бы рвением сам мог найти способ получения арксинуса и арккосинуса
0
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 14:33 [ТС] | 15 |
Понятно. А как извлечь квадратный корень? А также, какая функция вычисляет тангенс. И ещё, какие параметры берёт и что возвращает функция fpatan.
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 14:38 | 16 |
programmisto,
1) стоит найти учебник 2) fsqrt корень st(0)= 3) fptan тангенс st(0)=tg(st(0)) 4) fpatan арктангенс ST(0)=Arctg (ST(1)/ST(0)), содержимое st(1) выталкивается все функции не имеют аргументов, вернее он всегда на верхушке стека, или для арктангенса это аргументы в st(0) и в st(1)
0
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 14:57 [ТС] | 17 |
А параметры в каком порядке запихивать (в прямом или обратном)?
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 15:01 | 18 |
programmisto, смотри пункт первый
![]()
0
|
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
|
|
18.04.2012, 15:46 [ТС] | 19 |
А где взять книгу по сопроцессору? У меня есть несколько книг по ассемблеру, но там совершенно не говорится о сопроцессоре.
0
|
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,446
|
|
18.04.2012, 15:56 | 20 |
programmisto, для начала найди Дэвид Дж. Брэдли "Программирование на языке ассемблера для IBM PC" там азы по сопроцессору, немного есть у Юрия Магда - "Ассемблер для процессоров Intel Pentium", дальше сам найдешь если захочешь
1
|
18.04.2012, 15:56 | |
Помогаю со студенческими работами здесь
20
Работа сопроцессора
Обмен регистров сопроцессора Включение/отключение сопроцессора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |