با پیاده سازی روال نزدیک که در عدد از طریق AX ,BX بعنوان پارامتر ورودی دریافت کرده توان اولی به توان دومی را محاسبه کند ، برنامه ای بنوسید که n را گرفته عبارت زیر را چاپ کند
با سلام،
الگوریتم توان رو که بلدید؟ کافیه تو مقدار خروجی برای توان عدد 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 توی روال استفاده کرد!