Прихожу к мысли, что анализатор тупенький. Запомнить что
(Adres+Kolvo)<=MaxReg не в состоянии! Когда доходит до цикла,
он об этом забывает. Вот так, этот тупорырый, не ругается: #define MaxRegTX (32)
#define MaxReg (16)
void PUT(unsigned char a);
unsigned short Reg[MaxReg];
...
...
...
{
unsigned short Kolvo=SetKolvo();
unsigned short Adres=SetAdres();
if(Kolvo>MaxRegTX || Kolvo==0) return;
unsigned short tmp= Adres+Kolvo;
if((tmp)>MaxReg) return;
...
...
...
for(int i=Adres;i<tmp;i++);
{
PUT(Reg[i]>>0);
PUT(Reg[i]>>8);
}
}