Пример функции перестановки байт ниже, в примере переставлены регистры и байты, всего 4 варианта, аналогично переставляются отдельно байты или регистры
Код:
FUNCTION Swp_BYTE : REAL (*Функция Swp_BYTE с выходом типа REAL*)
VAR_INPUT
rIn:REAL; (*входная переменная типа REAL*)
END_VAR
VAR
pInput : POINTER TO ARRAY[0..3] OF BYTE; (* указатели на массивы *)
pOutput : POINTER TO ARRAY[0..3] OF BYTE;
END_VAR
_______________________________________________________
pInput :=ADR(rIn);
pOutput := ADR(Swp_BYTE);
pOutput^[ 0 ] := pInput^[ 3 ]; (* Перестановка байт *)
pOutput^[ 1 ] := pInput^[ 2 ];
pOutput^[ 2 ] := pInput^[ 1 ]; (* Перестановка байт *)
pOutput^[ 3 ] := pInput^[ 0 ];