![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Проблема такая, допустим у меня есть байт...
в котором записано 00001101 т.е. 1101 и мне приспичило его перевернуть, т.е. получить 1011 Кто нибудь знает как это сделать (притом довольно быстро, циклами и я могу)... Нужно битовыми операциями...заранее благодарю.. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
на АСМе
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
в асме есть инструкция: bswap
|
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
АСМ это конечно прекрасно, но без итераций...
Тут другая проблема, программа работает на процесоре моторола, тестируется на процесоре интел...на асме никак, там другой ассемблер, да и к тому же на мотороле линукс, на интелет виндоуз...тот же самый bswap на с++ не перевели? Добавлено @ 12:55 Можно конечно помучиться с #define -ами, но тогда если не сложно (дабы не открывать новую тему в линуксе) сразу здесь можете сказать как на линуксе асм писать??? Надоел он мне, пишешь примитивный
не компилируется.. |
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
пишем на АСМе, компилим Сями... тьфу. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
у GCC в линюхе синтаксис AT
поэтому
он просто не понимает интересно конешно как вы там пишете под моторолу на асме а тестите не интеле? там же все вообще подругома -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| azesmcar |
|
||||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Кто сказал что я пишу на асме??? я спросил как написать это на С++
И вообще программа вся пишется на С++...про ассемблер я в вопросе даже не упоминал... Если интересно как компилировать под моторолу могу сказать.. ppc_8xx-g++ из командной строки линукса...
Кстати заметь я сказал
И еще сказал можно написать
А что, совсем недопустимо??? Если пишешь на си, и программа должна работать довольно быстро в критических функциях можно (я бы даже сказал нужно) использовать ассемблер... Если эта функция вызывается где то 100000 раз как поступишь ты??? всю прогу на ассемблере будешь писать??? Это сообщение отредактировал(а) azesmcar - 23.12.2004, 13:20 |
||||||||
|
|||||||||
| bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Вот, так вот делаешь:
И пофигу все процы и Оси. Будь то моторола, будь то интел, будь то виндовоз, будь то линукс. Кроссплатформенность, однако Добавлено @ 13:24 Вот, еще на всякай случай
Тоже кроссплатформеность, однако |
||||||
|
|||||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
azesmcar
А зачем вообще эта операция ? Может и без нее обойтись можно ? |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Ну это уже ясно Хорошее решение кстати...подойдет, осталось unsigned добавить... Спасибо... |
||||
|
|||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Ты забыл, что у разных процов, разное хранение WORD и DWORD |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
|
|||
|
||||
| Elm |
|
|||
|
Unregistered |
Если критично время выполнения, надо сделать таблицу из 256 элементов, к которой и обращаться. :-)
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Mad на интеле биты записываются в обратном порядке...
перед тем как читать последовательность битов если это интел нужно перевернуть байт, в другом случае нет...у меня написан код который вытворяет то что нужно без всего этого но он унивесален..и как все унивесальное работает медленно... если это интел и программа работает немного медленней в принципе ничего трагического из этого не выйдет...а вот под линукс она не должна тормозить...написать простой код который будет читать на мотороле (под линукс), а под виндоуз просто перед этим переворачивать будет (по моему) немного быстрее Добавлено @ 13:42
перед тем как вызывать макрос я уже знаю на каком проце он работает... |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
azesmcar
Или я чтото перепутал, или ты Проблемма, вроде, начинается с WORD (разная очередность LOBYTE и HIBYTE) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |