نمایش نتایج 1 تا 9 از 9

نام تاپیک: درخواست راهنمايي درخصوص كداسمبلي حاضر

  1. #1
    کاربر جدید
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    پست
    14

    درخواست راهنمايي درخصوص كداسمبلي حاضر

    با سلام بنده اين كد را نوشته ام ؛
    مي خواهم خروجي برنامه را ببينم ؛ لطفاً راهنمايي لازم را مبذول نمائيد:
    PAGE 110,100
    TITLE 'REVERSE.ASM' REVERSE THE LISTS
    .STACK 200
    .DATA
    LIST_1 DB 10 DUP(?)
    LIST_2 DB 10,9,8,7,6,5,4,3,2,1
    .CODE
    MAIN PROC FAR
    MOV AX,@DATA
    MOV DS,AX
    LEA SI,LIST_2
    LEA DI,LIST_1
    MOV CX,9
    LOOP1:;
    INC SI
    LOOP LOOP1
    MOV CX,10
    LOOP2:
    MOV AL,[SI]
    MOV [DI],AL
    DEC SI
    INC DI
    DEC CX
    JNZ LOOP2
    ;-=-=-=-=-=-=-=-=-=-=-=
    MOV AX,4C00H
    INT 21H
    MAIN ENDP
    END MAIN

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    چیزی چاپ نکردید! چی رو میخواهید ببینید؟

  3. #3
    کاربر جدید
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    پست
    14

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    نقل قول نوشته شده توسط tdkhakpur مشاهده تاپیک
    چیزی چاپ نکردید! چی رو میخواهید ببینید؟
    مي دانم چيزي چاپ نكرده ام مي خواهم چاپ كنم تا ببينم

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    مي دانم چيزي چاپ نكرده ام مي خواهم چاپ كنم تا ببينم
    خب چی رو میخوای چاپ کنی؟برنامه شما داده ای ندارد که بخواهید چاپش کنید!
    کد زیر یک نمونه هست که چیزی را چاپ میکنه

    stacksg segment para stack 'stack'
    stacksg ends
    datasg segment para 'data'
    m db 'Demo','$'
    NewLine db 10, 13, '$'
    datasg ends
    codes segment para 'code'
    main proc
    assume ss:stacksg, ds:datasg, cs:codes
    mov ax, datasg
    mov ds, ax
    ;------------ ur programm
    mov cx, 10
    lp1:
    push cx
    mov bl, cl ; color or char status
    mov bh, 0 ; page no
    lea bp, m
    call PutStr
    mov ah,09h
    lea dx,NewLine
    int 21h

    pop cx
    loop lp1
    ; waite for press any key
    mov ah,8
    int 21h
    ;------------ end of program
    mov ax, 4c00h
    int 21h
    main endp
    PutStr proc
    putch_lp1: ;-----<------;
    push bx ;
    push bp ;
    mov ah, 9 ;
    mov al, byte ptr [bp] ;
    mov cx, 1 ;
    int 10h ;
    call NextPos ;
    pop bp ;
    pop bx ;
    inc bp ;
    mov al, byte ptr [bp] ;
    cmp al, '$' ;
    jne putch_lp1 ;---->-------;
    ret
    PutStr endp
    NextPos proc
    mov ah, 3 ; get cur pos of cursor
    mov bh, 0
    int 10h
    mov ah, 1 ; set cursor setting
    int 10h
    mov ah, 2 ; move cursor to new pos
    add dl, 1
    int 10h
    ret
    NextPos endp
    codes ends
    end main

  5. #5
    کاربر جدید
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    پست
    14

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    با سلام
    مجدداً اعلام مي كنم كه برنامه IST_2 DB 10,9,8,7,6,5,4,3,2,1
    دارد كه به ثبات DI به صورت عكس شده منتقل شده و حالا مي خواهم رشته عكس شده را چاپ كنم فقط بفرمائيد چطوري؟

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    مجدداً اعلام مي كنم كه برنامه IST_2 DB 10,9,8,7,6,5,4,3,2,1
    دارد كه به ثبات DI به صورت عكس شده منتقل شده و حالا مي خواهم رشته عكس شده را چاپ كنم فقط بفرمائيد چطوري؟
    خواسته شما خیلی مجهوله ولی باز میفرماییم!
    هر چیزی را که میخواهید چاپ کنید باید ابتدائا به $ ختم شده باشد و بعد از آن به شکل زیر که نمونه هست برای چاپ رشته تان استفاده کنید.

    text dw 'hello my friend' , $

    mov ah, 9
    lea dx, text
    int 21h

    بعد از اجرای کد فوق جمله موجود در text چاپ میشود

  7. #7
    کاربر جدید
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    پست
    14

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    با عرض معذرت

    بالأخره متوجه نشدم چگونه مي توانم نتيجه برنامه را روي صفحه نمايش مشاهده كنم . اگر با كد برنامه مورد اشاره راهنمايي كنيد ممنون ميشم.
    خواسته خيلي واضح و روشن است .
    چند عدد كه داخل خود كد هست در داخل برنامه برعكس مي شود .حالا رشته عكس شده مي خواهم در صفحه؛ نمايش داده شود.كد خيلي پيچده اي نيست چند خط برنامه است.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: درخواست راهنمايي درخصوص كداسمبلي حاضر

    چند عدد كه داخل خود كد هست در داخل برنامه برعكس مي شود .حالا رشته عكس شده مي خواهم در صفحه؛ نمايش داده شود
    1 - اینکه کد شما ایراد داره.
    2- اینکه داخل داده هایتان رشته ای وجود ندارد که چاپ شود بلکه اعداد باید به رشته تبدیل و سپس چاپ شود.
    3 - پیچیده نیست فقط وقت لازم داشت.

    ; This Macro Chenge HEX Or Binary To Decimal .........................
    ; NUMBER Is (WORD) .................................................. ..
    ; BUFFER is address of buffer
    ; digit is len of buffer or digit numbers
    ; RETURN : This Macro Return In buffer Decimal Number That It
    ; Has In His End 0
    DECIMAL MACRO NUMBER, BUFFER, DIGIT
    LOCAL E0, E1, LOOP__, EXIT_
    MOV BX, DIGIT
    MOV BYTE PTR BUFFER[BX], 0
    MOV CX, BX
    LOOP__:;----------------------------------;
    DEC BX ;
    MOV BYTE PTR BUFFER[BX], 32 ; clear the buffer
    LOOP LOOP__;------------------------;
    MOV BX, DIGIT
    MOV AX, NUMBER
    E0:
    MOV DX, 0
    MOV CX, 10
    DIV CX
    DEC BX
    MOV BYTE PTR BUFFER[BX], DL ; BAGIMANDEH IN DX
    ADD BYTE PTR BUFFER[BX], 30H
    CMP BX, 0
    JE EXIT_
    CMP AX, 10
    JNL E0
    E1:
    DEC BX
    MOV BYTE PTR BUFFER[BX], AL
    ADD BYTE PTR BUFFER[BX], 30H
    EXIT_:
    ENDM
    ;---------------------------------------------
    stacksg segment para stack 'stack'
    stacksg ends
    datasg segment para 'data'
    LIST_1 DB 10 DUP(?)
    LIST_2 DB 10,9,8,7,6,5,4,3,2,1
    TMP_BUFF db 20 dup('$')
    NUM dw ?
    datasg ends
    codes segment para 'code'
    main proc far
    assume ss:stacksg, ds:datasg, cs:codes
    mov ax, datasg
    mov ds, ax
    ;------------ ur programm
    ; این قسمت داده هیا شما را برعکس میکند
    LEA SI,LIST_2
    LEA DI,LIST_1
    ADD SI , 9
    MOV CX,10
    LOOP1:
    MOV AL,[SI]
    MOV [DI],AL
    DEC SI
    INC DI
    LOOP LOOP1
    ;---PRINT DATA---------------------------
    ;این قسمت داده های برعکس شده را به عدد با فرمت رشته تبدیل و چاپ میکند
    LEA DI,LIST_1
    MOV CX,10
    LOOP2:
    PUSH CX
    PUSH DI
    MOV NUM, 0
    MOV AL, BYTE PTR [DI]
    MOV BYTE PTR NUM, AL
    DECIMAL NUM, TMP_BUFF, 5 ; ماکرویی که عدد را به رشته تبدیل میکند
    MOV BYTE PTR TMP_BUFF [5], '$' ; آخر رشته را به دلار ختم میکند تا چاپ شود
    ; اینجا داده های شما به چاپ می رود
    MOV AH, 9
    LEA DX, TMP_BUFF
    INT 21H
    POP DI
    INC DI
    POP CX
    LOOP LOOP2
    ;------------ end of program
    mov ax, 4c00h
    int 21h
    main endp
    codes ends
    end main


  9. #9
    کاربر جدید
    تاریخ عضویت
    تیر 1389
    محل زندگی
    تهران
    پست
    14

    تشکر

    بدین وسیله از شما دقیقاً به سؤالم که سؤال خیلیها بوده و هست جواب مناسب ارائه نمودید تشکر می کنم موفق باشید

قوانین ایجاد تاپیک در تالار

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