Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
.equ divisor = 10 ; Это делитель (можно любой, не только 10)
.def result = r2 ; Здесь будет результат деления
.def input = r17 ; Здесь наше делимое
; Деление байта input на константу divisor
; result=input/divisor
; Портит input
; 6 слов Flash, 9..106 тактов мин/макс (для divisor = 10)
div10:
clr result ; Обнуляем результат
div10lp:
inc result ; Увеличиваем результат на 1
subi input,divisor ; Вычитаем делитель из делимого
brcc div10lp ; Повторяем цикл, пока делимое >= 0
dec result ; Корректируем результат - было одно лишнее вычитание
ret