
Сообщение от
valeron
...как перевести число из HEX в DEC. Переклинило меня не могу сообразить. Все что приходит в голову так это или составить таблицу или тупо отнимать по 10 и проверять на заём. Нужна компактная процедура перевода однобайтного числа в диапазоне #00-#63 в десятичные 0-99.
Если я правильно понял, то вот вариант:
Код:
;****************************************************
; a => bc
; [0..63h] => ['00'..'99']
;****************************************************
bin2bcd:
ld c,10
ld b,'0'-1
; делить исходное число на 10
div10: inc b ;старший нибл
sub c
jr nc,div10
; переполнение
add a,c
add a,'0'
ld c,a ;младший нибл
ret
;****************************************************
Регистры B и C содержат соответственно старший и младший ASCII коды результирующего числа.