[an error occurred while processing this directive] [an error occurred while processing this directive]
Хи-хи, а полюбуйтеська на это:(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено AlexD 25 августа 2001 г. 23:50
В ответ на: Серьезные баги у IAR Embedded Workbench for Atmel AVR V2.25B отправлено Alexandr 25 августа 2001 г. 22:45


unsigned char q1=0x80,q2=0x80;
signed char q3=0x80;

// ---------------------------------------- M A I N
void main (void) {
q2>>=2;
q2=q1+q2>>2;
q3>>=2;


.
.
А вот листинг:
.
.

6 void main (void) {
7 q2>>=2;
\ __nearfunc void main();
\ main:
\ 00000000 .... LDI R30,q2
\ 00000002 8100 LD R16,Z
\ 00000004 9506 LSR R16
\ 00000006 9506 LSR R16
\ 00000008 8300 ST Z,R16
8 q2=q1+q2>>2;
\ 0000000A .... LDI R30,q1
\ 0000000C 8120 LD R18,Z
\ 0000000E E030 LDI R19,0
\ 00000010 .... LDI R30,q2
\ 00000012 E010 LDI R17,0
\ 00000014 0F02 ADD R16,R18
\ 00000016 1F13 ADC R17,R19
\ 00000018 9515 ASR R17
\ 0000001A 9507 ROR R16
\ 0000001C 9515 ASR R17
\ 0000001E 9507 ROR R16
\ 00000020 8300 ST Z,R16
9 q3>>=2;
\ 00000022 .... LDI R30,q3
\ 00000024 8100 LD R16,Z
\ 00000026 9505 ASR R16
\ 00000028 9505 ASR R16
\ 0000002A 8300 ST Z,R16
10 }
\ 0000002C 9508 RET

.
.
.
Более гемороистого компилятора я ещё не видел.
Да, чуть не забыл - это при максимальной оптимизации по скорости.

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

Ответы



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

E-mail: info@telesys.ru