Надеюсь здесь кто-нибудь поможет. В IAR C/C++ Compiler Reference Guide в разделе Assembler language interface приведен пример:
bool flag; void foo() { while (!flag) { asm("IN R0,PIND \n STS flag,R0"); } }
Я пишу свою функцию:
unsigned short ModBus::CRC16Test(void *Ptr,unsigned char Lenght) { unsigned char *Data = (unsigned char *)Ptr; unsigned char CRCH = 0xFF; unsigned char CRCL = 0xFF;
unsigned char Byte; unsigned char Temp;
for(unsigned char i = 0;i < Lenght;i++) { Byte = Data[i];
asm(" EOR CRCL,Byte "); asm(" MOV Temp,CRCL "); .......................... ..........................
И стабильно получаю собщение, что CRCL,Byte,Temp не распознаны типа:
Error[Og005]: Unknown symbol in inline assembly: "CRCL"
Error[Og006]: Syntax error in inline assembly: "Error[43]: Illegal effective address"
Подскажите пожалуйста, как это побороть, мне нужен именно кусок Asm в теле С++ функции.
Сообщение отредактировал Turion - Jun 22 2007, 09:01
|