Намедни возникла нужда сделать вывод большого (более 65535) числа в десятичном виде, в Килобайтах и с одним знаком после запятой.
Исходное число хранится в трёх байтах, т.о. оно может принимать значения от 0 до 16777216.
Соответственно, при выводе требуется "разбить" исходное число как бы на две составляющие: целую часть и остаток.
Тут всё просто, целая часть это старшие биты начиная с десятого и выше, а остаток это десять младших бит.
Собственно задачка - преобразовать число остатка (0..1023) в соответствующие значения десятых (0..9).
Тобишь значение 512 должно нам давать ",5" и т.д.
Чисто математически решение сводится к делению значения остатка на константу 102,4.
Для гуру это конечно же "не вопрос", а я традиционно люблю изобретать велосипед, поэтому на решение был убит очень нескучный вечер 
Но результатом я дико доволен, в связи с чем решил поделиться.
Ранее у меня был исследован вопрос быстрого деления на 10, 100, 1000, и в хозяйстве были заготовки такого кода,
который я и стал пытаться приспособить для решения данной задачи. Вроде бы 102 с хвостиком и 100 - это примерно одно и то же...
Но не тут-то было, ошибка набегала столь фатальная, что такой вариант оказался абсолютно неприемлем.
Были попытки предварительно "чуть подкрутить" делимое (а также результат), чтобы хотя бы явные значения типа 512->0,5 были некривые. Но в итоге получалось громоздко и некрасиво.
В какой-то момент уже даже хотел сдаться, плюнуть, и сделать втупую сравнениями с переходными значениями и выдачей константы...
Но вдруг осенило! Давно не получал такого удовлетворения от неожиданно найденного решения, если честно.
Суть пока не рассказываю, просто готовый код 
Код:
; в [HL] остаток (0..1023)
MOV D,H
MOV E,L
DAD H
DAD H
DAD H
DAD D
DAD D
MOV A,H
RRC
RRC
ANI 0Fh
; в [A] точное значение десятых (0..9)
П.С. может кому-то даже пригодится)