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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2018, 16:39   #1
Marcus75
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 15
Радость Вычислить формулу на ассемблере

Доброго времени суток.
Прошу помощи в записи правой части формулы ряда Тейлора на ассемблере TASM.

sin(x) = x - (x^3)/6+(x^5)/120.
Marcus75 вне форума Ответить с цитированием
Старый 28.03.2018, 08:16   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
c6 dd 6.0
c120 dd 120.0
...
fld x
fdl x
fmul x
fmul x
fdiv c6
fsub
fdl x
fmul x
fmul x
fmul x
fmul x
fdiv c120
fadd
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 09.04.2018, 19:24   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

sin(x)=x(1-(x*x/6)*(1-x*x/20))
Код:
finit
fld dword [x]
fld st0
fmulp st1,st0
push 20f
fld dword [esp]
fdivp st1,st0
fld1
fxch
fsubp st1,st0
fld dword [x]
fld st0
fmulp st1,st0
push 6f
fld dword [esp]
fdivp st1,st0
fxch
fmulp st1,st0
fld1
fxch
fsubp st1,st0
;Here should come the code for the function 'x'!
fstp dword [result]
pop ecx
pop ecx

Последний раз редактировалось Mikl___; 09.04.2018 в 19:32.
Mikl___ вне форума Ответить с цитированием
Старый 11.04.2018, 05:09   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Код:
    fninit
    fld x                  ; st(0)=x
    fld st(0)              ; st(0)=st(1)=x
    fmul st(0),st(0)       ; st(0)=x*x  st(1)=x
    fld st(0)              ; st(0)=st(1)=x*x  st(2)=x
    db 68h
    dd 20.0                ; push 20.0
    fdiv dword ptr [esp]   ; st(0)=x*x/20  st(1)=x*x  st(2)=x
    fld1                   ; st(0)=1 st(1)=x*x/20  st(2)=x*x  st(3)=x
    fsubrp st(1),st(0)     ; st(0)=1-x*x/20  st(1)=x*x  st(2)=x
    fmulp st(1),st(0)      ; st(0)=(1-x*x/20)*x*x  st(1)=x
    db 68h
    dd 6.0                 ; push 6.0
    fdiv dword ptr [esp]   ; st(0)=(1-x*x/20)*x*x/6  st(1)=x
    fld1                   ; st(0)=1 st(1)=(1-x*x/20)*x*x/6  st(2)=x
    fsubrp st(1),st(0)     ; st(0)=1-(1-x*x/20)*x*x/6  st(2)=x
    fmulp st(1),st(0)      ; st(0)=(1-(1-x*x/20)*x*x/6)*x=x-x^{3}/6+x^{5}/120
    fstp result            ; result=sin(x)
    pop ecx
    pop ecx

Последний раз редактировалось Mikl___; 11.04.2018 в 15:30.
Mikl___ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать формулу на ассемблере jipumex@cartelera. Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.04.2017 23:36
две задачи на Паскаль (вычислить значения ряда с заданной точностью и вычислить формулу по элементам массива) METFIss Помощь студентам 7 23.01.2014 15:51
Вычислить формулу vpersov Фриланс 4 29.11.2010 18:46
Вычислить рекурсивную формулу Макс2010 Паскаль, Turbo Pascal, PascalABC.NET 1 26.05.2010 07:49
Дано n. Вычислить формулу ArcaN0id Помощь студентам 2 02.12.2009 13:43