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

نام تاپیک: نمایش عدد در خروجی

  1. #1

    نمایش عدد در خروجی

    سلام ، من یه برنامه واسه نمایش اعداد اول نوشتم فقط مشکلم خروجی هست
    وقتی از

    MOV AH,02
    MOV DL,BL
    INT 21H

    استفاده میکنم معادل کاراکتری عدد رو میده .
    حالا ، آیا وقفه ای هست که بتونه عدد بده یا باید این عدد رو یه جوری به رشته تبدیل کرد ؟
    برنامه هم باید 16 بیتی باشه و نمیشه از Include استفاده کرد

    مرسی

  2. #2
    سلام
    اگه شما محتویات یه رجیستر 8 بیتی رو با کد 30h‌ جمع کنی اون رو به کاراکتر عدد تبدیل کردی، البته با ذکر این مطلب که عدد شما بین 0 تا 9 باشد. و برای رجیسترهای 16 بیتی نیز با همین ترفند
    برنامه زیر نمایش اعداد اول 1 تا 100 است و ببینید که چگونه نمایش می‌دهد


    .MODEL SMALL ;COM file must have 1 segment
    .CODE ;Begin of Code Segment
    ORG 100h ;Start Address in COM file at Seg:100h
    START PROC
    jmp init ;jmp to Main Section
    MODCNT db ?
    N1 db 10,13,"0001$"
    newline db 10,13,"$" ;Create new line
    numstr db 4 dup("$") ;Buffer for get number
    nstr db 6 dup('$') ;buffer for store Integer number to char.
    init: ;Main Section
    MOV CX,1 ;set first number (to 100)
    L1CX:
    PUSH CX
    MOV MODCNT,0
    L2CX:
    PUSH CX
    MOV AX,CX
    DIV CL
    CMP AH,0
    JNE LMOD
    INC MODCNT
    LMOD:
    LOOP L2CX
    POP CX
    CMP MODCNT,2
    JNLE NOAVAL
    MOV AX,CX
    MOV DI,offset nstr
    CALL DEC3AX

    mov dx,offset nstr
    call print
    NOAVAL:
    POP CX
    INC CX
    CMP CX,20
    JLE L1CX
    ret

    START ENDP
    ;================================ TOTAL PROCEDURE ==============================
    PRINT PROC
    MOV AH,9
    INT 21H
    RET
    PRINT ENDP
    ;--------------------- CONVERT INTEGER NUMBER TO ASCII NUMBER ------------------
    DEC3AX PROC
    PUSH BX
    PUSH CX
    PUSH DX
    MOV BX,3
    MOV CX,10
    D4_1:
    SUB DX,DX
    DIV CX
    OR DL,"0"
    MOV BYTE PTR [BX+DI-1],DL
    DEC BX
    JNZ D4_1
    ADD DI,3
    POP DX
    POP CX
    POP BX
    RET
    DEC3AX ENDP
    END START

  3. #3
    کاربر تازه وارد آواتار Malakootee
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    Mashad
    پست
    48

    Smile نقل قول: نمایش عدد در خروجی

    نقل قول نوشته شده توسط amir_br0k3n مشاهده تاپیک
    سلام ، من یه برنامه واسه نمایش اعداد اول نوشتم فقط مشکلم خروجی هست
    وقتی از

    MOV AH,02
    MOV DL,BL
    INT 21H

    استفاده میکنم معادل کاراکتری عدد رو میده .
    حالا ، آیا وقفه ای هست که بتونه عدد بده یا باید این عدد رو یه جوری به رشته تبدیل کرد ؟
    برنامه هم باید 16 بیتی باشه و نمیشه از Include استفاده کرد

    مرسی
    سلام
    درسته دیره ولی خب شاید به درد بقیه بخوره
    شما باید از اینتراپت 9h استفاده کنی و چاپ رشته
    یعنی بجای dl از dx استفاده کنین و bl رو هم که رشتتون باید بزارین

    موفق باشین

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

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