Раздел 'Побитовые'

  Побитовое НЕ (∼X)

  Побитовое ИЛИ (X  | Y)

  Побитовое И (X & Y)

  Побитовое исключающее ИЛИ (X ^ Y)

  Сдвиг влево (X << Y)

  Сдвиг вправо (X >> Y)

  Циклический сдвиг влево (X ROL Y)

  Циклический сдвиг вправо (X ROR Y)

  Упаковка битов (PB)

  Распаковка битов (UPB)

  Упаковка байтов (WHL)

  Распаковка байтов (HLW)

  Упаковка слов (DHL)

  Распаковка слов (HLD)

  Чтение бита (TEST)

  Установка бита (SB)

  Сброс бита (RB)

  Упаковка битов в слова (PW)

  Распаковка слов в биты (UPW)

  Комбинирование битов (BSR)

Побитовое НЕ (∼X)

Если входу присвоено численное значение с помощью клавиатуры, блок выполняет 32-разрядную побитовую операцию NOT (16-разрядную, если это задано в настройках компилятора). Например, O=16#FFFFFFFE при X=1.

Если вход привязан к переменной, то тип этой переменной определяет разрядность выхода.

Побитовое ИЛИ ( | Y)

Блок выполняет побитовую операцию OR. Например, O=3 при X=2 и Y=3.

Побитовое И (X & Y)

Блок выполняет побитовую операцию AND. Например, O=2 при X=2 и Y=3.

Побитовое исключающее ИЛИ (X ^ Y)

Блок выполняет побитовую операцию XOR. Например, O=1 при X=2 и Y=3.

Сдвиг влево (X << Y)

Блок смещает значение входа X влево на число разрядов, заданное значением входа Y. Справа число дополняется нулевыми разрядами. Например, O=16#30 при X=16#3 и Y=4.

Сдвиг вправо (X >> Y)

Блок смещает значение входа X вправо на число разрядов, заданное значением входа Y. Слева число дополняется нулевыми разрядами. Например, O=16#3 при X=16#30 и Y=4.

Циклический сдвиг влево (X ROL Y)

Блок смещает значение входа X влево на число разрядов, заданное значением входа Y. Справа число дополняется разрядами, которые при сдвиге "выбывают" слева.

Циклический сдвиг вправо (X ROR Y)

Блок смещает значение входа X вправо на число разрядов, заданное значением входа Y. Слева число дополняется разрядами, которые при сдвиге "выбывают" справа.

Упаковка битов (PB)

Блок формирует значение битов выхода OB по значению соответствующих входов. При ненулевом значении входа соответствующий ему бит выхода равен 1, в противном случае – 0. Вход IB0 формирует бит 0 выходного значения, IB7 – бит 7.

Распаковка битов (UPB)

Значения выходов этого блока равны значениям соответствующих битов байта 0 значения входа INB (выход OB0 соответствует биту 0). Например, при INB=16#FF08 выход OB3=1, а все остальные выходы равны нулю.

Упаковка байтов (WHL)

Байт 0 выхода W этого блока равен значению байта 0 входа LB, байт 1 выхода W равен значению байта 0 входа HB.

Распаковка байтов (HLW)

Значение выхода LB данного блока равно значению байта 0 входа INW, значение выхода HB – значению байта 1 входа INW.

Упаковка слов (DHL)

Значение слова 0 выхода D этого блока равно значению слова 0 входа LW. Значение слова 1 выхода D равно значению слова 0 входа HW.

Распаковка слов (HLD)

Значение выхода LW этого блока равно значению слова 0 входа IND, значение выхода HW – значению слова 1 входа IND.

Чтение бита (TEST)

Этот блок передает на выход значение одного из битов значения входа IN. Номер передаваемого бита задает вход NB (0 соответствует биту 0). Например, ONB=1 при IN=16#FFAA и NB=3.

Установка бита (SB)

Данный блок модифицирует значение входа IN, устанавливая в 1 один из его битов, и передает модифицированное значение на выход O. Вход NB задает номер изменяемого бита (0 соответствует биту 0).

Сброс бита (RB)

Данный блок модифицирует значение входа IN, устанавливая в 0 один из его битов, и передает модифицированное значение на выход O. Вход NB задает номер изменяемого бита (0 соответствует биту 0).

Упаковка битов в слова (PW)

Выходы – 32-разрядные, входы I0I15 – биты для упаковки, вход IN – управляющий:

   IN<>1, 3, 7 и 15 – соответствующий бит на выходе Q0 устанавливается в том случае, если Ii & IN <> 0;

   IN=1 – выходное слово в Q0 формируется из младших битов I0-I15;

   IN=3 – начиная с I0, 2 младшие бита каждого входа последовательно записываются в 2 младшие бита Q0. Перед каждой записью значение Q0 сдвигается на 2 разряда влево (упаковка в 2 слова);

   IN=7 – начиная с I0, 3 младшие бита каждого входа последовательно записываются в 3 младшие бита Q0. Перед каждой записью значение Q0 сдвигается на 3 разряда влево;

   IN=15 – начиная с I0, 4 младшие бита каждого входа последовательно записываются в 4 младшие бита Q0. Перед каждой записью значение Q0 сдвигается на 4 разряда влево.

Q1 индицирует число изменений Q0.

Распаковка слов в биты (UPW)

Вход I0 – 32-разрядное значение для распаковки, вход IN – управляющий:

   если IN=1, 3, 5, 6, 7 или 15, то соответствующий выход равен 1, если I0 & IN <> 0;

   если IN принимает другие значения, выходы равны I0 & IN.

Комбинирование битов (BSR)

Алгоритм работы блока:

   Q0=Q1=IN;

   если I0<>0, в Q0 устанавливаются биты, которые установлены в M0;

   если I0=0, в Q1 устанавливаются биты, которые установлены в M0;

   если I1<>0, в Q0 устанавливаются биты, которые установлены в M1;

   если I1=0, в Q1 устанавливаются биты, которые установлены в M1.