Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Квадратный корень на asm-е для AVR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
adc
Прошу подсказать как вычислять квадратный корень на asm AVR.
Вот что нашел:
тыц (здесь как то не очень понятно объяснено)
тыц тут не могу разобраться с алгоритмом.
Посоветуйте пожалуйста где посмотреть, желательно с комментариями или поделитесь кодом на асме.
Заранее спасибо!
_Артём_
Цитата(adc @ May 30 2012, 17:39) *
Прошу подсказать как вычислять квадратный корень на asm AVR.
Вот что нашел:
тыц (здесь как то не очень понятно объяснено)
тыц тут не могу разобраться с алгоритмом.
Посоветуйте пожалуйста где посмотреть, желательно с комментариями или поделитесь кодом на асме.
Заранее спасибо!

Есть такая Апнота от ИАРа "Fast square root" - вычисление корня из двухбайтового числа.
Нажмите для просмотра прикрепленного файла
kovigor
Цитата(adc @ May 30 2012, 17:39) *
Посоветуйте пожалуйста где посмотреть, желательно с комментариями или поделитесь кодом на асме.
Заранее спасибо!


1. Перейти с АСМа на Си (рекомендую).
Или
1'. Написать простейшую программу на Си, вызывающую единственную функцию sqrt() в том же Codevision, отключить оптимизацию, скомпилировать и по выданному компилятором ассемблерному тексту разобраться, как там и что сделано.
Или
2. Использовать нечто вроде метода "цифра за цифрой" (см. книжку: Байков "Аппаратурная реализация элементарных функций в ЦВМ").
Или
3. Откройте первый том Р.Куранта "Курс дифференциального и интегрального исчисления". Там на стр.59-60 рассматривается задача извлечения корня ...

Вот, что-то нашлось:
http://www.wasm.ru/forum/viewtopic.php?id=39047
ReAl
А ещё старый-добрый С-шный вариант (там ссылки на старые темы в RU.EMBEDDED и RU.ALGORITHMS), который легко переписываетсмя на асм

Цитата(adc @ May 30 2012, 17:39) *
тыц тут не могу разобраться с алгоритмом.
Тю, так это ж «именно та тема».
Мне казалось, там Андрей свой (цифра за цифрой, школьный столбик) а я свой (регистр последовательного приближения, сообщение от 12 Апр 1998, 03:00 ) алгоритмы достаточно хорошо объяснили :-)
Разница между ними в конечном итоге небольшая.

В любом случае, на радиокоте есть и ссылки на темы в RU.EMBEDDED, и уже переписанный на асм вариант (хотя avr-gcc и С-шный довольно хорошо разложил).
adc
Спасибо за ответы! Видимо и в правду не внимательно разбирался. Буду еще раз ссылки перечитывать и разбираться.
о! кажется нашел :тыц3
Цитата(kovigor @ May 30 2012, 20:01) *
1'. Написать простейшую программу на Си, вызывающую единственную функцию sqrt() в том же Codevision, отключить оптимизацию, скомпилировать и по выданному компилятором ассемблерному тексту разобраться, как там и что сделано.

Кстати... Если кто может(у кого уже установлен Codevision), проделайте эту операцию и выложите код на asm-e. Буду благодарен!
kovigor
Цитата(adc @ May 31 2012, 07:53) *
Кстати... Если кто может(у кого уже установлен Codevision), проделайте эту операцию и выложите код на asm-e. Буду благодарен!

Вот, там внутри есть и .asm - файл:
http://zalil.ru/33351054
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.