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

the_king

مدیرکل انجمن
اگر بخواهیم یک عدد 32 بیتی همانند EAX را در مبنای 10 (Decimal) نمایش دهیم، روتین print_dec_eax
مناسب است، به عنوان مثال عدد 1234567890 توسط این کد نمایش داده شده است :

کد:
.MODEL SMALL
.STACK
.DATA
    msg    DB 13,10,"Press any key to continue.",13,10,"$"
.CODE
.STARTUP
.386
    MOV     EAX, 1234567890
    CALL    [B]print_dec_eax[/B]
    MOV     AH, 9
    LEA     DX, msg
    INT     21H
    MOV     AH, 8
    INT     21H
    .EXIT
[B]print_dec_eax[/B]:
    MOV     CX, 0
    MOV     EBX, 10
loop_1:
    MOV     EDX, 0
    DIV     EBX
    PUSH    DX
    INC     CX
    CMP     EAX, 0
    JNE     loop_1
    MOV     AH, 2
loop_2:
    POP     DX
    ADD     DL, "0"
    INT     21H
    LOOP    loop_2
    RET
END
 

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

بالا