سورس برنامه فاکتوریل ۱۶ بیتی به زبان اسمبلی Assembly
امروز در این پست از وب سایت نوآوران گرمی مرجع پروژه های دانشجویی سورس برنامه فاکتوریل ۱۶ بیتی به زبان اسمبلی Assembly را آماده کرده ایم که نسخه ۸ بیتی آن را تقریبا یک سال پیش در سایت قرار داده ایم (از اینجا می توانید مشاهده کنید) بنا به درخواست کاربران گرامی، نسخه ۱۶ بیتی آن نیز ساخته شده است.
فاکتوریل Factorielle یکی از شاخه های ریاضی است که در ترکیبیات کاربرد بسیاری دارد. هر عدد طبیعی در ریاضیات از حاصل ضرب آن عدد در تمام اعداد صحصح کوچک تر از آن به دست می آید.
فاکتوریل عدد n را به صورت !n نشان میدهیم و آن را “ان فاکتوریل” می نامیم. به طور کلی !n میشود:
n! = (n)×(n-1)×(n-2)×(n-3)×(n-4) … (۱)
در ادامه قسمت های از سورس برنامه فاکتوریل ۱۶ بیتی به زبان اسمبلی Assembly را می توانید مشاهده کنید.
تکه کد سورس برنامه فاکتوریل ۱۶ بیتی به زبان اسمبلی Assembly:
جهت دریافت کد کامل این برنامه از قسمت خرید محصول اقدام کنید
PRINT_NUM_UNS PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
; flag to prevent printing zeros before number:
MOV CX, 1
; (result of "/ 10000" is always less or equal to 9).
MOV BX, 10000 ; 2710h - divider.
; AX is zero?
CMP AX, 0
JZ print_zero
begin_print:
; check divider (if zero go to end_print):
CMP BX,0
JZ end_print
; avoid printing zeros before number:
CMP CX, 0
JE calc
; if AX<BX then result of DIV will be zero:
CMP AX, BX
JB skip
calc:
MOV CX, 0 ; set flag.
MOV DX, 0
DIV BX ; AX = DX:AX / BX (DX=remainder).
; print last digit
; AH is always ZERO, so it's ignored
ADD AL, 30h ; convert to ASCII code.
PUTC AL
MOV AX, DX ; get remainder from last div.
skip:
; calculate BX=BX/10
PUSH AX
MOV DX, 0
MOV AX, BX
DIV CS:ten ; AX = DX:AX / 10 (DX=remainder).
MOV BX, AX
POP AX
JMP begin_print
print_zero:
PUTC '0'
end_print:
POP DX
POP CX
POP BX
POP AX
RET
PRINT_NUM_UNS ENDP
ten DW 10 ; used as multiplier/divider by SCAN_NUM & PRINT_NUM_UNS.
سلام پروژه جدید برای سفارش قبول می کنید می تونم جزئیات سفارشو براتون ایمیل کنم من یه بار هم به سایت شما مراجعه کردم یه مشکل کوچولو تو کدنویسی برنامه برام پیش اومده بود شما راهنماییم کردین محبتتونو هیچ وقت فراموش نمی کنم .