نمایش اعداد 16 بیتی بصورت مبنای 10 در زبان اسمبلی

the_king

مدیرکل انجمن
برای آنکه یک عدد 16 بیتی همانند AX را در مبنای 10 نمایش دهیم، روتین print_dec_ax مناسب است.
به عنوان مثال عدد 12345 توسط برنامه زیر نمایش داده می شود :

کد:
.MODEL SMALL
.STACK
.DATA
    msg    DB 13,10,"Press any key to continue.",13,10,"$"
.CODE
.STARTUP
    MOV     AX, 12345
    CALL    [B]print_dec_ax[/B]
    MOV     AH, 9
    LEA     DX, msg
    INT     21H
    MOV     AH, 8
    INT     21H
    .EXIT

[B]print_dec_ax[/B]:
    MOV     CX, 0
    MOV     BX, 10
loop_1:
    MOV     DX, 0
    DIV     BX
    PUSH    DX
    INC     CX
    CMP     AX, 0
    JNE     loop_1
    MOV     AH, 2
loop_2:
    POP     DX
    ADD     DL, "0"
    INT     21H
    LOOP    loop_2
    RET
END
 

جدیدترین ارسال ها

بالا