Подпрограмма печати десятичного числа от 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д