Скопировать 3 последовательных бита из регистра в регистр

Ответить
bayk
Сообщения: 885
Зарегистрирован: 30 май 2015, 21:20

Скопировать 3 последовательных бита из регистра в регистр

Сообщение bayk »

Здравствуйте! что-то я туплю совсем. Есть например регистр D1113 для состояний аналоговых входов на EX2? так там в один регистр по 3 последовательных бита уложены состояния всех 4 входов. вот теперь не могу понять, как мне из одного регистра вынуть данные в 4 других для раздельного анализа. то есть в один регистр мне надо скопировать первые 3 бита из D1113, в следующий 4,5,6 биты.. ну и т.д. но скопировать надо именно в первые биты новых регистров. то есть для второго регистра мне надо из D1113 скопировать 4,5,6 биты в 1,2,3 нового.
сначала думал распаковать регистр в М, а потом уже частями забирать, но слишком много геморроя, поскольку команда K1Mx работает только на 4 последовательных бита а потому надо распаковать, помто еще куда-то скопировать , чтобы ноль в конце был а потом еще и собрать обратно... ну мне кажется есть более красивое решение данной задачи.
думал Smov, но опять только по 4 бита строго блоками...

блин. я идиот. там же по 4 бита!!! все норм. тогда разложить а потом кусочками собрать.
но все равно хотелось бы услышать предложения по решению таких задач.




GoGo
Сообщения: 91
Зарегистрирован: 13 июн 2013, 16:14

Re: Скопировать 3 последовательных бита из регистра в регистр

Сообщение GoGo »

Если порядок соблюдается, то можно вот так:
регистр2:=регистр1 AND 2#1111 0000 0000 0000;
Если не соблюдается, то дополнительно или вместе использовать SHL, SHR (побитовый сдвиг влево/вправо)
Выполнять в синтаксисе ISPSoft.

bayk
Сообщения: 885
Зарегистрирован: 30 май 2015, 21:20

Re: Скопировать 3 последовательных бита из регистра в регистр

Сообщение bayk »

shl shr только по 4 бита сдвигают!
tvent писал(а):
09 янв 2022, 07:19
Вспомнил! SMOV
я ж в заглавии писал. smov только по 4 бита двигать может

tvent
Сообщения: 1017
Зарегистрирован: 11 янв 2011, 17:02

Re: Скопировать 3 последовательных бита из регистра в регистр

Сообщение tvent »

bayk писал(а):
12 янв 2022, 12:51
я ж в заглавии писал. smov только по 4 бита двигать может
Кто вам запрещает сделать SMOV несколько раз, проверяя биты в исходном регистре через LD& ))
Последний раз редактировалось tvent 12 янв 2022, 14:20, всего редактировалось 1 раз.

GoGo
Сообщения: 91
Зарегистрирован: 13 июн 2013, 16:14

Re: Скопировать 3 последовательных бита из регистра в регистр

Сообщение GoGo »

bayk писал(а):
12 янв 2022, 12:51
shl shr только по 4 бита сдвигают!
Я ж указал из кодесиса, перевести в лексикон ISPsoft - команды побитового сдвига SFL, SFR. Сдвигайте на здоровье

Ответить