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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2007, 19:31   #1
Irwin
 
Регистрация: 02.05.2007
Сообщений: 3
Печаль Ассемблер. Факториал числа. Коментарии к программе

Надо написать 2 проги:
1- Считает факториал отрицательног числа
2- Считает факториал положительного числа
И написать к этим прогам коментарии: что, где и зачем!!!!!
Ребята выручайте, очень надо как можно скорее!!!!

Последний раз редактировалось RSLoader; 03.05.2007 в 01:10.
Irwin вне форума Ответить с цитированием
Старый 02.05.2007, 22:42   #2
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

function Factorial(n: integer): integer;
begin
if N > 1
then Factorial := N*Factorial(N-1)
else Factorial := 1;
end;
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 02.05.2007, 23:44   #3
Irwin
 
Регистрация: 02.05.2007
Сообщений: 3
По умолчанию

Спасибо огромное за помощ, но там пишется как-то по - другому, там сначала, по-моему в блокноте, а потом через командную строку запускаешь этот текстовый файл, но с расширением (блин чисто на память, что-то в универе говорили) asm, или что-то в этом роде. Если в курсе "о чем я", то помоги плиз!!!
Irwin вне форума Ответить с цитированием
Старый 03.05.2007, 01:54   #4
Alexander77
Пользователь
 
Аватар для Alexander77
 
Регистрация: 27.04.2007
Сообщений: 13
По умолчанию

;==== NASM syntax вроде бы
;
; file: factorial.asm
; This program demonstrates local variables and recursion
;
%include "asm_io.inc"
segment .data
prompt db "Enter a number: ", 0
ans_msg db "! is ", 0
segment .bss
input1 resd 1
input2 resd 1
segment .text
factorial:
;
; This procedure expects one unsigned integer (n>0) on the stack.
; It returns n! in eax
;
push ebp
mov ebp,esp
sub esp,4 ;make space for a local variable (at ebp-4)
mov eax,[ebp+8] ;put parameter in eax
cmp eax,0
je done ;if we were finding 0!
mov [ebp-4],eax ;else store eax in our local variable
dec eax ;compute n-1
push eax ;put it on the stack
call factorial ;and find (n-1)!
;oops! forgetting to remove param from stack. see *
mul dword [ebp-4] ;then multiply it by our saved value
jmp epilog ;and return it
done:
mov eax,1
epilog:
mov esp,ebp ;restore esp (skip over local variables)
; Note *: saved, because we fix esp no matter what
; DON'T DO THIS. I left it in for educational purposes only
pop ebp
ret

global _asm_main
_asm_main:
enter 0,0 ; setup routine
pusha
mov eax, prompt
call print_string
call read_int
call print_int
push eax
mov eax,ans_msg
call print_string
call factorial
add esp,4 ;remove parameter from stack
call print_int
call print_nl
popa
mov eax, 0 ; return back to C
leave
ret
Alexander77 вне форума Ответить с цитированием
Старый 03.05.2007, 13:52   #5
Irwin
 
Регистрация: 02.05.2007
Сообщений: 3
Радость СПАСИБО

Спасибо огромное, выручил! (если конечно это в том виде который мне нужен). А ты мне можешь объяснить "по-русски": что в этой программе происходит последовательно (построчно)? И она сразу считает и "+" и "-" числа?
Irwin вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Факториал числа в Delphi Prisian Общие вопросы Delphi 16 24.01.2008 13:23
Факториал числа (циклы) Sargon Общие вопросы C/C++ 2 14.01.2008 02:25
Факториал от дробного числа RIO Помощь студентам 11 26.12.2007 18:36
ADO. коментарии в Memo Чайка БД в Delphi 2 19.04.2007 20:07