صفحه 3 از 6 اولیناولین 123456 آخرینآخرین
نمایش نتایج: از شماره 21 تا 30 از مجموع 57
Like Tree5نفر پسندیدند

موضوع: مشکل در جمع اعداد

  1. #21
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    تو بخش equal
    ADD operator,30h 

    کو؟ چرا حذفش کردید ؟
    لطفا رو همون کدی که بهتون دادم توابع تقسیم و ضرب و کم رو کامل کنید و تست کنید . و نتیجه رو اعلام کنید

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  2. #22
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط NIIT نمایش پست ها
    فایل پیوست 30سلام سوالی از خدمتتون داشتم ،همونطور که شما فرمودین ما توابعی رو که بیان داشتین انجام دادیم ، توابع کار میکنن اما وقتی همه اون متدها رو باهم فعال میکنیم برنامه رو برامون نمیتونه اجرا کنه و یکی از عملیاتها رو انتخاب میکنه و دیگه به خواسته کاربر توجهی نداره و فقط اونی رو که بطور ثابت در نظر گرفته انجام میده ، مثلا عملیات جمع رو نگه میداره و کار نداره که کاربر تقسیم یا ضرب و یا تفریق رو انتخاب کرده، برنامه رو خدمتتون میفرستم ممنون میشم نگاهی بیاندازین و راهنمایی بفرمایین، بااحترام
    من تو پست قبلیم یه سوال ازتون کردم و بعد گفتم اون کدی که بهتون دادم رو سعی کنید کاملش کنید . ببنید باز ارور دارید یا نه .
    من سرم شلوغ شده و سریع نمیتونم بکارتون برسم پس خودتونم کمی کمک کنید که کارا سریعتر پیش بره .
    این کاری که گفتمو انجام بدید نتیجشو بهم بگید ببینم چیکار باید بکنید.

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  3. #23
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


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


    ;;;;;;;;;SEE WHICH BUTTON(COLOR) WAS CLICKED;;;

    cmp al,9
    je godown ;equalsign
    ;jmp mouse

    cmp al,1
    je one

    cmp al,2
    je two

    cmp al,3
    je three

    cmp al,4
    je four


    cmp al,5
    je five


    cmp al,6
    je six


    cmp al,7
    je seven


    cmp al,8
    je eight


    cmp al,10
    je nine


    cmp al,11
    je zero



    ;cmp al,13;;;;;;
    ;call subsign ;
    ;jmp mouse ;
    ;


    cmp al,14 ;
    call mulsign ;
    jmp mouse ;
    ;
    ;
    ;cmp al,15 ;
    ;call divsign ;;;;;;;;;>> ba seda kardane tavabe miad alamat gozari anjam midahad
    jmp mouse ;
    ;
    ;cmp al,12 ;
    ;call addsign ;
    ;jmp mouse ;



    nine1:
    jmp nine
    zero1:
    jmp zero



    ;--------------------------

    one:
    mov digit,'1'
    call getdigit
    jmp mouse
    ;----------------------------

    two:
    mov digit,'2'
    call getdigit
    jmp mouse
    ;---------------------------

    three:
    mov digit,'3'
    call getdigit
    jmp mouse
    ;---------------------------

    goDown:
    call equalsign ;do_add;
    jmp mouse

    ;--------------------------

    four:
    mov digit,'4'
    call getdigit
    jmp mouse
    ;--------------------------


    five:
    mov digit,'5'
    call getdigit
    jmp mouse
    ;----------------------------


    six:
    mov digit,'6'
    call getdigit
    jmp mouse
    ;----------------------------



    seven:
    mov digit,'7'
    call getdigit
    jmp mouse
    ;----------------------------




    eight:
    mov digit,'8'
    call getdigit
    jmp mouse
    ;----------------------------




    nine:
    mov digit,'9'
    call getdigit
    jmp mouse
    ;----------------------------


    zero:
    mov digit,'0'
    call getdigit
    jmp mouse
    ;---------------------------


    exit:


    ;;;;;;;;;;ReStore Graphic Mode;;;;;;;;;;;;

    pop ax
    mov ah,0
    int 10h

    mov ax,4c00h
    int 21h
    main endp

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;function;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;=============addsign==============;;;;;;;;
    ;
    ;addsign proc ;
    ;mov status,2 ;
    ;mov operator,'+' ;
    ;mov counter,0 ;
    ;ret
    ;addsign endp ;
    ;
    ;=============subsign============== ;
    ;
    ;subsign proc ;
    ;mov status,2 ;
    ;mov operator,'-'

    ;mov ah,02h
    ;mov dl,operator
    ;int 21h

    ;mov counter,0 ;
    ;ret ;
    ;subsign endp ;
    ;
    ;=============mulsign============== ;
    ;
    mulsign proc ;
    mov status,2 ;
    mov operator,'*'
    mov ah,02h
    mov dl,operator
    int 21h ;;;;;;;;;>> anjame amaliate alamat gozari
    mov counter,0 ;
    ret ;
    mulsign endp ;
    ;
    ;===============divsign============ ;
    ;
    ;divsign proc ;
    ;mov status,2 ;
    ;mov operator,'%'
    ;mov ah,02h
    ;mov dl,operator
    ;int 21h ;
    ;mov counter,0 ;
    ;ret ;
    ;divsign endp ;
    ;
    ;==============equalsign=========== ;
    ;
    equalsign proc

    ;cmp operator,'+'
    ;je do_add1


    ;cmp operator,'-'
    ;je do_sub1

    cmp operator,'*'
    je do_mul1

    ;cmp operator,'%'
    ;je do_div1

    ;do_add1:
    ;call do_add
    ;jmp exit_proc

    ;do_sub1:
    ;call do_sub
    ;jmp exit_proc

    do_mul1:
    call do_mul
    jmp exit_proc

    ;do_div1:
    ;call do_div
    ;jmp exit_proc
    exit_proc:
    ret

    equalsign endp
    ;
    ;==================================;;;;;;;;
    ;do_add PROC

    ;atoi string ;
    ;mov bx,ax ;
    ;atoi string2 ;
    ;;add ax,bx ;
    ;itoa cresult,ax
    ;gotoxy 20,20
    ;lea si,cresult
    ;call puts

    ;ret ;s is not recognized as an internal or external command,operable program or batch file.
    ;do_add ENDP

    ;==========================================

    ;do_sub PROC

    ;atoi string ;
    ;mov bx,ax ;
    ;atoi string2 ;
    ;sub bx,ax ;
    ;itoa cresult,bx
    ;gotoxy 10,20
    ;lea si,cresult
    ;call puts

    ;ret
    ;do_sub ENDP

    ;===========================================

    do_mul PROC

    atoi string ;
    mov bx,ax ;
    atoi string2 ;
    imul bx ;
    itoa cresult,ax
    gotoxy 10,20
    lea si,cresult
    call puts

    ret
    do_mul ENDP

    ;===================================

    ;do_div PROC

    ;atoi string ;
    ;mov bx,ax ;
    ;atoi string2
    ;xchg ax,bx
    ;cwd ;
    ;idiv bx ;
    ;itoa cresult,ax
    ;gotoxy 10,20
    ;lea si,cresult
    ;call puts

    ;ret
    ;do_div ENDP
    ;=================get digit========;;;;;;;;
    ;
    GETDigit PROC ;
    ;
    CMP STATUS, 1 ;
    JG NUM2 ;
    LEA DI, STRING ;
    LEA SI, STRING ;
    JMP RESTOFCODE ;
    NUM2: ;
    LEA DI,STRING2 ;
    LEA SI,STRING2 ;
    RESTOFCODE: ;;;;;>> makani ke reshteha va etelaate morede nazar ra dar khod daryaft mikonad
    MOV DL,DIGIT ;
    MOV BX,COUNTER ;
    CMP BX,8 ;
    JG Ex ;
    MOV BYTE PTR[DI+BX] , DL ;
    INC BX ;
    MOV COUNTER ,BX ;
    GOTOXY 8,20 ;
    CALL PUTS ;
    Ex: ;
    RET ;
    GETDigit ENDP ;
    ;
    ;===================================;;;;;;;


    ویرایش توسط NIIT : 15th August 2011 در ساعت 11:18 PM

  4. #24
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    بر اساس صحبت هایی که در پیام خصوصی کردید در مورد مشکلتون هم باید بگم زیر هر فراخونی تابع یه jmp هست درسته ؟ این جامپها همه رو غیر فعال کنید به غیر از اخرین jmp
    یعنی یک همچین چیزی دارید شما:


    CMP AL,13
    CALL SUBSIGN
    JMP MOUSE



    CMP AL,14
    CALL MULSIGN
    JMP MOUSE

    CMP AL,15
    CALL DIVSIGN
    JMP MOUSE

    CMP AL,12
    CALL ADDSIGN


    JMP MOUSE ;


    به غیر از اخرین جامپ که بعد از ADDSIGN هست بقیه رو کامنت کنید . دلیل این که این اتفاق براتون می افته همینه . چون وقتی به اولین مقایسه میرسه اگر برابر بود تابع مربوطه فراخونی میشه و اگر نبود دوباره میپره به ابتدای تابع! باز دوباره میاد رنگها رو چک کنه به اولی که میرسه میبینه نیست دوباره میپره میاد اول موس و الی اخر و اینطور هست که مشکل ایجاد میشه .
    این اشتباه از طرف من بود و بخاطر کم حواسی من براتون بوجود اومد شرمنده . خوب شد یاداوری کردید اصلا بهش توجه نکرده بودم .

    فقط یه نکته دیگه اگر دیدید اتفاقهای عجیب غریبی می افته تو برنامتون بعد از این تغییرات وارد هر تابع که میشید ابتدای اون تابع از push regs استفاده کنید و وقتی میخواید Ret کنید . دقیقا قبل از دستور Ret شما pop regs کنید . اینها رو نوشتم و توی کدتون هست .
    امیدوارم موفق باشید .

    NIIT این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  5. #25
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نه....، دوباره نشد آقای master ، من اونطوری که شما فرموده بودین رو انجام دادم ، اول بار که همه jmpها جز jmp مربوط به addsign رو coment کردم ، اومد عملیات جمع رو انجام داد اما وقتی خواستم عملیاتای دیگه ای رو دوباره بعد از باز کردن برنامه جدید امتحان کنم دیدم دوباره جمع رو انجام میده ، روی این حساب اومدم عملیات جمع رو coment کردم و بعد از امتحان دوباره دیدم که دوباره اومد همون کار قبلی رو که خدمتتون عرض کرده بودم انجام داد، یعنی اومد از اول چک کرد به اولین مقایسه که رسید اومد operator رو متناسب با اون مقدار دهی کرد و عملیات رو انجام داد بدون توجه به خواسته کاربر . تصور میکنم اینطور باشه و اگه نظرم اشتباه هست بفرمایید تا دنبال ایده ی دیگه ای باشم ، اینکه :
    باتوجه به گفته ای که خدمتتون گفتم من به این نتیجه رسیدم که operator نمیاد به خوسته کاربر توجهی داشته باشه و میاد براساس ترتیبی که از بالا به پایین چک میکنه مقدار operator رو قرار میده ،یعنی operator یه ظرفه که وقتی بار اول پر بشه دیگه خالی نمیشه ، یعنی بار اول که مقدارش صفر بود میاد مقدار میذاره و دیگه همون مقدار در اون fix ، ثابت میمونه، پس ما باید کاری کنیم که بیاد بعد از هر بار خواسته کاربر مقدار operator رو صفر کنه و گوش به زنگ خواسته کاربر باشه ، و باید الان دنبال این جایگاه باشم (جایگاهی مناسب که بتونه مقدار oprerator رو صفر کنه)، فقط سوالی که برام الان ایجاد شده اینه که ، وقتی برنامه بسته میشه و دوباره run میشه چرا باید برنامه همون مقدار قبلی ای که operator داشته رو انجام بده؟

    ممنون میشم راهنمایی بفرمایین
    بااحترام از شما



    ;;;;;;;;;;;READ PIXEL UNDER CURSOR;;;;;;;;;

    dec cx
    mov ah,0dh
    mov bh,0
    int 10h
    inc cx
    ;;;;;;;;;SEE WHICH BUTTON(COLOR) WAS CLICKED;;;

    cmp al,9
    je godown ;equalsign
    ;jmp mouse

    cmp al,1
    je one

    cmp al,2
    je two

    cmp al,3
    je three

    cmp al,4
    je four


    cmp al,5
    je five


    cmp al,6
    je six


    cmp al,7
    je seven


    cmp al,8
    je eight


    cmp al,10
    je nine


    cmp al,11
    je zero



    cmp al,13;;;;;;
    call subsign ;
    ;jmp mouse ;
    ;


    cmp al,14 ;
    call mulsign ;
    ;jmp mouse ;
    ;
    ;
    cmp al,15 ;
    call divsign ;;;;;;;;;>> ba seda kardane tavabe miad alamat gozari anjam midahad
    ;jmp mouse ;
    ;
    ;cmp al,12 ;
    ;call addsign ;
    jmp mouse ;



    nine1:
    jmp nine
    zero1:
    jmp zero



    ;--------------------------

    one:
    mov digit,'1'
    call getdigit
    jmp mouse
    ;----------------------------

    two:
    mov digit,'2'
    call getdigit
    jmp mouse
    ;---------------------------

    three:
    mov digit,'3'
    call getdigit
    jmp mouse
    ;---------------------------

    goDown:
    call equalsign ;do_add;
    jmp mouse

    ;--------------------------

    four:
    mov digit,'4'
    call getdigit
    jmp mouse
    ;--------------------------


    five:
    mov digit,'5'
    call getdigit
    jmp mouse
    ;----------------------------


    six:
    mov digit,'6'
    call getdigit
    jmp mouse
    ;----------------------------



    seven:
    mov digit,'7'
    call getdigit
    jmp mouse
    ;----------------------------




    eight:
    mov digit,'8'
    call getdigit
    jmp mouse
    ;----------------------------




    nine:
    mov digit,'9'
    call getdigit
    jmp mouse
    ;----------------------------


    zero:
    mov digit,'0'
    call getdigit
    jmp mouse
    ;---------------------------


    exit:


    ;;;;;;;;;;ReStore Graphic Mode;;;;;;;;;;;;

    pop ax
    mov ah,0
    int 10h

    mov ax,4c00h
    int 21h
    main endp

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;function;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;=============addsign==============;;;;;;;;
    ;
    ;addsign proc ;
    ;mov status,2 ;
    ;mov operator,'+' ;
    ;mov counter,0 ;
    ;ret
    ;addsign endp ;
    ;
    ;=============subsign============== ;
    ;
    subsign proc ;
    mov status,2 ;
    mov operator,'-'

    ;mov ah,02h
    ;mov dl,operator
    ;int 21h

    mov counter,0 ;
    ret ;
    subsign endp ;
    ;
    ;=============mulsign============== ;
    ;
    mulsign proc ;
    mov status,2 ;
    mov operator,'*'
    ;mov ah,02h
    ;mov dl,operator
    ;int 21h ;;;;;;;;;>> anjame amaliate alamat gozari
    mov counter,0 ;
    ret ;
    mulsign endp ;
    ;
    ;===============divsign============ ;
    ;
    divsign proc ;
    mov status,2 ;
    mov operator,'%'
    ;mov ah,02h
    ;mov dl,operator
    ;int 21h ;
    mov counter,0 ;
    ret ;
    divsign endp ;
    ;
    ;==============equalsign=========== ;
    ;
    equalsign proc

    ;cmp operator,'+'
    ;je do_add1


    cmp operator,'-'
    je do_sub1

    cmp operator,'*'
    je do_mul1

    cmp operator,'%'
    je do_div1

    ;do_add1:
    ;call do_add
    ;jmp exit_proc

    do_sub1:
    call do_sub
    jmp exit_proc

    do_mul1:
    call do_mul
    jmp exit_proc

    do_div1:
    call do_div
    jmp exit_proc
    exit_proc:
    ret

    equalsign endp
    ;
    ;==================================;;;;;;;;
    ;do_add PROC
    ;pushreg
    ;atoi string ;
    ;mov bx,ax ;
    ;atoi string2 ;
    ;add ax,bx ;
    ;itoa cresult,ax
    ;gotoxy 20,20
    ;lea si,cresult
    ;call puts
    ;popreg
    ;ret ;s is not recognized as an internal or external command,operable program or batch file.
    ;do_add ENDP

    ;==========================================

    do_sub PROC
    pushreg
    atoi string ;
    mov bx,ax ;
    atoi string2 ;
    sub bx,ax ;
    itoa cresult,bx
    gotoxy 10,20
    lea si,cresult
    call puts
    popreg
    ret
    do_sub ENDP

    ;===========================================

    do_mul PROC
    pushreg
    atoi string ;
    mov bx,ax ;
    atoi string2 ;
    imul bx ;
    itoa cresult,ax
    gotoxy 10,20
    lea si,cresult
    call puts
    popreg
    ret
    do_mul ENDP

    ;===================================

    do_div PROC
    pushreg
    atoi string ;
    mov bx,ax ;
    atoi string2
    xchg ax,bx
    cwd ;
    idiv bx ;
    itoa cresult,ax
    gotoxy 10,20
    lea si,cresult
    call puts
    popreg
    ret
    do_div ENDP
    ;=================get digit========;;;;;;;;
    ;
    GETDigit PROC ;
    ;
    CMP STATUS, 1 ;
    JG NUM2 ;
    LEA DI, STRING ;
    LEA SI, STRING ;
    JMP RESTOFCODE ;
    NUM2: ;
    LEA DI,STRING2 ;
    LEA SI,STRING2 ;
    RESTOFCODE: ;;;;;>> makani ke reshteha va etelaate morede nazar ra dar khod daryaft mikonad
    MOV DL,DIGIT ;
    MOV BX,COUNTER ;
    CMP BX,8 ;
    JG Ex ;
    MOV BYTE PTR[DI+BX] , DL ;
    INC BX ;
    MOV COUNTER ,BX ;
    GOTOXY 8,20 ;
    CALL PUTS ;
    Ex: ;
    RET ;
    GETDigit ENDP ;
    ;
    ;===================================;;;;;;;


    ویرایش توسط NIIT : 16th August 2011 در ساعت 01:40 AM

  6. #26
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    شما تو تعریف متغییرتون مقدار پیشفرض operator + هست . اونو بردارید دوباره تست کنید . ( این در مورد اینکه فکر میکنید بعد از اینکه برنامه رو میبنید بازم اپراتور مقدارش حفظ میشه! )
    در مورد اینکه اپراتورها دریافت نمیشن میتونید یه کاری کنید . تو هر کدوم از توابعی که علامت اپراتور باید تغییر کنه (مثل subsign و سه تای دیگه )مقدار جدید اپراتور رو چاپ کنید . اینطور میتونید بفهمید که آیا اصلا مقادیر اپراتور در طول برنامه تغییر میکنن یا نه .
    نتیجش رو بگید تا بعد ببینم چیکار باید کرد.
    بعد نکته دیگه اینکه چرا شما تو تابع

    ;
    equalsign proc

    ;cmp operator,'+'
    ;je do_add1


    cmp operator,'-'
    je do_sub1

    cmp operator,'*'
    je do_mul1

    cmp operator,'%'
    je do_div1

    ;do_add1:
    ;call do_add
    ;jmp exit_proc

    do_sub1:
    call do_sub
    jmp exit_proc

    do_mul1:
    call do_mul
    jmp exit_proc

    do_div1:
    call do_div
    jmp exit_proc
    exit_proc:
    ret

    equalsign endp



    ابتدای تابع این دستور
        ADD OPERATOR,30H
    رو حذف کردین ؟

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  7. #27
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    الان همین کاری که فرمودین رو انجام دادم ، به ازای هر بار کلیکی که روی هر کدوم از عملیاتها انجام میدم میاد هر سه نماد +،*،% رو نمایش میده و در آخر میاد کار تفریق رو انجام میده

    ;;;;;;;;;SEE WHICH BUTTON(COLOR) WAS CLICKED;;;

    cmp al,9
    je godown ;equalsign
    ;jmp mouse

    cmp al,1
    je one

    cmp al,2
    je two

    cmp al,3
    je three

    cmp al,4
    je four


    cmp al,5
    je five


    cmp al,6
    je six


    cmp al,7
    je seven


    cmp al,8
    je eight


    cmp al,10
    je nine


    cmp al,11
    je zero



    cmp al,13;;;;;;
    call subsign ;
    ;jmp mouse ;
    ;


    cmp al,14 ;
    call mulsign ;
    ;jmp mouse ;
    ;
    ;
    cmp al,15 ;
    call divsign ;;;;;;;;;>> ba seda kardane tavabe miad alamat gozari anjam midahad
    ;jmp mouse ;
    ;
    ;cmp al,12 ;
    ;call addsign ;
    jmp mouse ;



    nine1:
    jmp nine
    zero1:
    jmp zero



    ;--------------------------

    one:
    mov digit,'1'
    call getdigit
    jmp mouse
    ;----------------------------

    two:
    mov digit,'2'
    call getdigit
    jmp mouse
    ;---------------------------

    three:
    mov digit,'3'
    call getdigit
    jmp mouse
    ;---------------------------

    goDown:
    call equalsign ;do_add;
    jmp mouse

    ;--------------------------

    four:
    mov digit,'4'
    call getdigit
    jmp mouse
    ;--------------------------


    five:
    mov digit,'5'
    call getdigit
    jmp mouse
    ;----------------------------


    six:
    mov digit,'6'
    call getdigit
    jmp mouse
    ;----------------------------



    seven:
    mov digit,'7'
    call getdigit
    jmp mouse
    ;----------------------------




    eight:
    mov digit,'8'
    call getdigit
    jmp mouse
    ;----------------------------




    nine:
    mov digit,'9'
    call getdigit
    jmp mouse
    ;----------------------------


    zero:
    mov digit,'0'
    call getdigit
    jmp mouse
    ;---------------------------


    exit:


    ;;;;;;;;;;ReStore Graphic Mode;;;;;;;;;;;;

    pop ax
    mov ah,0
    int 10h

    mov ax,4c00h
    int 21h
    main endp

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;function;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;=============addsign==============;;;;;;;;
    ;
    ;addsign proc ;
    ;mov status,2 ;
    ;mov operator,'+' ;
    ;mov counter,0 ;
    ;ret
    ;addsign endp ;
    ;
    ;=============subsign============== ;
    ;
    subsign proc ;
    mov status,2 ;
    mov operator,'-'

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

    mov counter,0 ;
    ret ;
    subsign endp ;
    ;
    ;=============mulsign============== ;
    ;
    mulsign proc ;
    mov status,2 ;
    mov operator,'*'
    mov ah,02h
    mov dl,operator
    int 21h ;;;;;;;;;>> anjame amaliate alamat gozari
    mov counter,0 ;
    ret ;
    mulsign endp ;
    ;
    ;===============divsign============ ;
    ;
    divsign proc ;
    mov status,2 ;
    mov operator,'%'
    mov ah,02h
    mov dl,operator
    int 21h ;
    mov counter,0 ;
    ret ;
    divsign endp ;
    ;
    ;==============equalsign=========== ;
    ;
    equalsign proc

    add operator,30h
    ;cmp operator,'+'
    ;je do_add1


    cmp operator,'-'
    je do_sub1

    cmp operator,'*'
    je do_mul1

    cmp operator,'%'
    je do_div1

    ;do_add1:
    ;call do_add
    ;jmp exit_proc

    do_sub1:
    call do_sub
    jmp exit_proc

    do_mul1:
    call do_mul
    jmp exit_proc

    do_div1:
    call do_div
    jmp exit_proc
    exit_proc:
    ret

    equalsign endp
    ;
    ;==================================;;;;;;;;
    ;do_add PROC
    ;pushreg
    ;atoi string ;
    ;mov bx,ax ;
    ;atoi string2 ;
    ;add ax,bx ;
    ;itoa cresult,ax
    ;gotoxy 20,20
    ;lea si,cresult
    ;call puts
    ;popreg
    ;ret ;s is not recognized as an internal or external command,operable program or batch file.
    ;do_add ENDP

    ;==========================================

    do_sub PROC
    pushreg
    atoi string ;
    mov bx,ax ;
    atoi string2 ;
    sub bx,ax ;
    itoa cresult,bx
    gotoxy 10,20
    lea si,cresult
    call puts
    popreg
    ret
    do_sub ENDP

    ;===========================================

    do_mul PROC
    pushreg
    atoi string ;
    mov bx,ax ;
    atoi string2 ;
    imul bx ;
    itoa cresult,ax
    gotoxy 10,20
    lea si,cresult
    call puts
    popreg
    ret
    do_mul ENDP

    ;===================================

    do_div PROC
    pushreg
    atoi string ;
    mov bx,ax ;
    atoi string2
    xchg ax,bx
    cwd ;
    idiv bx ;
    itoa cresult,ax
    gotoxy 10,20
    lea si,cresult
    call puts
    popreg
    ret
    do_div ENDP
    ;=================get digit========;;;;;;;;
    ;
    GETDigit PROC ;
    ;
    CMP STATUS, 1 ;
    JG NUM2 ;
    LEA DI, STRING ;
    LEA SI, STRING ;
    JMP RESTOFCODE ;
    NUM2: ;
    LEA DI,STRING2 ;
    LEA SI,STRING2 ;
    RESTOFCODE: ;;;;;>> makani ke reshteha va etelaate morede nazar ra dar khod daryaft mikonad
    MOV DL,DIGIT ;
    MOV BX,COUNTER ;
    CMP BX,8 ;
    JG Ex ;
    MOV BYTE PTR[DI+BX] , DL ;
    INC BX ;
    MOV COUNTER ,BX ;
    GOTOXY 8,20 ;
    CALL PUTS ;
    Ex: ;
    RET ;
    GETDigit ENDP ;
    ;
    ;===================================;;;;;;;



  8. #28
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    سلام، وقتتون بخیر، متاسفانه ما هنوز نتونستیم به جوابی برای سوال قبلیمون برسیم،با این حال در انجام باقی پروژه به یه سوال دیگه ای که برامون ایجاد شده ،اینه که ما میخوایم یه menu طراحی کنیم که میاد غالب کلی رو در خودش نگه داره و وقتی اومدیم روی دکمه مورد نظر کلیک کردیم بیاد مثلا منوی file رو بهمون نشون بده اما وقتی میخوایم براش تعیین کنیم که با زدن این رنگ بیا این کار رو انجام بده ، اون قسمتی که علامت سوال گذاشتیم در اون قسمت اذیت میکنه و برامون انجام نمیده
    ممنون میشم راهنمایی کنین

    include io.h

    ;;;;;;;;;;;;;macro;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;-------------------------------------------
    ;;;;;;;;;;;;;;;;;;Button;;;;;;;;;;;;;;;;
    window macro color,x1,y1,x2,y2
    mov ah,06h
    mov bh,color
    mov ch,x1
    mov cl,y1
    mov dh,x2
    mov dl,y2
    int 10h
    endm
    ;;;;;;;;;;;;;;;save registers;;;;;;;;;;;;;;;
    pushreg macro
    push ax
    push bx
    push cx
    push dx
    endm
    ;;;;;;;;;;;;;;;;loads registers;;;;;;;;;;;;;;
    popreg macro
    pop dx
    pop cx
    pop bx
    pop ax
    endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    print_msg macro msg
    mov dx,offset msg
    mov ah,9h
    int 21h
    endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    gotoxy macro x1,y1
    mov ah,2
    mov dl,x1
    mov dh,y1
    mov bh,0
    int 10h
    endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    cls macro color
    mov ax,0600h
    mov bh,color
    mov cx,0000h
    mov dx,204fh
    int 10h
    endm

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    delay macro time
    local lbldelay2
    local lbldelay1
    local lbldelay0

    mov bx,time
    lbldelay2:
    mov dx,time
    lbldelay1:
    mov cx,time
    lbldelay0:
    nop
    loop lbldelay0
    dec dx
    jnz lbldelay1
    dec bx
    jnz lbldelay2
    endm



    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    MENUSHAPE macro
    cls 16
    window 18,4,20,7,35;file
    window 30,4,42,7,57;excute

    ;window 19,8,20,11,35;open
    ;window 20,12,20,15,35;save
    ;window 25,16,20,19,35;search

    window 35,8,42,11,57
    window 40,12,42,15,57
    ;---------------------------------
    gotoxy 27,6
    print_msg msg15 ;file

    ;gotoxy 27,10
    ;print_msg msg16 ;open
    ;gotoxy 27,14
    ;print_msg msg17 ;save
    ;gotoxy 27,18
    ;print_msg msg18 ;search
    ;------------------
    gotoxy 47,6
    print_msg msg19 ;calculator

    gotoxy 45,10
    print_msg msg20 ;excute
    gotoxy 50,14
    print_msg msg21 ;exit
    endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    menufile macro
    cls 16
    window 19,8,20,11,27
    window 20,12,20,15,27
    window 25,16,20,19,27


    gotoxy 27,10
    print_msg msg16 ;open
    gotoxy 27,14
    print_msg msg17 ;save
    gotoxy 27,18
    print_msg msg18 ;search

    endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;menuexcute macro
    ;cls 16
    ;window 35,8,30,11,37
    ;window 40,12,30,15,37

    ;endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;stack segment;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    STACK SEGMENT
    Dw 100H DUP(?)
    STACK ENDS

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;data segment;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    data segment

    msg15 db 'file',"$"
    msg16 db 'open',"$"
    msg17 db 'save',"$"
    msg18 db 'search',"$"
    msg19 db 'excute',"$"
    msg20 db 'calculator',"$"
    msg21 db 'exit',"$"
    ;operator db 'very very good'
    DIGIT DB 0
    STRING DB 10 DUP('0'),0
    counter dw 0

    data ends

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;code segment;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    code segment
    main proc far
    assume cs:code,ds:data,ss:stack
    mov ax,seg data
    mov ds,ax
    ;;;;;;;;;;;;Get Current Graphic Mode;;;;;;;;;
    mov ah,0fh
    int 10h
    mov ah,0
    push ax
    ;;;;;;;;;;;;new Graphic Mode;;;;;;;;;;;;;;;;;
    mov ah,00h
    mov al,12h
    int 10h

    MENUSHAPE

    ;;;;;;;;;Show Mouse;;;;;;;;;;;;;;
    mov ax,01h
    int 33h
    mouse:
    mov ax,03h;; mode grafici
    int 33h



    pushreg
    delay 500
    popreg


    cmp bx,0001h
    jne mouse
    ;;;;;;;;;;;READ PIXEL UNDER CURSOR;;;;;;;;;

    dec cx
    mov ah,0dh
    mov bh,0
    int 10h
    inc cx
    ;;;;;;;;;SEE WHICH BUTTON(COLOR) WAS CLICKED;;;

    cmp al,18
    je file ;equalsign
    jmp mouse

    file:
    menufile ;????
    jmp mouse

    ;;;;;;;;;;ReStore Graphic Mode;;;;;;;;;;;;

    pop ax
    mov ah,0
    int 10h

    mov ax,4c00h
    int 21h
    main endp



    ;;;;;;;;;;;;;;;putc;;;;;;;;;;;;;;;;;;;

    putc proc
    push ax
    push bx
    mov ah,0eh
    mov bl,07h
    mov bh,00h
    int 10h
    pop bx
    pop ax
    ret
    putc endp
    ;;;;;;;;;;;;;;;puts;;;;;;;;;;;;;;;;;;;

    puts proc
    push ax

    _put:
    lodsb
    cmp al,0
    jz _exit
    call putc
    jmp _put

    _exit:
    pop ax
    ret
    puts endp
    ;==============end code=============

    code ends
    end main


    ویرایش توسط NIIT : 16th August 2011 در ساعت 09:43 PM

  9. #29
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    اون مشکل اولتون رو که من هم هنوز نفهمیدم چرا اینطوریه!
    در مورد مشکل دومتون علامت سوال کجاست ؟

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  10. #30
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    سلام،وقتتون بخیر
    see which button(color) was clicked
    در این قسمت علامت سوال گذاشتیم
    بااحترام


 

 
صفحه 3 از 6 اولیناولین 123456 آخرینآخرین

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

کلمات کلیدی این موضوع

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

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

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

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


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