ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
13580
Tow (17.08.2004 18:11, просмотров: 10888)
Ассемблерные вставки в Си (Keil) Возникла необходимость использовать асм-вставки в си-шный код. Начал учиться как это делать и вот столкнулся с проблемой передачи параметров. Подскажите как её побороть. Есть Си-шная функция с использованием асм-вставки: unsigned int Increment(unsigned int value) { #pragma asm MOV A,R7 ADD A,#01H MOV R7,A CLR A ADDC A,R6 MOV R6,A #pragma endasm } Вот что мы видим в SRC-файле..... _Increment: MOV value?040,R6 /* line #1 */ MOV value?040+01H,R7 /* lien #2 */ MOV A,R7 ADD A,#01H MOV R7,A CLR A ADDC A,R6 MOV R6,A RET Получили РАБОТАЮЩИЙ кусок кода. Вопрос: почему возникают стороки /* line #1 */ и /* line #2 */.... и "вываливаются" варнинги INC.C(15): warning C173: missing return-expression INC.C(3): warning C280: 'value': unreferenced local variable что мол функция ничего не возвращает и переменная value не используется. Как объяснить Си что бы он 1) не делал лишних строк /* line #1 */ и /* line #2 */ 2) понимал что функция результат всё таки возвращает. Может у кого есть кусок кода киньте на мыло. Заранее спасибо.