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

موضوع: مشکل در استفاده از jmp ها

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


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

    مشکل در استفاده از jmp ها

    برنامه ای با زبان اسمبلی (به لطف دوستان) نوشتیم که میاد اطلاعات را با زدن علامت جمع در رشته هایی مجزا قرار میدهد اما وقتی علاماتی دیگر چون(*،%،-)را فعال میکنیم خطا میدهد که از محدوده خارج شدیم ، ما برای رفع این مشکل اومدیم گام بندی انجام دادیم یعنی چندین گام در نظر گرفتیم اما باز هم خطا میدهد،
    به شدت به پاسخ این سوال نیاز داریم ، ممنون میشیم پاسخ بدین، بااحترام

    فایل پیوست 19

    موضوعات مشابه:
    ویرایش توسط NIIT : 10th August 2011 در ساعت 02:49 PM دلیل: نامناسب بودن عنوان

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


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


    include io.h

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;macro;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    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



    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    CALCULATORSHAPE macro
    cls 16
    window 1,1,1,2,4
    window 2,1,6,2,9
    window 3,1,11,2,14
    window 4,1,16,2,19
    window 5,1,21,2,24
    ;-----------------------
    window 6,4,1,5,4
    window 7,4,6,5,9
    window 8,4,11,5,14
    window 10,4,16,5,19
    window 11,4,21,5,24
    ;----------------------
    window 12,7,1,8,4
    window 13,7,6,8,9
    window 14,7,11,8,14
    window 15,7,16,8,19
    window 9,7,21,8,24
    ;-------------------------
    window 65,17,4,20,21
    ;*****************************************
    gotoxy 2,2
    print_msg msg1
    gotoxy 7,2
    print_msg msg2
    gotoxy 12,2
    print_msg msg3
    gotoxy 17,2
    print_msg msg4
    gotoxy 22,2
    print_msg msg5
    ;------------------
    gotoxy 2,5
    print_msg msg6
    gotoxy 7,5
    print_msg msg7
    gotoxy 12,5
    print_msg msg8
    gotoxy 17,5
    print_msg msg9
    gotoxy 22,5
    print_msg msg0
    ;--------------------
    gotoxy 2,8
    print_msg msg10
    gotoxy 7,8
    print_msg msg11
    gotoxy 12,8
    print_msg msg12
    gotoxy 17,8
    print_msg msg13
    gotoxy 22,8
    print_msg msg14
    endm
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;stack segment;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    STACK SEGMENT
    Dw 100H DUP(?)
    STACK ENDS

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

    msg0 db '0',"$"
    msg1 db '1',"$"
    msg2 db '2',"$"
    msg3 db '3',"$"
    msg4 db '4',"$"
    msg5 db '5',"$"
    msg6 db '6',"$"
    msg7 db '7',"$"
    msg8 db '8',"$"
    msg9 db '9',"$"
    msg10 db '+',"$"
    msg11 db '-',"$"
    msg12 db '*',"$"
    msg13 db '%',"$"
    msg14 db '=',"$"
    DIGIT DB 0
    DIGIT1 DB 0
    DIGIT2 DB 0
    COUNTER DW 0
    COUNTER1 DW 0
    COUNTER2 DW 0
    ;ERRORMSG DB 'COLOR NOT DEFINED',0
    STRING Db 8 DUP(' '),0
    ;STRING1 DB 10 DUP(' '),0
    STRING2 DB 7 DUP(' '),0
    y Dw 10 DUP(' '),'$'
    vaziat db 0
    namad db 0
    capacity db 20 dup(0),0
    x dw 0,'$'
    of db 0

    status db 1
    operator db 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
    CALCULATORSHAPE
    ;;;;;;;;;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,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 nine1


    cmp al,11
    je zero1

    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

    cmp al,9 ;=
    call equalsign
    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
    ;---------------------------



    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
    ;----------------------------
    ; addsign:
    ; mov status,2
    ; mov operator,'+'
    ; mov counter,0
    ; jmp mouse

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



    ; subsign: ;???????????????
    ; mov status,2
    ; mov operator,'-'
    ; mov counter,0
    ; jmp mouse

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


    ; mulsign: ;???????????????
    ; mov status,2
    ; mov operator,'*'
    ; mov counter,0
    ; jmp mouse

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


    ; divsign: ;???????????????
    ; mov status,2
    ; mov operator,'%'
    ; mov counter,0
    ; jmp mouse

    ;-------------------------
    ; equalsign:
    ; jmp result


    ; result:
    ; cmp operator,'+'
    ; call do_add
    ; jmp mouse

    ; cmp operator,'-' ;???????????????
    ; call do_sub
    ; jmp mouse

    ; cmp operator,'*' ;???????????????
    ; call do_mul
    ; jmp mouse

    ; cmp operator,'%' ;???????????????
    ; call do_div
    ; jmp mouse

    ;




    ;do_add:
    ; jmp mouse
    ; atoi string2
    ; atoi string
    ; mov ax,string2
    ; add ax,string
    ; gotoxy 8,20
    ; itoa y,ax
    ; mov ah,09h
    ; lea dx,y
    ; int 21h

    ;mov ah,01h ;getch
    ;int 21h


    ;do_sub: ;???????????????
    ;jmp mouse


    ;do_mul: ;???????????????
    ; jmp mouse



    exit:


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

    pop ax
    mov ah,0
    int 10h

    mov ax,4c00h
    int 21h
    main endp

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;function;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;=======================================
    ;================= ADD =================
    do_add proc

    ret
    do_add endp
    ;=======================================
    ;================= SUB =================
    do_sub proc

    ret
    do_sub endp
    ;=======================================
    ;================= MUL =================
    do_mul proc


    ret
    do_mul endp
    ;=======================================
    ;================= DIV =================
    do_div proc


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

    ;=======================================
    subsign proc ;?????????
    mov status,2
    mov operator,'-'
    mov counter,0

    ret
    subsign endp
    ;=======================================
    mulsign proc ;?????
    mov status,2
    mov operator,'*'
    mov counter,0
    ret
    mulsign endp
    ;=======================================
    divsign proc ;?????
    mov status,2
    mov operator,'%'
    mov counter,0
    ret
    divsign endp
    ;=======================================
    equalsign proc
    call result
    ret
    equalsign endp
    ;=======================================
    result proc
    cmp operator,'+'
    call do_add
    jmp exit_proc

    cmp operator,'-' ;???????????????
    call do_sub
    jmp exit_proc

    cmp operator,'*' ;???????????????
    call do_mul
    jmp exit_proc

    cmp operator,'%' ;???????????????
    call do_div
    exit_proc:
    ret
    result endp
    ;=======================================
    ;=======================================
    GETDigit PROC

    CMP STATUS, 1
    JG NUM2
    LEA DI, STRING
    LEA SI, STRING
    JMP RESTOFCODE
    NUM2:
    LEA DI,STRING2
    LEA SI,STRING2
    RESTOFCODE:
    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
    ;;;;;;;;;;;;;;;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 و F.Farzanegan این را میپسندند
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


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




 

 

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

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

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

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

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

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


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