[an error occurred while processing this directive]
|
1) MPY #28388,A ; A = l1 = (*pSinB -
2) NOP
3) NOP
4) XC 2,AGEQ
5) ADD *SP(2),A,A ; A = (l1 + 1<<15)
6) XC 1,ALEQ
7) SUB *SP(2),A,A ; A = (l1 - 1<<15)
8) SFTA A,#-16 ; A = (l1 +/- 1<<15) >> 16
Как видно из примера XC анализирует А и предположим что A>0, следовательно в строке 5 происходит update A и затем в шестой строке происходит чтение А (т.е. здесь и возникает конфликт). Вопрос в том, что же прочитает ХС из А в этот момент? Если она прочетает предудущее состояние А то тогда этот кусочек кода работать будет(по крайней мере под отладчиком работает...). Или посоветуйте как с меньшими затратами проанализировать знак числа и в результате либо отнять либо добавить константу при этом есть только один аккумулятор и ВС использовать не хочу, потому что долго выполняется
E-mail: info@telesys.ru