محاسبه توان

j0j0

عضو جدید
با پیاده سازی روال نزدیک که در عدد از طریق AX ,BX بعنوان پارامتر ورودی دریافت کرده توان اولی به توان دومی را محاسبه کند ، برنامه ای بنوسید که n را گرفته عبارت زیر را چاپ کند

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

j0j0

عضو جدید
کسی نیست جواب بده ؟، حداقل جمع اعداد 1 تا n را بگین ممنون میشم
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
محاسبه توان در اسمبلی

محاسبه توان در اسمبلی

با سلام،
الگوریتم توان رو که بلدید؟ کافیه تو مقدار خروجی برای توان عدد 1 رو قرار بدید و به تعداد "توان" این مقدار خروجی رو در "پایه" ضرب کنید! این می شه حاصل توان که با یه loop ساده قابل پیاده سازیه!
قسمت دوم برنامه هم که یه loop دیگه س که n بار انجام می شه و هر بار یکی به مقدار ورودی زیربرنامه تون اضافه می شه! در اینجا مقدار خروجی باید در ابتدا 0 بشه و خروجی زیربرنامه باهاش جمع بشه!
(از اون جایی که فعلاً قصد برنامه ی آماده نوشتن ندارم یه تیکه از برنامه رو می ذارم!! برنامه تون باید چیزی شبیه این باشه:)
کد:
[LEFT]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[/LEFT]
البته خیلی بهتره که از پشته برای ارسال و دریافت در مورد روال استفاده کنیم که نکردیم! همین می شه از loop توی روال استفاده کرد!
 

Similar threads

بالا