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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 08:50   #1
bobkoff
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 5
По умолчанию Задача с факториалом

Добрый день, помогите пожалуйста написать программу.
Вычислить сумму факториалов: Y = 1! + 2! + 3! +…+ N! (N>1)

Нашел код самого факториала:
Код:
MOV ax,1
MOV cx, [digit]

factCycle:
MUL cx
LOOP factCycle
Составить программу, вычисляющую для заданного x сумму:

1+ х/1! + х^2/2! + x^3/3! + ...
bobkoff вне форума Ответить с цитированием
Старый 07.01.2011, 12:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Рискну предложить такое:
Код:
 mov eax,1
 mov ecx,3
 mov ebx,1
 xor esi,esi
 xor edx,edx
again:
 mul ebx
 inc ebx
 add esi,eax
loop again
В esi будет сумма факториалов до цифры ECX (до 3)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 15:36   #3
bobkoff
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 5
По умолчанию

Спасибо! Получается, если в ECX поставить любую другую, то он до нее и будет считать?
bobkoff вне форума Ответить с цитированием
Старый 07.01.2011, 17:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Агась. По крайней мере должен
Я так с потолка писал, особо не проверял, но работать должен
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 18:01   #5
bobkoff
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 5
По умолчанию

Респект тебе! Вторую задачу кто-нибудь осилит?
bobkoff вне форума Ответить с цитированием
Старый 07.01.2011, 19:01   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я вот так врядли, но помню что вторая задача тут уже обсуждалась
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2011, 15:05   #7
bobkoff
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 5
По умолчанию

Stilet, почему xor esi,esi, а не mov esi,0. Может эту сможешь сделать, ту задачу правильно сделал, проверяли правильно работает ))). Написать программу вычисления суммы положительных и количества отрицательных чисел, содержащихся среди данных 10 чисел.

Последний раз редактировалось bobkoff; 08.01.2011 в 15:25.
bobkoff вне форума Ответить с цитированием
Старый 08.01.2011, 16:04   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему xor esi,esi, а не mov esi,0.
Х.з. Захотелось так.
Цитата:
Написать программу вычисления суммы положительных и количества отрицательных чисел, содержащихся среди данных 10 чисел.
Ну с потолка, не проверяю. Нечем сейчас
Код:
...
 a dd 1,2,-3,4,-5,6,7,8,9,0
 cnt dd 0  ; кол-во
 sum dd 0 ; Сумма
...
mov esi,a
mov ecx,10
xor eax,eax
aga:
 cmp dword ptr [esi],0
 jz go
 jg grt
 inc [cnt]
 jmp go
grt:
 add eax, [esi]
go:
 add esi,4
loop aga;
mov [sum],eax
Вот как-то так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2011, 16:15   #9
bobkoff
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 5
По умолчанию

спасибо большое! Будем обмозговывать принцип работы...
bobkoff вне форума Ответить с цитированием
Старый 13.01.2011, 18:52   #10
inKognit
 
Аватар для inKognit
 
Регистрация: 12.01.2011
Сообщений: 7
По умолчанию

на самом деле функции типа xor esi,esi, занимают в памяти куда более меньше места чем те же mov esi,0. На сколько я помню xor esi,esi, (по 1 байту), mov esi,0 (по 3 байта)
Как много дел казались невозможными пока они не были осуществлены.
inKognit вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача c++ winter34 Помощь студентам 1 16.11.2010 00:21
Программа с факториалом с исопльзованием цикла BOJIT Помощь студентам 0 27.10.2010 13:13