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

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

Поможет. Cсылка на доку (откуда ноги растут на 6 байтовые алгоритмы) Так что =LA= прав- через BCD нужно.

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

Универсальная MOD / DIV функция. Регистры можно поменять.

LDI R25,5
m0:MOV R17,R20 ; это регистры из вашего задания
MOV R16,R21
LDI R18,10 ; это на что делим (на 10 к примеру)
LDI R19,0

CLR R14
CLR R15
LDI R24,0x10
m1: ADD R16,R16
ADC R17,R17
ADC R14,R14
ADC R15,R15
CP R14,R18
CPC R15,R19
BRCS m2
SUB R14,R18
SBC R15,R19
INC R16
m2: DEC R24
BRNE m1

; здесь переносите R15:R14 в ... REZULTAT

MOV R20,R17
MOV R21,R16
dec R25
BRNE m0 ; и далее идёте в начало цикла
------------------------------
Внутри Параметры: R17:R16 - делимое, R19:R18 - делитель. Выход: R17:R16 - результат. R15:R14 - остаток. Все нечётные регистры - старшие байты значений



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

Ответы


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

Сообщение:

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

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

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

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