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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2014, 17:43   #1
lixod96
Пользователь
 
Регистрация: 23.04.2014
Сообщений: 18
По умолчанию Проверьте на наличие ошибок готовый код

Задача основывается на использовании циклических вычислительных структур. Необходимо разработать программу, которая на базе циклов и арифметического сопроцессора вычисляет сумму N (должно быть больше 10) членов ряда Маклорена функции. Вычисление значения функции необходимо реализовать отдельной подпрограммой.

F(x)=chx

Вот что я набрасал, проверьте, может есть где то ошибки???


Код:
extern printf
 SECTION .data
 x dq 0.0
 one dq 1.0
 temp1 dq 0.0
 temp2 dq 0.0
 temp3 dq 1.0
 result dq 0.0
 two db 2
 fmtResult db "ch*x = %e", 10, 0


 SECTION .text
 global main
 main:
 mov EDX, 0

 mov dword EAX, [x + 4]
 mov dword EBX, [temp1 + 4]
 cmp EAX, EBX
 jne mainloop

 mov dword EAX, [x]
 mov dword EBX, [temp1]
 cmp EAX, EBX
 jne mainloop

 jmp res

 mainloop:

 fld qword [x]
 mov EAX, EDX
 inc EAX
 call power 
 fstp qword [temp1]

 fld qword [temp2]
 fadd qword [one]
 fstp qword [temp2]

 fld qword [temp1]
 fdiv qword [temp2]

 fmul qword [temp3]
 fadd qword [result]
 fstp qword [result] 

 fld qword [temp3]
 fchs
 fstp qword [temp3]

 inc EDX
 cmp EDX, 15
 jne mainloop

 res:
 push dword [result + 4]
 push dword [result]
 push dword [x + 4]
 push dword [x]
 push dword fmtResult
 call printf
 add ESP, 20 
 add EAX, 0


 ret

 ;Входные данные - регистр EAX; выходные регистр - st(0)
 SECTION .data
 trash dq 1.0
 SECTION .text
 global factorial
 factorial:
 push EBX
 mov EBX, -1
 fld qword [trash]
 fld qword [trash]

 factorial_loop:
 inc EBX
 fmul ST1
 FINCSTP
 fadd qword [trash]
 FDECSTP
 cmp EBX, EAX
 jne factorial_loop

 FFREE ST1
 pop EBX

 ret

 power: ;Входные данные: число - регистр сопроцесора st(0), степень - регистр EAX; выходные регистр - st(0)
 push EBX
 mov EBX, 0
 fld ST0
 fdiv ST1

 cmp EAX, 0
 jne power_loop

 jmp next

 power_loop:
 inc EBX
 fmul ST1
 cmp EBX, EAX
 jne power_loop

 next:

 FFREE ST1
 pop EBX

 ret

Последний раз редактировалось Stilet; 16.12.2014 в 18:52.
lixod96 вне форума Ответить с цитированием
Старый 16.12.2014, 18:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты не пробовал ее запускать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2014, 18:59   #3
lixod96
Пользователь
 
Регистрация: 23.04.2014
Сообщений: 18
По умолчанию

Работаю в виртуальной машине на чужом компе, код писал в текстовом документе

Подскажите, есть ли ошибки?

Последний раз редактировалось Stilet; 16.12.2014 в 19:22.
lixod96 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверьте программы на С# и напишите комментарии. возможно много ошибок АннаAnna Помощь студентам 2 23.04.2014 10:19
Как тестировать Веб-сайт на наличие ошибок? _J_ HTML и CSS 3 09.02.2012 10:35
Проверьте мой класс на наличие ошибок и недочётов Человек_Борща Общие вопросы Delphi 4 13.04.2011 20:24
Проверить на наличие ошибок (массивы в Си) foxy342 Помощь студентам 2 23.12.2010 23:56
Поиск ошибок в вариантах кода. Проверьте fs444 Общие вопросы C/C++ 6 31.03.2010 20:11