Текущий архив: 2014.09.14;
Скачать: CL | DM;
Вниз
Пользуетесь ли вы absolute? Найти похожие ветки
← →
NoUser © (2014-01-30 17:20) [80]> Дмитрий Белькевич (30.01.14 01:11) [77],[78]
function InverseByteOrderR(qH,qL:Cardinal):UInt64;
asm
BSWAP EDX
BSWAP EAX
end;
var
p:Int64;
begin
p:=InverseByteOrderR($80706050,$40302010)+1;
end.
:: p:=InverseByteOrderR($80706050,$40302010)+1;
0041A3CC BA10203040 mov edx,$40302010
0041A3D1 B850607080 mov eax,$80706050
0041A3D6 E86DD3FFFF call InverseByteOrderR
0041A3DB 83C001 add eax,$01
0041A3DE 83D200 adc edx,$00
> Но Delphi опять их в память кладет.
А что, нужно выбросить в мусор?
> DevilDevil © (30.01.14 01:49) [79]
> Плохо, что в дельфи нет интринсинков, в частности bswap
> Тогда и функцию не нужно было бы вызывать :)
Плохо, что нельзя заинлайнить асм, - тогда и функцию не нужно было бы вызывать!
← →
имя (2014-01-31 13:33) [81]Удалено модератором
← →
DevilDevil © (2014-01-31 14:14) [82]Заинлайнить вообще почти ничего нельзя :)
Не говоря уже об асме :)
← →
ТимоховДА (2014-02-02 03:34) [83]пользуюсь.
удобно для for ... in ... do
← →
Я вас всех знаю (2014-02-02 22:06) [84]
> ТимоховДА (02.02.14 03:34) [83]
>
> пользуюсь.
> удобно для for ... in ... do
>
Как это? Нужен пример.
← →
Дмитрий Белькевич (2014-02-03 02:16) [85]>function InverseByteOrderR(qH,qL:Cardinal):UInt64;
Некрасивый вызов получится:
procedure ParseFloat64(Stream: TStream; var Value: double; ByteOrder: TDICOMByteOrder);
var
Swapper: int64 absolute Value;
begin
Stream.Read(Value, 8);
if ByteOrder = boBIGENDIAN then
Swapper := InverseByteOrder(Swapper);
end;
>Плохо, что нельзя заинлайнить асм, - тогда и функцию не нужно было бы вызывать!
Увы.
>А что, нужно выбросить в мусор?
Вернуть в регистрах.
← →
Дмитрий Белькевич (2014-02-03 02:18) [86]>Вернуть в регистрах.
Точнее - дальше в регистрах и обрабатывать.
← →
NoUser © (2014-02-09 17:56) [87]> Точнее - дальше в регистрах и обрабатывать.
::0041A3DB 83C001 add eax,$01
0041A3DE 83D200 adc edx,$00
> Некрасивый вызов получится:
Значит Мир он(а,о) не спасет!
Страницы: 1 2 3 вся ветка
Текущий архив: 2014.09.14;
Скачать: CL | DM;
Память: 0.61 MB
Время: 0.009 c