ASM + Delphi - передача и изменение var параметра.
Пишу на дельфе ридер кой-какого типа файлов. Данные там рассчитаны для MAC и PC - различие в порядке чтения байтов для 16-битных и 32-битных целых. Столкнулся с тем,
что в дельфе нет встроенной функции свопа длинного целого, зато такой оператор есть во встроенном асме. Вопрос - как правильно и коротко написать процедуру свопа длинного целого в данном случае на асме. Вот мой вариант, но ИМХО можно по другому.
procedure Swp(var v: LongWord);
function SW(Value: LongWord):LongWord;
asm
BSWAP EAX
end;
begin
v:=SW(v);
end;
|