16.07.2020, 15:32 [+3 UTC]
в нашей команде: 4 669 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.89 (25.04.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
10.07.2020, 10:13

Последний вопрос:
16.07.2020, 12:49
Всего: 152739

Последний ответ:
16.07.2020, 15:29
Всего: 260333

Последняя рассылка:
16.07.2020, 15:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
16.01.2016, 21:22 »
galet06
Спасибо, узнала кое-что новое, из ГК РФ особенно. Меня удивляет, что все цитируют Постановление №745. А я высмотрела в ЗОЗПППравилах торговли кону о Защите прав потребителей, в котором четко сказано, что цена товара и полная стоимость являются обязательными в информации о товаре. [вопрос № 188646, ответ № 273232]
20.08.2019, 17:54 »
dar777
Это самое лучшее решение! [вопрос № 196150, ответ № 278548]
01.11.2019, 04:07 »
dar777
Это самое лучшее решение! [вопрос № 196819, ответ № 279033]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 763
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 331
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 146260
Раздел: • Assembler
Автор вопроса: Sacha
Отправлена: 06.10.2008, 21:01
Поступило ответов: 2

Доброго времени суток, есть вопросик, имеется переменная типа dd и нужно поменять местами соседние разряды, причем четные с четными, нечетные с нечетными ( было 12345678 должно стать 34567812 ) пожалуйста подскажите как это сделать... спасибо.

Состояние: Консультация закрыта

Ответ # 231408 от Boriss

Здравствуйте, Sacha!
Вот в приложении простейшее решение Вашей задачи.
Решается с помощью множителей nums
Я не понял, честно говоря, почему именно такое число должно получиться, но получил smile

Приложение:


Консультировал: Boriss
Дата отправки: 07.10.2008, 10:53

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, Sacha!
Например, так, как в приложении.
Для удобства используем 32-разрядные регистры.

Приложение:


Консультировал: Лысков Игорь Витальевич (Мастер-Эксперт)
Дата отправки: 08.10.2008, 15:32

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 146260

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 1

= общий = | 06.10.2008, 21:58 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Если данные в 16-ой системе.
То единственное, что напрашивается это циклический сдвиг влево на 8: ROL EAX,8

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Лысков Игорь Витальевич
Мастер-Эксперт

ID: 7438

# 2

= общий = | 07.10.2008, 09:43 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Как-то формулировка вопроса не вяжется с приведенным примером... smile
На мой взгляд, формулировка вопроса подразумевает поменять местами биты...
Уточните, какие имеются в виду разряды: биты, десятичные, 16-ричные?

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

# 3

= общий = | 07.10.2008, 20:56

да нужно поменять местами биты

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

# 4

= общий = | 07.10.2008, 21:00

Boriss спасибо за ответ только можно сказать непонятно ничего( я изучаю Assembler 4 недели), если можно напишите пожалуйста цикл который меняет местами разряды (четные с четными нечетные с нечетными)

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Лысков Игорь Витальевич
Мастер-Эксперт

ID: 7438

# 5

= общий = | 08.10.2008, 09:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Так...Задаю уточняющий вопрос еще раз:
Если меняем местами биты, то вопрос, с какими соседними меняем?
Могу предположить, что в 16-ричной тетраде, или нет?
Например, если рассмотрим один байт (3 остальных аналогично):
Пусть имеем байт ababcdcd B , в котором a,b,c,d обозначают биты 0 или 1.
Требуется поменять местами биты, обозначенные одинаковыми буковками.
Т.е. надо получить babadcdc B. Так?

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Boriss

# 6

= общий = | 08.10.2008, 10:55

Делает все процедура invert .
В ней я раскладываю число на цифры (как при выводе числа в десятичном виде): делю на EBX=1 0 (это и есть основание числа), запоминаю остатки в стек PUSH EDX . И заодно подсчитываю число запомненных INC ECX .
Потом извлекаю из стека POP EBX и умножаю на коэффициент их таблицы LODSD - считывает в EAX содержимое памяти по адресу ES:ESI и увеличивает ESI на 4 (следующее двойное слово). Результат умножения добавляют в аккумулятор
Фактически, реализуется формула:
1234 = 4*1 + 3*10 + 2*100 + 1 *1000
чтобы поменять местами, можно
4*10 + 3*1 и т.д.

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Boriss

# 7

= общий = | 08.10.2008, 10:57

То есть, результирующий порядок определяется содержимым массива mults

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

# 8

= общий = | 08.10.2008, 12:40

Лысков Игорь Витальевич, ну да почти все так, например если нам дано abcdeg то должны получить (расписываю пошагам) abcdeg ->cbadeg ->cdabeg -> cdebag -> cdegab

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Boriss

# 9

= общий = | 08.10.2008, 13:01

И в моем варианте это тоже возможно, только основание будет 16, да и вывод не десятичный, а более просто реализуемый

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Лысков Игорь Витальевич
Мастер-Эксперт

ID: 7438

# 10

= общий = | 08.10.2008, 13:02 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Вопрос: нужен результат или важен сам процесс?
Дело в том, все сводится в конце концов к тому, что два старших бита перемещаются на место двух младших,
Поэтому достаточно просто сдвинуть двойное слово циклически влево на два бита rol eax,2
Все! Задача решена!

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

# 11

= общий = | 08.10.2008, 14:15

все дело в том что важен сам процесс и хорошо если сдвиг будет организован с помощью логических операций

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

# 12

= общий = | 08.10.2008, 14:16

Boriss спвасибо за программу но мне важнее понять сам цикл а процесс ввода выввода результата меня совсем не интересует и ваш предложенный вариантс умножением мне тоже не очень подходит

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

неизвестный

# 13

= общий = | 08.10.2008, 17:39

спасибо

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14903 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.89 от 25.04.2020
Версия JS: 1.45 | Версия CSS: 3.39