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

Сколько помню, для некоторых компиляторов режима x64 закрыли ассемблерные вставки. Поэтому удобно таким подходом воспользоваться.