Так сдвиги и сложения - это и есть умножение на константу. Коэффициенты фильтра надо скоммуниздить, а от ассемблера на другой архитектуре проку мало. Есть ещё мелкая хитрожопость: можно использовать не только сложения, но и вычитания. Например, x*7 считаем не как x*4+x*2+x, а как x*8-x.