نمایش نتایج: از شماره 1 تا 2 از مجموع 2
Like Tree2نفر پسندیدند
  • 1 ارسال توسط F.Farzanegan
  • 1 ارسال توسط F.Farzanegan

موضوع: پروژه کامل مثلث خیام در اسمبلی (پروژه مثلث پاسکال)

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 July
    محل سکونت
    قائمشهر
    ارسال ها
    410
    تشکر
    646
    تشکر شده 881 بار در 386 پست
    نوشته های وبلاگ
    6


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    پروژه کامل مثلث خیام در اسمبلی (پروژه مثلث پاسکال)

    سلام به دوستای خوبم. براتون تو این تاپیک برنامه مثلث خیام پاسکال رو قرار دادم.چون یکی از پروژه های خانم زحمتکش بوده .این ترم که گذشت ...........ولی امیدوارم به درد آیندگان بخوره.در واقع این کد بدون تابع(proc) و روال نوشته شده که برای ابتدای کار و فهم راحت تر برنامه خیلی کمک میکنه.در واقع اگه شما اینو درک کنید میتونید خودتون براحتی تابع و روال روبه برنامه اضافه کنید.مثلث خیام پاسکال به این صورت است که در خط اول همواره عدد1ودر خط دوم عدد1 1 ودر خط سوم1 2 1وبه همین صورت تا انتهای طول داده شده مثلث شکل میگیرد به این صورت:
    1

    11

    121

    1331

    14641
    در واقع اگر دقت کنید متوجه میشید که از مجموع دو عدد قبل و بعد عدد جدیدی بدست میاد ودر سطر بعدی نوشته میشود.
    اگه سوالی دارید بپرسید اگه بتونم حتما جواب میدم.موفق باشید.


    TITLE 8086 Code Template (for EXE file)

    SSEG SEGMENT STACK 'STACK'
    DW 100h DUP(?)
    SSEG ENDS

    DSEG SEGMENT 'DATA'

    makers db 'Khayam Triangle- Saman.Rajabi & Fahimeh.Farzanegan & Mohsen.Vahabnia & Aliasghar.Jahanian-(11/90)','$'

    message db 'Enter Triangle Height:','$'

    line2 db ' 1 1','$'

    height1 db 2

    source db 20 dup(0)

    replace db 20 dup(0)

    divisor db 10

    num1 db ?
    num2 db ?
    num3 db ?

    enter db 3

    DSEG ENDS

    CSEG SEGMENT 'CODE'

    START PROC FAR

    PUSH DS
    MOV AX, 0
    PUSH AX

    MOV AX, DSEG
    MOV DS, AX
    MOV ES, AX


    ;begin Code

    mov source[0],1
    mov source[1],1

    Mov cx,0
    mov Ax,0
    mov BX,0
    ;------------------
    mov ah,09h
    lea dx,message
    int 21h

    mov ah,07h;vaghfe daryaft karakter
    int 21h
    sub al,48
    mov cl,al
    ;------------------line 1 and 2
    mov ah,02h
    mov bh,00
    mov dl,0
    mov dh,2
    int 10h

    mov ah,02h
    mov dl,20h
    int 21h

    mov ah,02h
    mov dl,31h
    int 21h

    mov ah,02h
    mov bh,00
    mov dl,0
    mov dh,3
    int 10h

    mov ah,09h
    lea dx,line2
    int 21h
    ;-----------------end line 1 and 2

    ;--------------------Begin Program Procedure

    NEXT:

    ;--------------terminate program condition
    cmp height1,cl
    jb begin

    mov ah,02h
    mov bh,00
    mov dl,0
    mov dh,20
    int 10h

    mov ah,09h
    lea dx,makers
    int 21h

    mov ah,07h
    int 21h;------------stop

    mov ah,4ch;----terminate program ,return os
    int 21h

    begin:
    mov ax,0

    ADD AL, source[BX]

    ADD AL,source[BX+1]



    cmp AL,0

    je Sort

    mov replace[bx+1],al

    inc bx

    jmp NEXT

    Sort:
    ;---------------sort= move replace items to source items

    mov replace[0],1
    ;-----------

    lea si,source
    lea di,replace

    resort:

    mov dh,[di]

    mov [si],dh

    cmp [si],0

    je print

    inc si
    inc di

    jmp resort

    print:;--------------------------Print Procedure

    inc height1
    ;increase height

    inc enter
    mov ah,02h
    mov bh,00
    mov dl,0;soton
    mov dh,[enter];sater
    int 10h

    lea si,replace

    again:
    mov ah,02h
    mov dl,20h;space
    int 21h


    mov ah,02h
    mov dl,[si]

    cmp [si],10

    jae twoDigit

    add dl,48
    int 21h



    inc si

    mov bx,0

    cmp [si],0

    je NEXT

    jmp again
    ;---------------

    twoDigit:

    cmp [si],100

    jae threeDigit

    mov al,[si]

    sub ah,ah;in khat dar taghsim sabet ast

    div divisor

    mov dh,ah

    mov ah,02h
    mov dl,al;kharej ghesmat
    add dl,48
    int 21h

    mov ah,02h
    mov dl,dh;baghimande
    add dl,48
    int 21h

    inc si
    jmp again

    threeDigit:

    mov al,[si]

    sub ah,ah

    div divisor

    mov num3,ah

    sub ah,ah

    div divisor

    mov num2,ah

    mov num1,al

    mov ah,02h
    mov dl,num1
    add dl,48
    int 21h

    mov ah,02h
    mov dl,num2
    add dl,48
    int 21h

    mov ah,02h
    mov dl,num3
    add dl,48
    int 21h

    inc si
    jmp again

    ;------------------------End Program Procedure
    RET
    START ENDP

    CSEG ENDS

    END START ; set entry point.[SIZE=3][FONT=b nazanin][/FONT][/SIZE]



    ویرایش توسط F.Farzanegan : 16th February 2012 در ساعت 08:07 PM
    Hossein این نویسه را میپسندد.
    برایت دعا می کنم که ای کاش خدا از تو بگیرد هر آنچه را که خدا را از تو می گیرد...






  2. #2
    مدیر بازنشسته
    تاریخ عضویت
    2011 July
    محل سکونت
    قائمشهر
    ارسال ها
    410
    تشکر
    646
    تشکر شده 881 بار در 386 پست
    نوشته های وبلاگ
    6


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    پروژه کامل مثلث خیام در اسمبلی- با استفاده از روال و تابع

    این یکی با تابع و روال نوشته شده :
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;; Mehdi Zarepour ;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    IntToStr macro para
    pusha;
    mov ax,para;
    mov cl,0;
    lea si,res;
    mov bl,10;

    next:
    div bl;
    mov [si],ah;
    inc si;
    inc cl;
    mov ah,0;
    cmp al,0;
    jnz next;
    dec si;

    again:
    mov dl,[si];
    add dl,48;
    mov ah,2;
    int 21h;

    dec si;
    dec cl;
    cmp cl,0;
    jnz again;
    ;;;
    mov dl,32;
    mov ah,2;
    int 21h;
    ;;;
    popa
    Chap endm

    ;;;; Stack Segment ;;;;
    stseg segment

    dw 32 dup(?)
    stseg ends

    ;;;; Data Segment ;;;;
    dtseg segment

    message1 db "--------------Mosalas Khayam------------","$"
    message2 db "Ertefa ra vared konid(1-14):","$"
    message3 db "Error","$"

    x dw 20 dup(0)
    res db 10 dup(0)

    y db 5 dup(0)
    result db 0

    dtseg ends

    ;;;; Code Segment ;;;;
    cdseg segment

    main proc Far
    Assume cs:cdseg,ds:dtseg,ss:stseg
    mov ax,dtseg;
    mov ds,ax;

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    mov ah,09h
    lea dx,message1
    int 21h
    call endline

    lea dx,message2
    int 21h

    call input
    cmp result,0
    je msg
    cmp result,15
    jb cmd


    msg:
    call endline
    lea dx,message3
    int 21h

    jmp payan
    cmd:
    mov cx,result; height
    call endline
    mov dx,1; tedad soton baray chap
    mov x,1; khone aval x=1
    mov bx,0; ertefa dar har marhale

    lbl:
    call khayam;
    call WrightLine;
    inc dx
    add bx,2
    loop lbl
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    payan:
    mov ah,1
    int 21h
    mov ah,4ch
    int 21h
    main endp

    cdseg ends
    ;;;;;New line proc;;;;;
    EndLine proc
    pusha;
    mov dl,10
    mov ah,2
    int 21h
    mov dl,13
    mov ah,2
    int 21h
    popa
    ret
    EndLine endp
    ;;;;;;;;;;;;;;;;;
    WrightLine proc
    pusha;
    mov cx,dx
    lea si,x
    label:
    IntToStr [si]
    inc si;
    inc si
    loop label
    call EndLine;
    popa
    ret
    WrightLine endp
    ;;;;;;;;;;;;;;;;;;;;
    Khayam proc
    pusha
    lea di,x; x: moteghayer asli
    mov cx,bx; bx:shomare satre jari
    cmp cx,0
    jz exit


    lbl2:
    add di,cx;
    mov ax,[di-2];
    add ax,[di];
    mov [di],ax;
    lea di,x;
    dec cx;
    dec cx;
    jnz lbl2

    exit:
    popa
    ret
    Khayam endp
    ;;;;;;;;;;;;;;;;;;;;;;;;;
    Input proc
    pusha
    mov ah,01h
    lea si,y
    mov cx,0
    mov dx,0
    nexti:
    int 21h
    mov [si],al
    inc si
    inc cl;
    cmp al,13
    jnz nexti

    dec cl
    mov ax,0
    mov bl,10
    lea si,y

    mov bh,cl
    againi:

    mov al,[si]
    sub al,48
    mov cl,bh
    dec cl
    cmp cl,0
    jz khoroji
    ;;;;;;;;;;;
    lbli:

    mul bl

    loop lbli
    ;;;;;;;;;;;;
    khoroji:
    add dl,al
    inc si
    dec bh
    jnz againi
    mov result,dl
    popa
    ret
    Input endp

    end main




    Hossein این نویسه را میپسندد.
    برایت دعا می کنم که ای کاش خدا از تو بگیرد هر آنچه را که خدا را از تو می گیرد...






 

 

کاربران برچسب خورده در این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 09:04 AM بر حسب GMT +4 می باشد.