Вот отрывок кода на асме:
; Automatic Gain Control
SOVM
ssxm
LAC #2000H
SACL AGCTEMP
LT AGCSamp ;load sample band pass filtered
MPY AGCGAIN ; mult by GAIN
PAC
NORM * ;prevents overflow and saturates if required
NORM * ;
NORM * ;
NORM *
NORM * ;
SACH AGCSamp ;
ADDH AGCSamp ;
SACH AGCSamp ;
ABS ;compute new GAIN value
SUBH AGCTEMP
NEG
SUB AGCGAIN,14
SACH AGCTEMP
ZALH AGCGAIN
ADDS AGCGAIN+1
ADD AGCTEMP,8
SACH AGCGAIN
SACL AGCGAIN+1
ROVM
Код вызывается циклически. На каждом шаге высчитывается новое значение AGCGain, которое используется как коэффициент усиления для последующих отсчетов. Пытасюь записать формулу вычисления AGCGain, но не совсем ясен результат выполнения команды NORM.
Растолкуйте ее действия.