Здравствуйте.
Меня интересует работа с вещественными числам на ассемблере на МК AVR:
- запись вещ. числа в регистр
- сложение двух вещ. чисел
- умножение двух вещ.чисел
и т.д.
Где об этом можно почитать? Или может кто-то объяснит? Хватит и пары строчки строк))
Заранее благодарен!
Работа с вещественными числами на asm на AVR
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18671
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Работа с вещественными числами на asm на AVR
вот вам не пара, а даже одна строчка 
вещественных чисел следует избегать всеми способами, разве что это вопрос жизни или смерти
вещественных чисел следует избегать всеми способами, разве что это вопрос жизни или смерти
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Работа с вещественными числами на asm на AVR
Спасибо) Идею понял)
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Работа с вещественными числами на asm на AVR
На самом деле ничего фантастически сложного в вещественной арифметике нет, но работать на AVR она будет очень медленно -- собственно, именно поэтому надо стараться избегать их использования. Например, если нужно что-то выводить в метрах с сотыми (типа 3,07 м), можно все внутренние расчёты вести в сантиметрах, что избавляет от необходимости использовать числа с плавающей запятой.
Ну а в тех случаях, когда без плавающей запятой не обойтись, придётся писать свои или воровать чужие подпрограммы. Следует помнить, что и количество разрядов, которые можно представить числом, и максимальный диапазон зависят от размера числа. "Самыми стандартными" являются 4-, 8 и 10-байтовые вещественные числа, с которыми работают процессоры ПК (и не только они). Учитывая, что разрядность регистра AVR равна одному байту, одно число будет занимать от 4 до 10 регистров, так что, скорей всего, их надо будет передавать через память, особенно если речь идёт о "длинных" форматах.
Ну а в тех случаях, когда без плавающей запятой не обойтись, придётся писать свои или воровать чужие подпрограммы. Следует помнить, что и количество разрядов, которые можно представить числом, и максимальный диапазон зависят от размера числа. "Самыми стандартными" являются 4-, 8 и 10-байтовые вещественные числа, с которыми работают процессоры ПК (и не только они). Учитывая, что разрядность регистра AVR равна одному байту, одно число будет занимать от 4 до 10 регистров, так что, скорей всего, их надо будет передавать через память, особенно если речь идёт о "длинных" форматах.
- Реклама
Re: Работа с вещественными числами на asm на AVR
В общем-то верно, хотя воровать нехорошо. Можно попросить, например, старину Джека, ему не жалко.SII писал(а):На самом деле ничего фантастически сложного в вещественной арифметике нет, но работать на AVR она будет очень медленно -- собственно, именно поэтому надо стараться избегать их использования.
Ну а в тех случаях, когда без плавающей запятой не обойтись, придётся писать свои или воровать чужие подпрограммы
Мне пришлось писа'ть плавучку для МК у которого не то, что фиксированной арифметики не было -- не было даже сдвига вправо ! И одна операция выполнялась от 14 до 42 циклов осциллятора ! Занятие для мазохистов, но деваться было некуда. Потом когда с этого уё....ща мигрировали на АВР. было ощущение, что из грязного болота попал в чистую реку. Код - раза в 2 короче, быстродействие - выше раз в 10! Причем пришлось писа'ть не только арифметику, но и функции: корень, синус-косинус, логарифм, экспонента...
"Но опыт есть!" (С) М.М.Жванецкий
Кстати, для сокращения времени выполнения и объема памяти у меня арифметика как раз нестандартная 3-байтовая : 1 байт порядок, 2 байта мантисса. Скрытый разряд не использовал - чуть проигрыш в точности ( для наших задач хватало ), но выигрыш в быстродействии.
Последний раз редактировалось Jack_A Сб янв 22, 2011 13:01:02, всего редактировалось 1 раз.
Re: Работа с вещественными числами на asm на AVR
И сто лет ему это не было нужно.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Работа с вещественными числами на asm на AVR
И что это за урод такой, если не секрет?Jack_A писал(а):Мне пришлось писа'ть плавучку для МК у которого не то, что фиксированной арифметики не было -- не было даже сдвига вправо !
Ну, это совершенно правильный подход, просто нужно заранее оценить необходимую точность и диапазон. Для опытного программиста это проблем не составляет, а вот для новичка -- проблематично.Кстати, для сокращения времени выполнения и объема памяти у меня арифметика как раз нестандартная 3-байтовая : 1 байт порядок, 2 байта мантисса. Скрытый разряд не использовал - чуть проигрыш в точности ( для наших задач хватало ), но выигрыш в быстродействии.


