Гудвинволшебник (30.05.2012 00:08, просмотров: 161) ответил Apтём на Может для MSP компактней выходит - он всё же 16-битный. Для АВР получилось ~500 байт с CBC, ключём и прочим. Оптимизация что size, что speed - примерно одинаково.
Тэги в шапке окна ввода сообщения, конкретно -"<C>". Для AVR я компилил с помощью GCC:
void XTEAdecode(unsigned long* data, unsigned char dataLength)
{
unsigned char i=0;
unsigned long x1;
unsigned long x2;
unsigned long sum;
while(i<dataLength)
{
sum = DELTA*N; // 32 итерации
x1=*data;
x2=*(data+1);
while(sum != 0)
{
x2 -= ((x1<<4 ^ x1>>5) + x1) ^ (sum + *(key+(sum>>11&0x03)));
sum-=DELTA;
x1 -= ((x2<<4 ^ x2>>5) + x2) ^ (sum + *(key+(sum&0x03)));
}
*(data++)=x1;
*(data++)=x2;
i+=2;
}
}
Device: atmega168
Без вышеприведенной функции:
Program: 1720 bytes (10.5% Full)
(.text + .data + .bootloader)
Data: 560 bytes (54.7% Full)
(.data + .bss + .noinit)
C XTEAdecode() :
Program: 2116 bytes (12.9% Full)
(.text + .data + .bootloader)
Data: 560 bytes (54.7% Full)
(.data + .bss + .noinit)