Hola a todos,
A ver si me podeis hechar una mano, porfa.
Estoy haciendo un code en c++ (lenguaje que conozco) y necesito usar puntalmente esta rutina en asm (lenguaje que no domino), que he encontrado y me vendría de maravilla.
La rutina es esta:
unsigned char tablasci2[ TABLE_NUM ][ TABLE_SIZE ];
//===================================
#ifndef INLINE_ASM
unsigned char change( unsigned char byte, unsigned int num )
{ num &= 0x7; return tablasci1[num][byte]; }
#endif
//===================================
char *encript_buffer( char *buffer, int len, char *key, int keylen, int pos )
{
#ifdef INLINE_ASM
// esi - buffer edi - key ecx - i ebx - j edx - k pos
asm (
"movl %3, %%edi;\n" // edi contains keylen
"cmp $16, %%edi;\n" // if ( keylen > MAX_KEY_LEN )
"jle _skip_if1;\n"
"mov $16, %%edi;\n" // keylen = MAX_KEY_LEN;
"_skip_if1:\n"
"movb (%%edi,%%ebx),%%al;\n" //al contain key[j]
"addb %%bl,%%al;\n" // key[j]+j in eax
"movl %4, %%edx;\n" // pos in edx
"addl %%ecx, %%edx;\n"// (i + pos) in edx
"andl $7, %%edx;\n" // edx &= 7
"sall $8, %%edx;\n" // edx *= 256
"addl %%edx, %%eax;\n"
"addl $tablasci2, %%eax;\n" // eax += tablasci2
........ etc.. etc...
#else
int i, j, k;
if ( keylen > MAX_KEY_LEN ) keylen = MAX_KEY_LEN;
...... etc... etc....
}
Pues, cuano lo compilo, me da este error:
[Linker error] undefined reference to `tablasci2'
Me podeis hechar una mano esplicandome porqué da este error y como puedo solucionarlo, porfa? Estoy ya en las ultimas....
Uso el Dev-C++ y el micro es un Intel
Gracias