|
Для uint в Keil /16 не равно >>4, используются разные команды |
|
|
|
Jan 26 2011, 12:39
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Вот листинг, в котором видно, что поделить на 16 требует больше команд, чем сдвинуть на 4 разряда. Для чего это, числа ведь беззнаковые? Код ;;;222 uint8_t s0, s1, s2, s3; ;;;223 uint8_t m1 = ((s1 + s2) * 9 - s0 - s3) / 16; 000106 eb0c0006 ADD r0,r12,r6 00010a eb0000c0 ADD r0,r0,r0,LSL #3 00010e eba00007 SUB r0,r0,r7 000112 eba00006 SUB r0,r0,r6 000116 ea4f71e0 ASR r1,r0,#31 00011a eb007111 ADD r1,r0,r1,LSR #28 00011e f3c11107 UBFX r1,r1,#4,#8 ;;;224 uint8_t m2 = ((s1 + s2) * 9 - s0 - s3) >> 4; 000122 f3c01007 UBFX r0,r0,#4,#8 Округление, что ли?
|
|
|
|
|
 |
Ответов
|
Jan 26 2011, 12:51
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(HARMHARM @ Jan 26 2011, 17:43)  Деление и сдвиг производятся с помощью одной и той же команды: UBFX r0,r0,#4,#8 Судя по листингу - нет. Всё-таки деление (в первом случае) почему-то знаковое. Код 000116 ea4f71e0 ASR r1,r0,#31 00011a eb007111 ADD r1,r0,r1,LSR #28 00011e f3c11107 UBFX r1,r1,#4,#8 А вот для проверки почему, надо бы ко всем константам приписать U в конце.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Сообщений в этой теме
ViKo Для uint в Keil /16 не равно >>4 Jan 26 2011, 12:39 ViKo Цитата(HARMHARM @ Jan 26 2011, 14:43) Доб... Jan 26 2011, 13:06  rezident Цитата(ViKo @ Jan 26 2011, 18:06) На эти ... Jan 26 2011, 13:10   ViKo Цитата(rezident @ Jan 26 2011, 15:10) Или... Jan 26 2011, 13:13  HARMHARM Ага, понял чего не понял Jan 26 2011, 13:12 Aurochs Цитата(ViKo @ Jan 26 2011, 15:13) Но, пос... Jan 26 2011, 13:45 ViKo И все-же, я не уверен, что этот код
Код000116 ea4... Jan 27 2011, 08:23 _Pasha Цитата(ViKo @ Jan 27 2011, 11:23) (x<0... Jan 27 2011, 08:34  ViKo Цитата(_Pasha @ Jan 27 2011, 10:34) Спаси... Jan 27 2011, 08:44 demiurg_spb Цитата(ViKo @ Jan 27 2011, 11:23) В-общем... Jan 27 2011, 10:26  rezident Цитата(demiurg_spb @ Jan 27 2011, 15:26) ... Jan 27 2011, 11:13   _Pasha Цитата(rezident @ Jan 27 2011, 15:13) Воо... Jan 27 2011, 18:37    GetSmart Цитата(_Pasha @ Jan 27 2011, 23:37) ... а... Jan 27 2011, 18:50     _Pasha Цитата(GetSmart @ Jan 27 2011, 22:50) Что... Jan 27 2011, 18:55      AHTOXA Цитата(_Pasha @ Jan 27 2011, 23:55) Епт, ... Jan 27 2011, 19:41 GetSmart А можно поподробней о баге... Интригующе как... Jan 27 2011, 19:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|