[an error occurred while processing this directive]
На страничке Александра Труша для АВР. Для АРМ переделывается как два пальца... Оппаньки... Сайт приказал... см унутрь.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено -mse- 03 марта 2006 г. 13:27
В ответ на: Корня цельночисленного для АРМ7 ни у кого нет? отправлено Artem-1.6E-19 03 марта 2006 г. 10:40


Программные трюки: вычисление квадратного корня

;****************************************************************************************************
;*
;* Подпрограмма вычисления квадратного корня для 24-ти битного аргумента *
;* (c) 1998 Alexander Trush http://trush.da.ru trush@ropnet.ru 2:5020/392.40
;*
;
;Вы можете свободно использовать, распространять, модифицировать этот
;код до тех пор, пока вы указываете моё авторство и распространяете
;это требование. Кроме того, я хотел бы получать уведомление о
;применении этого кода по e-mail (trush@kbotd.ru).

sqrt24: ldi mask,1; Используем маску в регистре, т.к. команды EORI нет...
ldi count,12; Последний бит значения корня не требует специального
; подхода - есть запас от потери битов аж 4 бита
clr16 work_h, work_l
clr16 dist_h, dist_l; Очистка накопителя значения корня


sqrt24_1: cpi src_h, 64
cpc work_l, dist_l
cpc work_h, dist_h
brcs sqrt24_2
subi src_h, 64
sbc work_l, dist_l
sbc work_h, dist_h
sqrt24_2: rol dist_l
rol dist_h
eor dist_l, mask; Инверсия младшего бита значания корня,
; т.к. при заёме должны писать 0, и 1 при отсутствии
lsl src_l; Сдвиг аргумента на 2 бита
rol src_m; work_h:work_l:src_h:src_m:src_l < <= 2
rol src_h
rol work_l
rol work_h

lsl src_l
rol src_m
rol src_h
rol work_l
rol work_h

dec count; Получили ли все биты значения корня кроме последнего?..
brne sqrt24_1


cp dist_l, work_l
cpc dist_h, work_h
adc dist_l, src_m; Команды ADCI нет, а src_m точно здесь равен 0
adc dist_h, src_m
ret
;******************************************************************************


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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru