Может я чего то не понимаю, но код в IAR225 получается оптимальнее при ELSE IF
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Overheat 14 апреля 2004 г. 16:10
В ответ на: Ответ: ничего особенно плохово: отправлено -Tумблер- 14 апреля 2004 г. 15:14

Используем switch

36: switch (i)
+000007E5: 2F10 MOV R17,R16
+000007E6: 951A DEC R17
+000007E7: F029 BREQ +0x05
+000007E8: 951A DEC R17
+000007E9: F029 BREQ +0x05
+000007EA: 951A DEC R17
+000007EB: F029 BREQ +0x05
+000007EC: C005 RJMP +0x0005
39: i +=10;
+000007ED: 5F06 SUBI R16,0xF6
+000007EE: C003 RJMP +0x0003
43: i+=30;
+000007EF: 5E02 SUBI R16,0xE2
+000007F0: C001 RJMP +0x0001
47: i+=40;
+000007F1: 5D08 SUBI R16,0xD8

Используем else if

36: if (i==1)
+000007E5: 3001 CPI R16,0x01
+000007E6: F411 BRNE +0x02
37: i +=10;
+000007E7: E00B LDI R16,0x0B
+000007E8: C007 RJMP +0x0007
38: else if(i==2)
+000007E9: 3002 CPI R16,0x02
+000007EA: F411 BRNE +0x02
39: i+=30;
+000007EB: E200 LDI R16,0x20
+000007EC: C003 RJMP +0x0003
40: else if(i==3)
+000007ED: 3003 CPI R16,0x03
+000007EE: F409 BRNE +0x01
41: i+=40;
+000007EF: 5D08 SUBI R16,0xD8

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

Ответы



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

E-mail: info@telesys.ru