Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› Мат функции на асме
Посл.ответ Сообщение

Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 07 сентября 2007 15:24
· Личное сообщение · #1

Здравствуйте!
Появился такой вопрос:
Как на асме вычичислить синус, косинус, корень, логарифм...?
Неужели надо вручную писать это?

-----
моя подпись!





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 07 сентября 2007 15:32
· Личное сообщение · #2

locker_fx
fpu тебе в помосчь )

-----
Тут не могла быть ваша реклама





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 07 сентября 2007 15:35
· Личное сообщение · #3

lord_Phoenix пишет:
fpu тебе в помосчь )

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

-----
Программист SkyNet




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 07 сентября 2007 15:45
· Личное сообщение · #4

lord_Phoenix,FrenFolio
я как понимаю вы имели ввиду вот это
ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%
80#.D0.A3.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.BE_FPU


Но там нислова о том как можно на практике в асме вычислить, например синус. Подскажите на примере плиз, буду очень благодарен!

-----
моя подпись!





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 07 сентября 2007 15:58
· Личное сообщение · #5

В пакете MASM32 есть папка fpulib с либами, а в папке хелп есть файл fpulib.hlp, там все достаточно хорошо расписано, и пример тож есть.



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 07 сентября 2007 15:59
· Личное сообщение · #6

Ara пишет:
В пакете MASM32 есть папка fpulib с либами, а в папке хелп есть файл fpulib.hlp, там все достаточно хорошо расписано, и пример тож есть.

пошёл искать

-----
моя подпись!




Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 07 сентября 2007 16:14
· Личное сообщение · #7

К примеру.

function sinl(x: pextended): extended;
asm
fld tbyte ptr [eax]
fsin
end;


-----
Security through obscurity is just an illusion





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 07 сентября 2007 18:44 · Поправил: s0larian
· Личное сообщение · #8

locker_fx, есть два варианта - либо используя инструкцию ко-процессора как написал pushick (кста такие операции обычно производятся с С типом double,) или сам можешь реализовать алго используя ряд: htt_://en.wikipedia.org/wiki/Sine#Series_definitions (гонишь цикл до получения необходимой точности). Кста, думаю что силикон делает то же самое.



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 07 сентября 2007 20:40
· Личное сообщение · #9

s0larian пишет:
locker_fx, есть два варианта - либо используя инструкцию ко-процессора как написал pushick (кста такие операции обычно производятся с С типом double,) или сам можешь реализовать алго используя ряд: htt_://en.wikipedia.org/wiki/Sine#Series_definitions (гонишь цикл до получения необходимой точности). Кста, думаю что силикон делает то же самое.

сейчас мне не нужно ни мега точности, ни мега скорости. Мне желательно как попроще. Я хочу лабы институские на асме написать(чтобы так сказать набить руку, а то уж очень у меня маленький асм опыт).

В папке fpulib нашёл много разных asm файлов. Посмотрев их я понял что можно просто вызывать функи из своей проги. Я прав?
Помогите плиз разобраться с входными и выходными данными функ, буду очень благодарен!

-----
моя подпись!




Ранг: 29.2 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 07 сентября 2007 22:48 · Поправил: drunk_master
· Личное сообщение · #10

вот тебе тип ов зЭ дЭй : ежели есть денежки, купи "Assembler Специальный справочник" Виктора Юрова
издание "Питер" там черным по русскому написсано, и про типы данных и про операции целочисл.,
и про фпу, и про ММХ ипро ХХМ, и еще дожопы про что, все
по руусским языкоми ниприписаноо-о-о-0ъ , вот.. или ежели денежек нэмаэ то в сети рыскай, я хотел
отсканировать да выкласть да сканера нет как всегды, бля ...
... очень нужная весчъ...locker_fx пишет:
locker_fx

______________________________________________________________________ _________
вообще -то матом можно и без асма писать...



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 08 сентября 2007 08:44 · Поправил: locker_fx
· Личное сообщение · #11

Вот к примеру синус:
FpuSin proc public lpSrc:DWORD, lpDest:DWORD, uID:DWORD

Как я понимаюю lpSrc адрес, где хранится числого синус которого будем искать, а lpDest адрес куда будет записан ответ.

А что такое uID ?

-----
моя подпись!




Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 08 сентября 2007 09:15
· Личное сообщение · #12

А почему синус называется FpuSize?

-----
Security through obscurity is just an illusion




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 08 сентября 2007 10:14
· Личное сообщение · #13

pushick пишет:
А почему синус называется FpuSize?

сорри ошибка. исправил. но суть вопроса от этого не меняется.

-----
моя подпись!





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 08 сентября 2007 11:40
· Личное сообщение · #14

locker_fx
там есть help файл с описаниями всех функций..и примеры тоже были

-----
Тут не могла быть ваша реклама




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 08 сентября 2007 13:07
· Личное сообщение · #15

lord_Phoenix пишет:
там есть help файл с описаниями всех функций..и примеры тоже были

у меня в этой папке есть 1бантик, 1либ, 1инк, 1тхт(в нём описаний и примеров нет), и куча асмов. Хелп файлов нет.

-----
моя подпись!




Ранг: 56.3 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 08 сентября 2007 13:37
· Личное сообщение · #16

Так вот в каждом этом asm файле есть подробное описание его функционала. Там много проверок на правильность введённого числа, на градусы/радианы. Читай комментарии, убирай лишнее, если надо. Что тут ещё тебе посоветовать?




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 сентября 2007 13:43
· Личное сообщение · #17

Держи хелп, странно что его нету у тебя в пакете.

a011_08.09.2007_CRACKLAB.rU.tgz - fpulib.hlp



Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 08 сентября 2007 16:37
· Личное сообщение · #18

Ara пишет:
Держи хелп, странно что его нету у тебя в пакете.

a011_08.09.2007_CRACKLAB.rU.tgz - fpulib.hlp

Спасибо за файл. У меня действительно его небыло!
Пошёл ковыряться дальше...

-----
моя подпись!



 eXeL@B —› Программирование —› Мат функции на асме
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати