Пример преобразования двоичного числа в двоично десятичное упакованное от TI без умножения(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено misyachniy 24 июля 2003 г. 15:44

Максимальное число для преобразования 4095(0FFFh).
Как видно из 4 операторов RLA.
Но если их уменьшить до 2
и в регистр R15 заносить 14(0Eh) вместо 12(0Ch) то можно преобразовывать и до 9999.


; Now convert to BCD format
Bin_Dec:
rla R14 ; Shift out upper nibble,
rla R14 ; not used for this
rla R14 ; conversion
rla R14 ;
mov #0Ch,R15 ; Loop counter
clr R12 ; Result goes into R12
L3 rla R14 ; Shift MSB into C
dadd R12,R12 ; Add R14 to itself, plus C
dec R15
jnz L3 ; Jump if not done
mov R12, R14
ret

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru