реклама на сайте
подробности

 
 
> ПОМОГИТЕ C IAR
DeXteR
сообщение Jan 19 2006, 11:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Помогите Плиззз

ИАРовский компилятор уомпилит код на Си неправильно следушим образом
Код следующий
Код
      switch  (TWSR&0x7F)
      {

    case 0x60:
      {
      Temp = TWDR;
      }
    break;

    case 0x68:
      asm("nop");
    break;

    case 0x70:
      asm("nop");
    break;

    case 0x78:
      asm("nop");
    break;

    case 0x80:
      asm("nop");
    break;

    case 0x88:
      asm("nop");
    break;
    default:
      asm("nop");

      }


Из астудио Дизасемблера получил следующие

Код
103:            switch  (TWSR&0x7F)
+000001D7:   B101        IN      R16,0x01         In from I/O location
+000001D8:   770F        ANDI    R16,0x7F         Logical AND with immediate
+000001D9:   5800        SUBI    R16,0x80         Subtract immediate
+000001DA:   F0A9        BREQ    PC+0x16          Branch if equal
+000001DB:   5008        SUBI    R16,0x08         Subtract immediate
+000001DC:   F0A9        BREQ    PC+0x16          Branch if equal
+000001DD:   5D08        SUBI    R16,0xD8         Subtract immediate
+000001DE:   F039        BREQ    PC+0x08          Branch if equal
+000001DF:   5008        SUBI    R16,0x08         Subtract immediate
+000001E0:   F049        BREQ    PC+0x0A          Branch if equal
+000001E1:   5008        SUBI    R16,0x08         Subtract immediate
+000001E2:   F049        BREQ    PC+0x0A          Branch if equal
+000001E3:   5008        SUBI    R16,0x08         Subtract immediate
+000001E4:   F049        BREQ    PC+0x0A          Branch if equal
+000001E5:   C00E        RJMP    PC+0x000F        Relative jump
108:            Temp = TWDR;
+000001E6:   B103        IN      R16,0x03         In from I/O location
+000001E7:   9300006B    STS     0x006B,R16       Store direct to data space
+000001E9:   9508        RET                      Subroutine return
113:            asm("nop");
+000001EA:   0000        NOP                      No operation
+000001EB:   9508        RET                      Subroutine return
117:            asm("nop");
+000001EC:   0000        NOP                      No operation
+000001ED:   9508        RET                      Subroutine return
121:            asm("nop");
+000001EE:   0000        NOP                      No operation
+000001EF:   9508        RET                      Subroutine return
125:            asm("nop");
+000001F0:   0000        NOP                      No operation
+000001F1:   9508        RET                      Subroutine return
129:            asm("nop");
+000001F2:   0000        NOP                      No operation
+000001F3:   9508        RET                      Subroutine return
132:            asm("nop");
+000001F4:   0000        NOP                      No operation
136:      }
+000001F5:   9508        RET                      Subroutine return


Оптимизация кода в компиляторе отключена

Я писать на Си толька учусь ...
Может гдето ошибка ?? Или глюк ??
Как бороться ??

Спасибо !!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DeXteR   ПОМОГИТЕ C IAR   Jan 19 2006, 11:40
- - solidreg   Ведь всё же хорошо. А в чём проблема?   Jan 19 2006, 11:56
- - DeXteR   Цитата(solidreg @ Jan 19 2006, 15:56) Вед...   Jan 19 2006, 12:01
- - GxOST   главное - результат! а он именно тот, который...   Jan 19 2006, 12:22
- - DeXteR   Цитата(GxOST @ Jan 19 2006, 16:22) главно...   Jan 19 2006, 12:30
- - AndyBig   Еще как попадем Считаем: 000001D9: 5800 SUBI R16...   Jan 19 2006, 12:36
- - DeXteR   Простите за безпокойство Все понял =) ДОЦЕН ТУПОЙ   Jan 19 2006, 12:41
- - Георгий   Имей ввиду, компилятор компилит не в том порядке, ...   Jan 19 2006, 12:43
- - DeXteR   Хотел задать ещо один вопросс При выполнении прогр...   Jan 20 2006, 09:38
- - AndyBig   ЦитатаКак заставить программу на Си проанализирова...   Jan 20 2006, 10:47
- - DeXteR   Добрый день ! Мой IAR на строчку Код ADC_...   Jan 26 2006, 12:08
|- - KRS   Цитата(DeXteR @ Jan 26 2006, 15:08) Добры...   Jan 26 2006, 12:12
- - DeXteR   Цитата(KRS @ Jan 26 2006, 16:12) Цитата(D...   Jan 26 2006, 12:18
|- - KRS   Цитата(DeXteR @ Jan 26 2006, 15:18) Цитат...   Jan 26 2006, 12:25
- - DeXteR   Всем огромное спасибо за помощь и наставления. Во...   Jan 27 2006, 08:43
- - unichorn   Можно Только если используеш глобальные переменн...   Jan 27 2006, 09:54
- - DeXteR   Использую толька глобальные - памяти много =) stat...   Jan 27 2006, 11:43
|- - defunct   Цитата(DeXteR @ Jan 27 2006, 13:43) Испол...   Jan 28 2006, 01:55
- - unichorn   DeXteR, а ты случаем не во ВНИИФТРИ сидиш? А то кт...   Jan 27 2006, 13:27
- - DeXteR   Цитата(unichorn @ Jan 27 2006, 17:27) DeX...   Jan 27 2006, 14:59
- - unichorn   Аналогично. Интересные книги по прграмированию най...   Jan 27 2006, 15:26
- - unichorn   Большое количество глобальных переменных использов...   Jan 27 2006, 15:49
- - DeXteR   Цитата(unichorn @ Jan 27 2006, 19:26) Ана...   Jan 27 2006, 19:12
|- - Old1   Цитата(DeXteR @ Jan 27 2006, 23:12) Каким...   Jan 28 2006, 11:40
- - DeXteR   Всем огромное спасибо за советы и разъяснения =)   Jan 28 2006, 17:30


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.02398 секунд с 7
ELECTRONIX ©2004-2016