если процессор имеет аппаратный умножитель и
если Вы используете IAR и
если Вы поставите в свойствах проекта птичку "использовать аппаратный умножитель", то операции умножения будут выполняться с его использованием, если оптимизатор не сочтет, что 2*2 проще сделать через сдвиг.
Также можно посмотреть здесь
http://aly.projektas.lt/Projects/GSMA/GSMA.htmв файлах "DTMFtest_PRG.zip" (DTMDdecoder.c) и "FSKtest_PRG.zip" (FSKdecoder.c)
Или в исходниках ИАРовской библиотеки файлы "*Hw.c" и "*Hw.s43"
У меня есть исходники библиотек от несколько более ранних версий ИАР. Пишите на мыло, вышлю