Мда, боюсь что никак (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 01 июля 2004 г. 14:29
В ответ на: Ответ: Программа отправлено Andrey190 01 июля 2004 г. 13:55

Это было в одном файле. В оптимизации включена галка Function inlining. Почему-то он решил сделать по-своему...


3 unsigned int mul(unsigned char a, unsigned char b)
4 {
5 return a*b;
\ __nearfunc unsigned int mul(unsigned char, unsigned char);
\ `mul`:
\ 00000000 9F01 MUL R16,R17
\ 00000002 0180 MOVW R17 : R16,R1 : R0
\ 00000004 9508 RET
6 }
7

\ In segment CODE, align 2, keep-with-next
8 unsigned int Void(void)
9 {
10 unsigned char a;
11 unsigned int b;
12 register unsigned char temp = 5;
13 a = UDR;
\ __nearfunc unsigned int Void();
\ Void:
\ 00000000 B12C IN R18,0x0C
14 b = mul(a, temp);
15 return (b);
\ 00000002 E030 LDI R19,0
\ 00000004 E005 LDI R16,5
\ 00000006 E010 LDI R17,0
\ 00000008 9F12 MUL R17,R18
\ 0000000A 2D10 MOV R17,R0
\ 0000000C 9F03 MUL R16,R19
\ 0000000E 0D10 ADD R17,R0
\ 00000010 9F02 MUL R16,R18
\ 00000012 2D00 MOV R16,R0
\ 00000014 0D11 ADD R17,R1
\ 00000016 9508 RET
16 }


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru