Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: fixed point 16 lib and ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SpiritDance
Вобщем нужна библиотека на ассемблере (оптимизированная понятно - времени на обработку мало) для arm7 с простыми арифметическими дейтсвиями для формата с фиксированной запятой в 16 разрядов - сложение, вычитание, умножение, деление. Может есть у кого? Поделитесь плиз (возможно небезвозмездно), очень не хочется тратить время на то, что уже наверняка не раз сделано.
aaarrr
07.gif Библиотека для сложения, вычитания, умножения на ассемблере - зачем??? Инструкции же есть соответствующие.
А деление можете выдрать из какого-нибудь компилятора, дело на полчаса работы.
SpiritDance
Цитата(aaarrr @ Aug 29 2008, 14:20) *
07.gif Библиотека для сложения, вычитания, умножения на ассемблере - зачем??? Инструкции же есть соответствующие.

Да про сложение и вычитание я, пожалуй, загнул
нужно совершать вычисления 16fpx16fp=32fp -> 16fp(res), 16 fp(res)*16fp т.е. несколько операций умножения. Собственно вопрос накопления разрядов меня и смущает, каким образом быстро приводить результат умножения к 16 разрядам?
Извиняюсь за сумбурность - голова в пятницу уже не работает.
aaarrr
Цитата(SpiritDance @ Aug 29 2008, 15:26) *
каким образом быстро приводить результат умножения к 16 разрядам?

Если результат знаковый, то:
Код
LSL    r0, r0, #16
ASR    r0 ,r0, #16

если беззнаковый -
Код
LSL    r0, r0, #16
LSR    r0, r0, #16


Можете просто написать все нужные конструкции на C, а затем дизассемблировать и использовать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.