Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

На. Шесть (6) команд на АСМ, включая Return

Отправлено =AVR= 16 июня 2007 г. 17:48
В ответ на: avr. asm. нужно деление на десять(без остатка). посоветуйте алгоритм ? отправлено nestandart 16 июня 2007 г. 15:43

.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


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сколько миллиампер в одном ампере ?:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru