Добрый день!
Если у нас есть число, сохранённое в регистре, и нам нужно получить значения разрядов его десятичного представления - то всё довольно просто: только то и нужно, что делить его на 10 и сохранять полученные остатки.
lp: cmp eax, 0 ; have we finished?
je prinrt
inc ecx
div dword [divider]
mov [result + ecx - 1], dl
xor edx, edx
jmp lp
А как поступить, если число не помещается в одном регистре?
Допустим, была выполнена команда mul ebx
и итоговое число слишком большое, чтобы поместиться в 32 бита, и теперь хранится в edx:eax
?