[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Для этого придётся воспользоваться ассемблерными макросами.
Сперва напишем нужный макрос, предположим, с тремя параметрами:
#asm
.MACRO __my_func
cli
ldi r31,HIGH(@0)
ldi r30,LOW(@0)
clr @1
label: dec @2
brne label
sei
.ENDM
#endasm
Затем для удобства вызова определим:
#define my_func(x,y,z) #asm("__my_func x,y,z")
И теперь пользуемся:
my_func(_tmp,r10,r20)
Понятно, что глобальная переменная tmp определена ранее
и при обращении к ней в макросе нужно добавить к её имени
префикс "_".
P.S. Декоративные пробелы опять, небось, растерялись при
транспортировке.
E-mail: info@telesys.ru