Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Код на ASM в Cи
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Wild007
Подскажите пожалуйста как на Си записать код на ASM, а то перебрал хелпы, но так и не нашёл sad.gif :
Код
.DEF TMP1=R06
....
.EQU IN=2
.......
[b]SBRC TMP1,IN
RCALL <метка на пп>[/b]
....

На Си должно быть (ИМХО) что-то такое:
Код
{
static char TMP1;
#define IN TMP1.2
if (!IN)
      else
........}

Но компилятор ругается sad.gif
WHALE
static char TMP1;
#define IN 4
.... Ваш код
if (TMP1 & IN)goto...ваша подпрограмма
else....

З.Ы. написали бы более подробно,что вы хотите?mixed asm and c?И вам нужно возвращать результат в
определенных регистрах?Или перетащить код на на С?Тогда вместо подпрограмм используйте функции
а goto cоответственно нет.
jorikdima
UINT8 tmp;

if (tmp&(1<<i))
{
бит i стоит
}
else
{
не стоит
}
Wild007
2 prottoss
Компилятор CodevisionAVR 1.24.8b

2 jorikdima
т.е.
Код
char in=2;
char out=3;
if (tmp&(1<<in))
......
if (tmp&(1<<out))
.....
jorikdima
ну если in и out это номера битов, то да
prottoss
Цитата(Wild007 @ Dec 6 2006, 19:47) *
2 prottoss
Компилятор CodevisionAVR 1.24.8b
Я не понял вопроса и погнал не в ту степь, поэтому удалил свое предыдущее сообщение, сорри...
Wild007
2 jorikdima
Град мерси! Заработало! smile.gif
defunct
Старайтесь не называть константы и переменные именами, совпадающими с мнемониками asm команд.
Wild007
Цитата(defunct @ Dec 7 2006, 00:59) *
Старайтесь не называть константы и переменные именами, совпадающими с мнемониками asm команд.

В проекте ессено имена имеют длинные названия типа "ENDP4INTENABLE", "Int_EndP0_in", а здесь имена приводил для сокращения.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.