Вверх ↑
Ответов: 5227
Рейтинг: 588
#1: 2017-06-29 16:17:38 ЛС | профиль | цитата
Netspirit, bswap это хорошо, но в некоторых случаях требуется произвольный порядок смены байтов. Для таких случаев хорошо зарекомендовала функция с директивой "absolute"
код примерно такой:


procedure THiAsmClass.doMixing(var dt: TData; idx: word);
var
inDt,outDt: integer;
arrByteIn: array[0..3] of Byte absolute inDt;
arrByteOut: array[0..3] of Byte absolute outDt;
begin
inDt := ToInteger(dt);
arrByteOut[0] := arrByteIn[3];
arrByteOut[1] := arrByteIn[2];
arrByteOut[2] := arrByteIn[1];
arrByteOut[3] := arrByteIn[0];
_hi_onEvent(onRes,outDt);
end;

хотя ещё несколько вариантов можно напридумывать
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0