реклама на сайте
подробности

 
 
> Mix C++ и Asm в IAR EW AVR 4.21A
Turion
сообщение Jun 22 2007, 08:59
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 28-11-05
Пользователь №: 11 498



Надеюсь здесь кто-нибудь поможет. В 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
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01352 секунд с 7
ELECTRONIX ©2004-2016