Асемблер понятие растяжимое, для какого процессора?
Могу предложить алгоритм,и программу для 51.
HEXTOBCD8:
;--------------АЛГОРИТМ-----------------
;1.Сдвигать в лево
;2.Прибавлять 3 к каждой BCD тетраде которая >=5
;Повторять столько раз сколько бит в числе
;в последнем цикле прибавлять 3 не нужно !!!
;Пример 8 бит число: $F9 в BCD
; Результат : Исходное число
;0000 0000 0000 : 1111 1001
;0000 0000 0001 : 1111 0010 (сдвиг в лево)
;0000 0000 0011 : 1110 0100 (сдвиг в лево)
;0000 0000 0111 : 1100 1000 (сдвиг в лево)
;0000 0000 1010 : 1100 1000 (add 3)
;0000 0001 0101 : 1001 0000 (сдвиг в лево)
;0000 0001 1000 : 1001 0000 (add 3)
;0000 0011 0001 : 0010 0000 (сдвиг в лево
;0000 0110 0010 : 0100 0000 (сдвиг в лево)
;0000 1001 0010 : 0100 0000 (add 3)
;0001 0010 0100 : 1000 0000 (сдвиг в лево)
;0010 0100 1001 : 0000 0000 (сдвиг в лево)
;В результате получим BCD 249.
;гораздо проще чем использовать DIV !!!
Успехов.
Прикрепленные файлы
BCD16.zip ( 2.04 килобайт )
Кол-во скачиваний: 71