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

 
 
> Нужна помощь по С, SWAP на С
impuls-v
сообщение Jul 14 2006, 10:22
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 130
Регистрация: 15-01-06
Пользователь №: 13 190



Можеть комунибудь покажется этот вопрос дибильным, но может кто знает.
Нужно сделать простейшую операцию - обмен нимблов т.е. ассемблерная команда swap.
Но вот в С++ я не нашел такой.
Вроде чего тут сложного сделал ассемблерную вставку, но нужно чтобы программы была универсальной, т.е. если сделать вставку swap r25? я не знаю может потом r25 окажется занятым переменной и все собъется.
Как сделать обмен нимблов на С, подскажите плиз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Petka
сообщение Jul 14 2006, 10:25
Сообщение #2


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(impuls-v @ Jul 14 2006, 14:22) *
Можеть комунибудь покажется этот вопрос дибильным, но может кто знает.
Нужно сделать простейшую операцию - обмен нимблов т.е. ассемблерная команда swap.
Но вот в С++ я не нашел такой.
Вроде чего тут сложного сделал ассемблерную вставку, но нужно чтобы программы была универсальной, т.е. если сделать вставку swap r25? я не знаю может потом r25 окажется занятым переменной и все собъется.
Как сделать обмен нимблов на С, подскажите плиз.


c=(c>>4)|(c<<4);
Go to the top of the page
 
+Quote Post
otrog
сообщение Jul 14 2006, 11:20
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(Petka @ Jul 14 2006, 14:25) *
c=(c>>4)|(c<<4);

IAR компилирует вот во что:
Код
    120            i=(i>>4)|(i<<4);
   \   00000004   2F10               MOV     R17, R16
   \   00000006   9512               SWAP    R17
   \   00000008   701F               ANDI    R17, 0x0F
   \   0000000A   9502               SWAP    R16
   \   0000000C   7F00               ANDI    R16, 0xF0
   \   0000000E   2B01               OR      R16, R17
sad.gif


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jul 14 2006, 11:27
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(otrog @ Jul 14 2006, 14:20) *
Цитата(Petka @ Jul 14 2006, 14:25) *

c=(c>>4)|(c<<4);

IAR компилирует вот во что:
Код
    120            i=(i>>4)|(i<<4);
   \   00000004   2F10               MOV     R17, R16
   \   00000006   9512               SWAP    R17
   \   00000008   701F               ANDI    R17, 0x0F
   \   0000000A   9502               SWAP    R16
   \   0000000C   7F00               ANDI    R16, 0xF0
   \   0000000E   2B01               OR      R16, R17
sad.gif

Хм... Другой IAR компилирует SWAP
Go to the top of the page
 
+Quote Post
otrog
сообщение Jul 14 2006, 11:34
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Цитата(_Bill @ Jul 14 2006, 15:27) *
Хм... Другой IAR компилирует SWAP

Код
     34          unsigned int fu( unsigned int x )
   \                     fu:
     35          {
     36            return(( x &lt;&lt; 8 ) | ( x &gt;&gt; 8 ));
   \   000000   8C10         SWPB    R12
   \   000002   3041         RET
     37          }
     38

Дык то для MSP430 huh.gif


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- impuls-v   Нужна помощь по С   Jul 14 2006, 10:22
- - impuls-v   Черт спасибо попробую. Сначала была идея использов...   Jul 14 2006, 11:13
- - unichorn   Ндааа. Дешевле ассемблерную вставку сделать.   Jul 14 2006, 11:26
- - IgorKossak   В IAR есть такая функцияКод__intrinsic unsigned ch...   Jul 14 2006, 11:35
|- - otrog   Цитата(IgorKossak @ Jul 14 2006, 15:35) В...   Jul 14 2006, 11:42
- - impuls-v   Похоже эта темы вызвала обсуждение Ассемблерная вс...   Jul 14 2006, 11:37
|- - _Bill   Цитата(impuls-v @ Jul 14 2006, 14:37...   Jul 14 2006, 11:40
- - impuls-v   Вопервых откуда этот файл а во вторых нетрогать ас...   Jul 14 2006, 11:40
- - impuls-v   ЦитатаВообще, лучше вставками не пользоваться. Вст...   Jul 14 2006, 11:43
|- - _Bill   Цитата(impuls-v @ Jul 14 2006, 14:43...   Jul 14 2006, 12:20
- - Laksus   Цитата Bill ...Вообще, лучше вставками не пользова...   Jul 15 2006, 10:58


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

 


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


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