Подпрограмма печати десятичного числа от 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