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

 
 
> Фрагмент кода, GCC оптимизация
OKF
сообщение Nov 19 2014, 08:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 25-10-06
Пользователь №: 21 651



Простейший фрагмент, а не нравится:
Код
  static unsigned char key_pressed;

778:    80 b3           in    r24, 0x10; 16
  if (key_pressed != (PIND & 1)) {
77a:    40 91 6a 00     lds    r20, 0x006A
77e:    80 b3           in    r24, 0x10; 16
780:    24 2f           mov    r18, r20
782:    30 e0           ldi    r19, 0x00; 0
784:    90 e0           ldi    r25, 0x00; 0
786:    81 70           andi    r24, 0x01; 1
788:    90 70           andi    r25, 0x00; 0
78a:    28 17           cp    r18, r24
78c:    39 07           cpc    r19, r25
78e:    59 f0           breq    .+22    ; 0x7a6 <KeyExe+0x2e>

Отчего расширяемся к int?

Можно, конечно, так:
Код
  static unsigned char key_pressed;
  unsigned char s = PIND & 1;
778:    80 b3           in    r24, 0x10; 16
  if (key_pressed != s) {
77a:    90 91 6a 00     lds    r25, 0x006A
77e:    81 70           andi    r24, 0x01; 1
780:    98 17           cp    r25, r24
782:    59 f0           breq    .+22    ; 0x79a <KeyExe+0x22>

Но, как-то, не аккуратненько...
Какие мысли?

Сообщение отредактировал OKF - Nov 19 2014, 08:45
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Nov 20 2014, 20:08
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Что такое key_pressed - какого оно типа? НУ что не привести ещё пару строк?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- OKF   Фрагмент кода   Nov 19 2014, 08:38
- - Сергей Борщ   Цитата(OKF @ Nov 19 2014, 10:38) Какие мы...   Nov 19 2014, 08:57
|- - OKF   Цитата(Сергей Борщ @ Nov 19 2014, 11:57) ...   Nov 19 2014, 09:33
|- - Сергей Борщ   Цитата(OKF @ Nov 19 2014, 11:33) Не? Толь...   Nov 19 2014, 10:03
|- - OKF   Кодavr-gcc (WinAVR 20100110) 4.3.3 Неужто ...   Nov 19 2014, 10:18
|- - Сергей Борщ   Цитата(OKF @ Nov 19 2014, 12:18) Неужто э...   Nov 19 2014, 10:28
- - Genadi Zawidowski   Я пользуюсь 4.9.2 отсюда: http://sourceforge.net/p...   Nov 19 2014, 11:04
|- - OKF   Цитата(Genadi Zawidowski @ Nov 19 2014, 14...   Nov 19 2014, 14:07
|- - Genadi Zawidowski   Лениво... а оптимизацию включили? Целиком ИСХОДНИК...   Nov 19 2014, 15:40
- - Сергей Борщ   и команду вызова компилятора.   Nov 19 2014, 16:58
|- - OKF   Нет, на самом деле в последнем случае было: Код i...   Nov 20 2014, 06:46
- - OKF   Цитата(Genadi Zawidowski @ Nov 20 2014, 23...   Nov 21 2014, 01:19
- - OKF   Кстати, с 4.9.2 размер увеличился, как это ни стра...   Nov 22 2014, 12:01
- - acrix   в С результат логической операции имеет тип int, о...   Nov 23 2014, 19:51
- - OKF   Цитата(acrix @ Nov 23 2014, 22:51) в С ре...   Nov 24 2014, 17:41
- - kolobok0   Цитата(OKF @ Nov 24 2014, 20:41) ...какие...   Nov 24 2014, 21:28
- - acrix   Цитата(OKF @ Nov 25 2014, 00:41) Ну, а еж...   Nov 25 2014, 10:33


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

 


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


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