Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 12.10.2014
Сообщений: 14
1

Вычисление сочетаний

27.10.2014, 17:20. Показов 1310. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Недавно начал изучать ассемблер. Возникла проблема с процедурами, а точнее с передачей данный в процедуру и изъятия результата. Собственно написал программу, которая считает число сочетаний по формуле c=m!/(n!*(m-n)!). Подскажите где ошибка. Код прилагается для Tasm.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
model small
.stack 100h
.data
m dw 6
n dw 4             
.code
 
     fact proc                
          pop bx             
          mov dx,bx           
          mov al,0            
          mov ax,dx           
     m0:
          cmp dx,1            
          je m3                
     m1:
          dec dx               
          mul dx              
          jmp m0              
     m3:
          ret                  
                             
     fact endp                
start: 
    mov ax, @data
    mov dx, ax
    mov si,0             
         mov bx, m       
         push bx         
                         
         call fact      
    mov ax,bx            
         mov bx, n       
         push bx         
         call fact      
    div bx               
                          
    xchg ax, bx        
         mov bx, m       
         sub bx, n       
         push bx         
         call fact     
    div bx               
mov ax, 4c00h
    int 21h
end start
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2014, 17:20
Ответы с готовыми решениями:

Вычислить количество сочетаний из N сочетаний по K
Делаю на Dosbox. Можете написать на Assembler. Спасибо! Вычислить количество сочетаний из N...

Определить число сочетаний
Помогите пожалуйста написать две программы. 1 четырех угольник задан координатами своих вершин....

Удаление из строки определенных сочетаний символов
Суть программы: пользователю необходимо задать строку символов и отдельно 4 слова. Необходимо...

Вычисление числа сочетаний из N по M
Напишите программу для вычисления числа сочетаний из N по M. Число сочетаний определяется по...

3
Эксперт быдлокодинга
2091 / 525 / 69
Регистрация: 04.11.2010
Сообщений: 1,310
28.10.2014, 08:19 2
Всю программу не разбирал однако предположу что
push bx ; тут ты пытаешся передать параметр в процедуру через стек

call fact ; а тут вызываешь саму процедуру, не беря во внимание то, что сверху на засунутый в стек параметр команда call пихает адрес возврата

fact proc ; и когда переходишь к процедуре
pop bx ; то достаёшь из стека не параметр, а адрес, на который после завершения процедуры должна вернуться программа.

Вот эта связка вообще гон какой то, зачем в al пихать ноль если следующей командой этот ноль всё равно затрётся содержимым dx?
mov al,0
mov ax,dx

Как то так
1
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
28.10.2014, 08:28 3
Vladimir08,
посмотри https://www.cyberforum.ru/asse... 05284.html https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Глава 15. ПОДПРОГРАММЫ-ПРОЦЕДУРЫ" https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Передача параметров процедуре"
1
0 / 0 / 1
Регистрация: 12.10.2014
Сообщений: 14
28.10.2014, 08:35  [ТС] 4
Всем спасибо за советы. Вроде понял. Буду пробовать.
0
28.10.2014, 08:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2014, 08:35
Помогаю со студенческими работами здесь

Вычисление числа сочетаний из N по M
Напишите программу для вычисления числа сочетаний из N по M. Число сочетаний определяется по...

Вычисление числа сочетаний
Напишите программу для вычисления числа сочетаний из N по M.Число сочетаний определяется по формуле...

Вычисление числа сочетаний из n по m
Доброго времени суток, помогите с задачей. Вычислить числа сочетаний из n по m. Числа m и n...

Вычисление числа сочетаний из N по M
Напишите программу для вычисления числа сочетаний из N по M. Число сочетаний определяется по...

Рекурсия: вычисление числа сочетаний
помогите довести до ума рекурсию нужно для сокращения числа итераций учесть свойство симетрии...

Рекурсия: вычисление количества сочетаний
Всем здрасти!)тут не давно рекурсию (object pascal) проходили вот...многое пропустила подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru