Цитата(Alt.F4 @ Oct 2 2010, 15:07)

Буду очень благодарен!!!

Обьявляем констатнты:
indextable : массив 16 чисел (-1,-1,-1,-1,2,4,6,8,-1,-1,-1,-1,2,4,6,8)
stepsizeTable: массив 89 чисел
(7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
50, 55, 60, 66, 73, 80, 88, 97, 107, 118,
130, 143, 157, 173, 190, 209, 230, 253, 279, 307,
337, 371, 408, 449, 494, 544, 598, 658, 724, 796,
876, 963, 1060, 1166, 1282, 1411, 1552,1707, 1878, 2066,
2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358,
5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899,
15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767)
Обьявляем переменные
D : результат 16 бит
Index : смещение в stepsizeTable
A и S : переменные 16 бит
Инициализируем переменные:
D=8000H
Index=0
M1:
C=входные 4 бита ADPCM
S=stepsizeTable[Index]
A=0
Если 2-й бит в C =1 то A=A+S
Сдвигаем S на один бит вправо
Если 1-й бит в C =1 то A=A+S
Сдвигаем S на один бит вправо
Если 0-й бит в C =1 то A=A+S
Сдвигаем S на один бит вправо
A=A+S
Если 3-й бит в С=1 то D=D-A иначе D=D+A
Index=Index+Indextable[C]
Сохраняем D
Идем на М1