سورس مثلث خیام به زبان اسمبلی
در این بخش سورس مثلث خیام به زبان اسمبلی را برای شما آماده کرده ایم که با استفاده از زبان برنامه نویسی Assembly نوشته شده است. در ادامه می توانید توضیحات و تصاویر مربوط به این پروژه را مشاهده کنید.
توضیحات پروژه
این پروژه تا 9 مرحله اعداد را چاپ می کند که می توانید با ویرایش کد پروژه، تعداد مراحل افزایش یا کاهش دهید. خروجی حاصل از این سورس کد با پسوند EXE خواهد بود اما اگر بخواهید، با کمی تغییرات می توان خروجی COM هم گرفت. این پروژه برای یادگیری زبان برنامه نویسی اسمبلی بسیار مناسب است. این برنامه با استفاده از برنامه Emu8086 نوشته شده است که می توانید آن را از لینک مورد نظر دانلود کنید.
مثلث خیام چیست؟
مثلث خیام به آرایش مثلثی شکل ضرایب بسط دو جمله ای گفته می شود. ممکن است در سایر منابع با نام های مثلث تارتالیا، مثلث پاسکال، یا مثلث خیام – پاسکال نیز معرفی شود.
قسمت های از سورس کد
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | TITLE (pascal.asm) .model large .stack 4096 .data msg db 0dh, 0ah, 0dh, 0ah, "Pascal Triangle Display", 0dh, 0ah newLine db 0dh, 0ah, "$" msgEnd db 0dh, 0ah, 0dh, 0ah, "Press any key to continue", 0dh, 0ah, 0dh, 0ah, "$" pasc dw 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 pasc2 db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 numOutP dw 0000h numOut dw 0000h .code main PROC mov ax, @data mov ds, ax mov ah, 9 mov dx, OFFSET msg int 21h mov cx, 000Ah outLoop: push cx ;Store the outLoop number (each line) lea si, pasc mov cx, 000Ah prnLoop: mov bh, 00h mov bl, [si] cmp bl, 00h je nextStop mov ah, 6 mov dl, 20h ;Space int 21h call disPad call disNum inc si loop prnLoop nextStop: mov ah, 9 mov dx, OFFSET newLine int 21h lea si, pasc lea di, pasc2 inc di mov cx, 000Ah moveLoop: mov bh, 00h mov bl, [si] mov [di], bl inc si inc di loop moveLoop mov ah, 9 mov dx, OFFSET newLine int 21h lea si, pasc lea di, pasc2 mov cx, 000Ah prnL2: mov bh, 00h mov bl, [si] add bl, [di] mov [si], bl inc si inc di loop prnL2 pop cx loop outLoop proEnd: mov ah,9 mov dx,OFFSET msgEnd int 21h mov ah, 1 ;Wait for any key, allows the user to read any output int 21h ;before the programme ends and the window closes mov ah, 4ch int 21h main ENDP mov ah, 6 mov dl, cl int 21h mov cl, 00h cmp bx, 0Ah jl disTen getTen: inc cl sub bx, 0Ah cmp bx, 0Ah jge getTen disTen: add cl, 30h mov ah, 6 mov dl, cl int 21h mov cl, 00h cmp bx, 01h jl disUnit disUnit: add bl, 30h mov ah, 6 mov dl, bl int 21h pop di ;Restore previous values, most importantly bx in case the user wants to use that number again pop si pop dx pop cx pop bx pop ax ret disNum ENDP END main |
هیچ نظری ثبت نشده است