[an error occurred while processing this directive]
|
Симулятор 5510, считаю обычную корелляцию.
В Build Optons->Compiler Optimization Level = None
Первый вариант работает корректно, второй – нет. Почему?
high_re_buffer[i] = (val.re_high * (long)inp_buffer[i]) >> 15;
код:
0002EC a400 MOV *SP(#00h),T0
0002EE 7632bcb8 MOV #12988,AR3
0002F2 a50b MOV *AR0(T0),T1
0002F4 d311053b4e MPYM *abs16(#3b4eh),T1,AC0
0002F9 100531 SFTS AC0,#-15,AC0
0002FC c06b MOV AC0,*AR3(T0)
0002FE 20 NOP
high_re_buffer[i] = (val.re_high * inp_buffer[i]) >> 15;
0002EC a400 MOV *SP(#00h),T0
0002EE a50b MOV *AR0(T0),T1
0002F0 7632bcb8 MOV #12988,AR3
0002F4 d311053b4e MPYM *abs16(#3b4eh),T1,AC0
0002F9 a010_98 MOV mmap(AC0L),AC0
0002FC 100531 SFTS AC0,#-15,AC0
0002FF c06b MOV AC0,*AR3(T0)
000301 20 NOP
Массивы определены так:
int inp_buffer[BUFSIZE]
short high_re_buffer[BUFSIZE]
За размер буферов не выхожу, уверен.
Прошу сильно не пинать, с ассемблером никогда не работал.
E-mail: info@telesys.ru