![]() |
|
|
![]()
|
|
| БабушкаБу |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 13.12.2005 Репутация: нет Всего: нет |
Мне нужна программка на BASM c использованием математчиеского сопроцессора - Нахождение
sin (x) или cos(x) либо ln(x+1) через разложение в ряд Тэйлора. например: ...............m........(n-1).......n ln(x+1) = E......-1.......*..(x )/n!; ...............n=1 x и m вводятся клавиатуры... Помогите пожалуйста... Это сообщение отредактировал(а) БабушкаБу - 13.12.2005, 22:43 |
|||
|
||||
| БабушкаБу |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 13.12.2005 Репутация: нет Всего: нет |
//функция на с++
double lnNew(double x) { double Sum; int k; double current; Sum=0; k=1; current=x; while (fabs(current) > 1e-6) { Sum += current; k++; current *= -x; current /= k; } return Sum; } //переведена в ассемблер lnNew: pushl %ebp movl %esp, %ebp subl $24, %esp fldz fstpl -8(%ebp) movl $1, -12(%ebp) fldl 8(%ebp) fstpl -24(%ebp).L2: fldl -24(%ebp) fabs fldl .LC1 fxch %st(1) fucompp fnstsw %ax testb $69, %ah je .L4 jmp .L3.L4: fldl -8(%ebp) faddl -24(%ebp) fstpl -8(%ebp) leal -12(%ebp), %eax incl (%eax) fldl 8(%ebp) fchs fldl -24(%ebp) fmulp %st, %st(1) fstpl -24(%ebp) fildl -12(%ebp) fldl -24(%ebp) fdivp %st, %st(1) fstpl -24(%ebp) jmp .L2.L3: fldl -8(%ebp) leave ret Как мне использовать этот код в паскале??? P.s.32-битный код Это сообщение отредактировал(а) БабушкаБу - 14.12.2005, 00:08 |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Это ассемблер AT (unix), в дельфи такой не пойдет. Сделай асм-листинг в VC (ну или другой, но под win32).
А вообще-то примерно так: { //переведена в ассемблер } function lnNew(x: double): double; var Sum, current: double; k: integer; begin asm { Sum:=0; } {fldz} fldz {fstpl -8(%ebp)} fstp Sum { k:=1; } {movl $1, -12(%ebp) } mov dword ptr k,1 { current:=x; } {fldl 8(%ebp) } fld x {fstpl -24(%ebp).} fstp current { while (fabs(current) > 1e-6) - начало цикла } @L2: ... end; end; -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |