Подпрограмма печати десятичного числа от 0 до 65535 - Assembler

Узнай цену своей работы

Формулировка задачи:

Assembler: NASM, 16BITS
На входе
DS:SI - исходное число, dw
DS:DI - буфер для записи результата в ASCII
Портит регистры AX,BX,DX
Регистры SI и DI инкрементируются
соответственно считанному/записанному
PrWordDec2buf
;        push    di
        lodsw
        cmp     ax,100
        jc      .m1
        dec     di
        cmp     ax,10000
        jc      .m1
        dec     di
.m1     mov     bx,100
        mov     dx,0
        div     bx
        xchg    ax,dx
        aam
        push    ax
        mov     ax,dx
        mov     dx,0
        div     bx
        xchg    ax,dx
        aam
        call    .und
        mov     dl,ah
        call    .und
        mov     dl,al
        call    .und
        pop     ax
        mov     dl,ah
        call    .und
        mov     dl,al
        or      bl,1
        call    .und
 ;       pop     di
        ret
 
.und    test    bl,1
        jnz     .und1
        or      dl,dl
        jz      .und2
        or      bl,1
.und1   or      dl,30h
        mov     [di],dl
        inc     di
.und2   ret

Решение задачи: «Подпрограмма печати десятичного числа от 0 до 65535»

textual
Листинг программы
FILD
FBSTP

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы