У Delphi, как и у TurboPascal и, наверное, у Pascal из стандарта, есть тип данных - запись (record) с вариантами - который позволяет на одном участке памяти объявить несколько переменных.
Т.е. можно объявить single и dword и два word и четыре byte на одном участке памяти. Записать в переменную single и переставить байты или слова.
Перестановка байт 1234 -> 4321 штатными средствамиКод:TDWordConvert = packed record
case word of
0: (dw: dword);
1: (w0, w1: word);
2: (b0, b1, b2, b3: byte);
3: (f32: single);
end;
Или можно через промежуточную переменную.Код:t.dw := ModbusReadRegisters();
t.dw := Swap(t.dw);
t.w0 := Swap(t.w0);
t.w1 := Swap(t.w1);
write(t.f32);
Сколько помню, для некоторых компиляторов режима x64 закрыли ассемблерные вставки. Поэтому удобно таким подходом воспользоваться.

