PDA

برای دیدن نسخه كامل اینجا را كلیك كنید : محاسبه توان



j0j0
2011/10/12, 07:41 PM
با پیاده سازی روال نزدیک که در عدد از طریق AX ,BX بعنوان پارامتر ورودی دریافت کرده توان اولی به توان دومی را محاسبه کند ، برنامه ای بنوسید که n را گرفته عبارت زیر را چاپ کند

...+3^3+2^2+1^1

j0j0
2011/10/13, 08:40 PM
کسی نیست جواب بده ؟، حداقل جمع اعداد 1 تا n را بگین ممنون میشم

sayyad84
2011/10/14, 11:26 PM
با سلام،
الگوریتم توان رو که بلدید؟ کافیه تو مقدار خروجی برای توان عدد 1 رو قرار بدید و به تعداد "توان" این مقدار خروجی رو در "پایه" ضرب کنید! این می شه حاصل توان که با یه loop ساده قابل پیاده سازیه!
قسمت دوم برنامه هم که یه loop دیگه س که n بار انجام می شه و هر بار یکی به مقدار ورودی زیربرنامه تون اضافه می شه! در اینجا مقدار خروجی باید در ابتدا 0 بشه و خروجی زیربرنامه باهاش جمع بشه!
(از اون جایی که فعلاً قصد برنامه ی آماده نوشتن ندارم یه تیکه از برنامه رو می ذارم!! برنامه تون باید چیزی شبیه این باشه:)

mov cx,n
mov ax,0
mov bx,0
mov dx,0 ;DX=Sum

Continue:
inc ax
inc bx
call Pow
add dx,P
loop Continue

Pow proc
push ax
push bx
mov dx,ax
mov ax,1

CPow:
cmp bx,0
jz ende
mul dx
dec bx
jmp CPow

ende:
mov P,ax
pop bx
pop ax
ret
Pow endp


البته خیلی بهتره که از پشته برای ارسال و دریافت در مورد روال استفاده کنیم که نکردیم! همین می شه از loop توی روال استفاده کرد!

j0j0
2011/10/15, 07:39 PM
خیلی ممنون کمک زیادی کردین .