Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1391648324
ProgRAMmer Dimonych
2014-02-06 04:58
2014.09.14
MSIExec капризничает


11-1254087305
intlex
2009-09-28 01:35
2014.09.14
Creation Order (Порядок создания компонентов)


15-1390470681
ВладОшин
2014-01-23 13:51
2014.09.14
WebSocket/ Хочу перепилить idHttpServer или что другое


15-1391801247
Novicer
2014-02-07 23:27
2014.09.14
Работа программы в сетевом режиме


15-1391671804
alex_
2014-02-06 11:30
2014.09.14
Кладовка